From 85a6e4327f04036a3479cfe430b08b17cbc49412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 9 Apr 2026 07:40:54 +0200 Subject: [PATCH 001/148] SES-457 - Squashed commit --- .github/workflows/clang-tidy-review.yml | 3 +- .../workflows/linux-clang-compile-tests.yml | 3 +- .github/workflows/linux-gcc-compile-tests.yml | 3 +- .github/workflows/sonarcloud.yml | 3 +- .github/workflows/windows-build-and-test.yml | 5 + .gitignore | 7 +- .vscode/c_cpp_properties.json | 14 + .vscode/launch.json | 97 ++ .vscode/nc-desktop-snippets.code-snippets | 30 + .vscode/settings.json | 17 + .vscode/tasks.json | 37 + .vscode/wsl-nc-desktop.code-workspace | 7 + CMakeLists.txt | 5 +- CPackOptions.cmake.in | 2 +- IONOS.cmake | 63 + LICENSE | 73 + NOTICE | 18 + NextcloudCPack.cmake | 2 +- VERSION.cmake | 1 + admin/osx/ionos_macmaker/mac_craft.sh | 260 +++ admin/osx/ionos_macmaker/readme.md | 126 ++ admin/osx/ionos_macmaker/sign.sh | 212 +++ admin/osx/ionos_macmaker/start.sh | 190 +++ .../mac-crafter/Sources/Commands/Build.swift | 88 +- admin/osx/macosx.entitlements.cmake | 2 +- admin/win/msi/CMakeLists.txt | 6 +- admin/win/msi/Ionos.wxs | 226 +++ .../msi/{Nextcloud.wxs => Nextcloud~~.wxs} | 0 admin/win/msi/OEM.wxi.in | 4 +- admin/win/msi/gui/banner_2.bmp | Bin 0 -> 85978 bytes admin/win/msi/gui/dialog_2.bmp | Bin 0 -> 619346 bytes admin/win/msi/make-msi.bat.in | 4 +- cmake/modules/MacOSXBundleInfo.plist.in | 4 +- config.h.in | 1 + doc/ADR/20241007_TrackingWithGA4.md | 32 + doc/ADR/20250212_UseCostomizationService.md | 69 + doc/ADR/_template.md | 30 + find_qml_imports.py | 29 + fonts/OpenSans-Bold.ttf | Bin 0 -> 104120 bytes fonts/OpenSans-BoldItalic.ttf | Bin 0 -> 92628 bytes fonts/OpenSans-ExtraBold.ttf | Bin 0 -> 102076 bytes fonts/OpenSans-ExtraBoldItalic.ttf | Bin 0 -> 92772 bytes fonts/OpenSans-Italic.ttf | Bin 0 -> 92240 bytes fonts/OpenSans-Light.ttf | Bin 0 -> 101696 bytes fonts/OpenSans-LightItalic.ttf | Bin 0 -> 92488 bytes fonts/OpenSans-Regular.ttf | Bin 0 -> 96932 bytes fonts/OpenSans-SemiBold.ttf | Bin 0 -> 100820 bytes fonts/OpenSans-SemiBoldItalic.ttf | Bin 0 -> 92180 bytes ionos-theme.qrc | 88 + ionos-theme.qrc.in | 88 + ionos.qrc | 12 + .../FileProviderExt.entitlements | 2 +- ...ileProviderExtension+ClientInterface.swift | 2 +- .../Services/ClientCommunicationService.swift | 2 +- .../Services/FPUIExtensionService.swift | 4 +- .../DocumentActionViewController.swift | 8 +- .../FileProviderUIExt/Info.plist | 6 +- .../Locking/LockViewController.swift | 2 +- .../Sharing/ShareTableViewDataSource.swift | 4 +- .../Sharing/ShareViewController.xib | 4 +- shell_integration/windows/WinShellExt.wxs.in | 10 +- src/common/utility.cpp | 4 +- src/csync/csync_exclude.cpp | 2 +- src/gui/CMakeLists.txt | 1456 +++++++++-------- src/gui/ConflictDelegate.qml | 2 +- src/gui/EmojiPicker.qml | 2 +- src/gui/ResolveConflictsDialog.qml | 27 +- src/gui/SesComponents/SesErrorBox.qml | 76 + src/gui/SesComponents/SesTrayHeader.qml | 70 + src/gui/SesComponents/syncdirvalidation.cpp | 53 + src/gui/SesComponents/syncdirvalidation.h | 19 + src/gui/UserStatusSelectorPage.qml | 2 +- src/gui/accountsettings.cpp | 272 ++- src/gui/accountsettings.h | 7 + src/gui/accountsettings.ui | 59 +- src/gui/addcertificatedialog.cpp | 1 + src/gui/application.cpp | 40 +- src/gui/application.h | 3 +- src/gui/authenticationdialog.cpp | 1 + src/gui/basetheme.h | 526 ++++++ src/gui/buttonstyle.h | 339 ++++ src/gui/buttonstylestrategy.h | 60 + src/gui/caseclashfilenamedialog.cpp | 47 + src/gui/caseclashfilenamedialog.h | 2 + src/gui/caseclashfilenamedialog.ui | 6 + src/gui/clickablelabel.h | 28 + .../cloudproviders/cloudproviderwrapper.cpp | 2 +- src/gui/conflictdialog.cpp | 36 + src/gui/conflictdialog.h | 1 + src/gui/creds/webflowcredentials.cpp | 4 +- src/gui/creds/webflowcredentialsdialog.cpp | 23 +- src/gui/filedetails/FileActivityView.qml | 2 +- src/gui/filedetails/FileDetailsPage.qml | 96 +- src/gui/filedetails/FileDetailsView.qml | 4 +- src/gui/filedetails/FileDetailsWindow.qml | 5 +- src/gui/filedetails/NCInputDateField.qml | 2 +- src/gui/filedetails/NCInputTextArea.qml | 7 +- src/gui/filedetails/NCInputTextField.qml | 10 +- src/gui/filedetails/NCTabButton.qml | 2 +- src/gui/filedetails/ShareDelegate.qml | 69 +- src/gui/filedetails/ShareDetailsPage.qml | 771 +++++---- src/gui/filedetails/ShareView.qml | 34 +- src/gui/filedetails/ShareeDelegate.qml | 5 +- src/gui/filedetails/ShareeSearchField.qml | 21 +- src/gui/filedetails/shareemodel.cpp | 2 +- src/gui/filedetails/sharemodel.cpp | 4 +- src/gui/filedetails/sortedsharemodel.cpp | 2 +- src/gui/folder.cpp | 10 +- src/gui/foldercreationdialog.cpp | 64 +- src/gui/foldercreationdialog.h | 3 + src/gui/foldercreationdialog.ui | 189 ++- src/gui/folderman.cpp | 4 +- src/gui/folderstatusdelegate.cpp | 345 ++-- src/gui/folderstatusdelegate.h | 12 +- src/gui/folderstatusview.cpp | 10 +- src/gui/folderwizard.cpp | 415 ++++- src/gui/folderwizard.h | 14 +- src/gui/folderwizardselectivesync.ui | 85 + src/gui/folderwizardsourcepage.ui | 242 ++- src/gui/folderwizardtargetpage.ui | 362 ++-- src/gui/ga4/datacollectionwrapper.cpp | 66 + src/gui/ga4/datacollectionwrapper.h | 82 + src/gui/ga4/ganalytics.cpp | 168 ++ src/gui/ga4/ganalytics.h | 77 + src/gui/ga4/ganalytics_worker.cpp | 322 ++++ src/gui/ga4/ganalytics_worker.h | 122 ++ src/gui/generalsettings.cpp | 218 ++- src/gui/generalsettings.h | 10 +- src/gui/generalsettings.ui | 1230 ++++++++------ src/gui/ignorelisttablewidget.cpp | 143 +- src/gui/ignorelisttablewidget.h | 4 + src/gui/ignorelisttablewidget.ui | 217 ++- src/gui/invalidfilenamedialog.cpp | 48 +- src/gui/invalidfilenamedialog.h | 1 + src/gui/invalidfilenamedialog.ui | 3 + src/gui/ionostheme.h | 22 + src/gui/legalnotice.cpp | 1 + src/gui/linkbutton.cpp | 26 + src/gui/linkbutton.h | 23 + src/gui/logbrowser.cpp | 2 +- src/gui/macOS/fileprovider_mac.mm | 2 +- .../macOS/fileproviderdomainmanager_mac.mm | 4 +- .../macOS/fileproviderdomainsyncstatus_mac.mm | 2 +- src/gui/macOS/fileprovideritemmetadata_mac.mm | 2 +- .../fileprovidermaterialiseditemsmodel_mac.mm | 2 +- .../fileprovidersettingscontroller_mac.mm | 2 +- src/gui/macOS/fileproviderutils_mac.mm | 2 +- src/gui/macOS/fileproviderxpc_mac.mm | 2 +- src/gui/macOS/fileproviderxpc_mac_utils.mm | 4 +- .../macOS/ui/FileProviderEvictionDialog.qml | 10 +- src/gui/macOS/ui/FileProviderFileDelegate.qml | 2 +- src/gui/macOS/ui/FileProviderSettings.qml | 13 +- src/gui/macOS/ui/FileProviderStorageInfo.qml | 2 +- src/gui/macOS/ui/FileProviderSyncStatus.qml | 5 +- src/gui/main.cpp | 22 + src/gui/moreoptionsbuttonstylehelper.cpp | 113 ++ src/gui/moreoptionsbuttonstylehelper.h | 25 + src/gui/owncloudgui.cpp | 67 +- src/gui/proxyauthdialog.cpp | 1 + src/gui/pushbuttonstylehelper.cpp | 122 ++ src/gui/pushbuttonstylehelper.h | 36 + src/gui/selectivesyncdialog.cpp | 98 +- src/gui/selectivesyncdialog.h | 2 +- src/gui/sesFileIconProvider.cpp | 23 + src/gui/sesFileIconProvider.h | 14 + src/gui/sessnackbar.cpp | 140 ++ src/gui/sessnackbar.h | 62 + src/gui/sesstyle.cpp | 217 +++ src/gui/sesstyle.h | 77 + src/gui/settingsdialog.cpp | 100 +- src/gui/socketapi/socketapi.cpp | 2 + src/gui/sslbutton.cpp | 4 +- src/gui/stratotheme.h | 170 ++ src/gui/systray.cpp | 7 + src/gui/systray_mac_common.mm | 2 +- src/gui/systray_mac_usernotifications.mm | 2 +- src/gui/tray/AccountMenuItem.qml | 50 + src/gui/tray/ActivityItem.qml | 4 +- src/gui/tray/ActivityItemActions.qml | 8 +- src/gui/tray/ActivityItemContent.qml | 60 +- src/gui/tray/ActivityList.qml | 20 +- src/gui/tray/CallNotificationDialog.qml | 2 +- src/gui/tray/CurrentAccountHeaderButton.qml | 4 +- src/gui/tray/EditFileLocallyLoadingDialog.qml | 2 +- .../tray/EncryptionTokenDiscoveryDialog.qml | 2 +- src/gui/tray/EnforcedPlainTextLabel.qml | 1 - src/gui/tray/HeaderButton.qml | 53 +- src/gui/tray/HeaderLogo.qml | 32 + src/gui/tray/IconButton.qml | 53 + src/gui/tray/MainWindow.qml | 167 +- src/gui/tray/NCBusyIndicator.qml | 8 +- src/gui/tray/PrimaryPillButton.qml | 53 + src/gui/tray/SecondaryPillButton.qml | 62 + src/gui/tray/SyncStatus.qml | 53 +- src/gui/tray/TalkReplyTextField.qml | 2 +- src/gui/tray/TrayFoldersMenuButton.qml | 37 +- src/gui/tray/TrayWindowAccountMenu.qml | 286 ++++ src/gui/tray/TrayWindowHeader.qml | 2 +- src/gui/tray/TrayWindowHeaderBar.qml | 171 ++ src/gui/tray/UnifiedSearchInputContainer.qml | 2 +- src/gui/tray/UnifiedSearchResultListItem.qml | 2 +- .../tray/UnifiedSearchResultSectionItem.qml | 2 +- src/gui/tray/UserLine.qml | 212 ++- src/gui/tray/activitylistmodel.cpp | 22 +- src/gui/tray/asyncimageresponse.h | 5 +- src/gui/tray/usermodel.cpp | 42 +- src/gui/tray/usermodel.h | 2 + src/gui/updater/updater.cpp | 8 +- src/gui/whitelabeltheme.h | 21 + src/gui/wizard/dataprotectionpage.cpp | 90 + src/gui/wizard/dataprotectionpage.h | 36 + src/gui/wizard/dataprotectionpage.ui | 68 + src/gui/wizard/dataprotectionsettingspage.cpp | 134 ++ src/gui/wizard/dataprotectionsettingspage.h | 37 + src/gui/wizard/dataprotectionsettingspage.ui | 113 ++ src/gui/wizard/flow2authcredspage.cpp | 17 +- src/gui/wizard/flow2authwidget.cpp | 83 +- src/gui/wizard/flow2authwidget.h | 3 +- src/gui/wizard/flow2authwidget.ui | 446 +++-- src/gui/wizard/owncloudadvancedsetuppage.cpp | 193 ++- src/gui/wizard/owncloudadvancedsetuppage.h | 1 + src/gui/wizard/owncloudadvancedsetuppage.ui | 1180 ++++++------- .../wizard/owncloudconnectionmethoddialog.cpp | 1 + src/gui/wizard/owncloudsetupnocredspage.ui | 4 +- src/gui/wizard/owncloudsetuppage.cpp | 18 + src/gui/wizard/owncloudsetuppage.h | 1 + src/gui/wizard/owncloudwizard.cpp | 60 +- src/gui/wizard/owncloudwizard.h | 4 + src/gui/wizard/owncloudwizardcommon.h | 2 + src/gui/wizard/slideshow.cpp | 13 +- src/gui/wizard/welcomepage.cpp | 45 +- src/gui/wizard/welcomepage.ui | 521 +++--- src/libsync/account.cpp | 18 +- src/libsync/account.h | 1 + src/libsync/clientsideencryptionjobs.cpp | 2 +- src/libsync/configfile.cpp | 17 +- src/libsync/configfile.h | 4 + src/libsync/foldermetadata.cpp | 2 +- src/libsync/logger.cpp | 10 +- src/libsync/theme.cpp | 124 +- src/libsync/theme.h | 25 +- switch_logging_category.py | 33 + switch_qml_imports.py | 33 + theme.qrc.in | 1 + theme/Style/Style.qml | 120 +- theme/black/ionos-hidrive-next-macOS-icon.svg | 27 + .../ionos-hidrive-next-macOS-sidebar.svg | 10 + theme/black/ionos_hidrive_next-icon.svg | 17 + .../black/strato-hidrive-next-macOS-icon.svg | 27 + .../strato-hidrive-next-macOS-sidebar.svg | 10 + theme/black/strato_hidrive_next-icon.svg | 4 + .../colored/IONOS_logo_w_suffix_frontend.png | Bin 0 -> 3814 bytes .../colored/IONOS_logo_w_suffix_frontend.svg | 35 + .../IONOS_logo_w_suffix_frontend@2x.png | Bin 0 -> 7455 bytes theme/colored/Nextcloud-macOS-icon.svg | 287 ---- .../colored/STRATO_logo_w_suffix_frontend.png | Bin 0 -> 3541 bytes .../colored/STRATO_logo_w_suffix_frontend.svg | 21 + .../STRATO_logo_w_suffix_frontend@2x.png | Bin 0 -> 7455 bytes theme/colored/ionos-data-protection-logo.png | Bin 0 -> 7590 bytes .../colored/ionos-hidrive-next-macOS-icon.svg | 27 + .../ionos-hidrive-next-macOS-sidebar.svg | 10 + theme/colored/ionos_hidrive_next-icon.svg | 17 + theme/colored/state-error.svg | 12 +- theme/colored/state-offline.svg | 4 +- theme/colored/state-ok.svg | 17 +- theme/colored/state-pause.svg | 5 +- theme/colored/state-sync.svg | 5 +- theme/colored/state-warning.svg | 12 +- theme/colored/strato-data-protection-logo.png | Bin 0 -> 18505 bytes .../strato-hidrive-next-macOS-icon.svg | 27 + .../strato-hidrive-next-macOS-sidebar.svg | 10 + theme/colored/strato_hidrive_next-icon.svg | 4 + theme/hidrivenext.VisualElementsManifest.xml | 7 + theme/ses/ses-IONOS-logo.svg | 35 + theme/ses/ses-accountDelete.svg | 3 + theme/ses/ses-accountLogout.svg | 10 + theme/ses/ses-accountPause.svg | 3 + theme/ses/ses-accountQuit.svg | 3 + theme/ses/ses-accountResume.svg | 3 + theme/ses/ses-activity.svg | 10 + theme/ses/ses-activityDelete.svg | 3 + theme/ses/ses-addlivebackup.svg | 10 + theme/ses/ses-chevron.svg | 3 + theme/ses/ses-clipboard.svg | 10 + theme/ses/ses-darkPlus.svg | 10 + theme/ses/ses-external.svg | 3 + theme/ses/ses-file.svg | 3 + theme/ses/ses-folderIcon.svg | 3 + theme/ses/ses-folderIconBright.svg | 3 + theme/ses/ses-info.svg | 10 + theme/ses/ses-lightClipboard.svg | 10 + theme/ses/ses-lightPlus.svg | 10 + theme/ses/ses-link.svg | 4 + theme/ses/ses-more-hover.svg | 3 + theme/ses/ses-more.svg | 3 + theme/ses/ses-questionmark.svg | 3 + theme/ses/ses-refresh.svg | 10 + theme/ses/ses-settings.svg | 3 + theme/ses/ses-settingsAvatar.svg | 3 + theme/ses/ses-settingsAvatarRound.svg | 3 + theme/ses/ses-snackbar-error.svg | 10 + theme/ses/ses-snackbar-success.svg | 10 + theme/ses/ses-snackbar-warning.svg | 3 + theme/ses/ses-state-offline.svg | 3 + theme/ses/ses-syncArrows.svg | 3 + theme/ses/ses-syncstate-error.svg | 10 + theme/ses/ses-syncstate-paused.svg | 10 + theme/ses/ses-syncstate-success.svg | 10 + theme/ses/ses-syncstate-syncing.svg | 16 + theme/ses/ses-syncstate-warning.svg | 10 + theme/ses/ses-website.svg | 10 + theme/ses/strato/ses-STRATO-logo.svg | 21 + theme/ses/strato/ses-accountDelete.svg | 10 + theme/ses/strato/ses-accountLogout.svg | 10 + theme/ses/strato/ses-accountPause.svg | 10 + theme/ses/strato/ses-accountQuit.svg | 3 + theme/ses/strato/ses-accountResume.svg | 3 + theme/ses/strato/ses-activity.svg | 3 + theme/ses/strato/ses-activityDelete.svg | 3 + theme/ses/strato/ses-addlivebackup.svg | 11 + theme/ses/strato/ses-chevron.svg | 3 + theme/ses/strato/ses-clipboard.svg | 3 + theme/ses/strato/ses-darkPlus.svg | 3 + theme/ses/strato/ses-external.svg | 3 + theme/ses/strato/ses-file.svg | 3 + theme/ses/strato/ses-folderIcon.svg | 3 + theme/ses/strato/ses-folderIconBright.svg | 3 + theme/ses/strato/ses-info.svg | 10 + theme/ses/strato/ses-lightClipboard.svg | 3 + theme/ses/strato/ses-lightPlus.svg | 10 + theme/ses/strato/ses-link.svg | 4 + theme/ses/strato/ses-more-hover.svg | 3 + theme/ses/strato/ses-more-white.svg | 3 + theme/ses/strato/ses-more.svg | 3 + theme/ses/strato/ses-questionmark.svg | 3 + theme/ses/strato/ses-refresh.svg | 10 + theme/ses/strato/ses-settings.svg | 3 + theme/ses/strato/ses-settingsAvatar.svg | 3 + theme/ses/strato/ses-settingsAvatarRound.svg | 10 + theme/ses/strato/ses-snackbar-error.svg | 10 + theme/ses/strato/ses-snackbar-success.svg | 10 + theme/ses/strato/ses-snackbar-warning.svg | 3 + theme/ses/strato/ses-state-offline.svg | 3 + theme/ses/strato/ses-syncArrows.svg | 3 + theme/ses/strato/ses-syncstate-error.svg | 11 + theme/ses/strato/ses-syncstate-paused.svg | 4 + theme/ses/strato/ses-syncstate-success.svg | 16 + theme/ses/strato/ses-syncstate-syncing.svg | 4 + theme/ses/strato/ses-syncstate-warning.svg | 11 + theme/ses/strato/ses-website.svg | 10 + theme/white/ionos-hidrive-next-macOS-icon.svg | 27 + .../ionos-hidrive-next-macOS-sidebar.svg | 10 + theme/white/ionos_hidrive_next-icon.svg | 17 + .../white/strato-hidrive-next-macOS-icon.svg | 27 + .../strato-hidrive-next-macOS-sidebar.svg | 10 + theme/white/strato_hidrive_next-icon.svg | 4 + translation_scripts/Readme.md | 113 ++ translation_scripts/de_DE.ts | 577 +++++++ translation_scripts/en.ts | 577 +++++++ translation_scripts/en_GB.ts | 577 +++++++ translation_scripts/es.ts | 578 +++++++ translation_scripts/fr.ts | 577 +++++++ translation_scripts/it.ts | 577 +++++++ translation_scripts/merge_translation.py | 350 ++++ translation_scripts/nl.ts | 577 +++++++ translation_scripts/sort.py | 145 ++ 366 files changed, 18451 insertions(+), 4325 deletions(-) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/nc-desktop-snippets.code-snippets create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 .vscode/wsl-nc-desktop.code-workspace create mode 100644 IONOS.cmake create mode 100644 LICENSE create mode 100644 NOTICE create mode 100755 admin/osx/ionos_macmaker/mac_craft.sh create mode 100644 admin/osx/ionos_macmaker/readme.md create mode 100755 admin/osx/ionos_macmaker/sign.sh create mode 100755 admin/osx/ionos_macmaker/start.sh create mode 100644 admin/win/msi/Ionos.wxs rename admin/win/msi/{Nextcloud.wxs => Nextcloud~~.wxs} (100%) create mode 100644 admin/win/msi/gui/banner_2.bmp create mode 100644 admin/win/msi/gui/dialog_2.bmp create mode 100644 doc/ADR/20241007_TrackingWithGA4.md create mode 100644 doc/ADR/20250212_UseCostomizationService.md create mode 100644 doc/ADR/_template.md create mode 100644 find_qml_imports.py create mode 100644 fonts/OpenSans-Bold.ttf create mode 100644 fonts/OpenSans-BoldItalic.ttf create mode 100644 fonts/OpenSans-ExtraBold.ttf create mode 100644 fonts/OpenSans-ExtraBoldItalic.ttf create mode 100644 fonts/OpenSans-Italic.ttf create mode 100644 fonts/OpenSans-Light.ttf create mode 100644 fonts/OpenSans-LightItalic.ttf create mode 100644 fonts/OpenSans-Regular.ttf create mode 100644 fonts/OpenSans-SemiBold.ttf create mode 100644 fonts/OpenSans-SemiBoldItalic.ttf create mode 100644 ionos-theme.qrc create mode 100644 ionos-theme.qrc.in create mode 100644 ionos.qrc create mode 100644 src/gui/SesComponents/SesErrorBox.qml create mode 100644 src/gui/SesComponents/SesTrayHeader.qml create mode 100644 src/gui/SesComponents/syncdirvalidation.cpp create mode 100644 src/gui/SesComponents/syncdirvalidation.h create mode 100644 src/gui/basetheme.h create mode 100644 src/gui/buttonstyle.h create mode 100644 src/gui/buttonstylestrategy.h create mode 100644 src/gui/clickablelabel.h create mode 100644 src/gui/folderwizardselectivesync.ui create mode 100644 src/gui/ga4/datacollectionwrapper.cpp create mode 100644 src/gui/ga4/datacollectionwrapper.h create mode 100644 src/gui/ga4/ganalytics.cpp create mode 100644 src/gui/ga4/ganalytics.h create mode 100644 src/gui/ga4/ganalytics_worker.cpp create mode 100644 src/gui/ga4/ganalytics_worker.h create mode 100644 src/gui/ionostheme.h create mode 100644 src/gui/linkbutton.cpp create mode 100644 src/gui/linkbutton.h create mode 100644 src/gui/moreoptionsbuttonstylehelper.cpp create mode 100644 src/gui/moreoptionsbuttonstylehelper.h create mode 100644 src/gui/pushbuttonstylehelper.cpp create mode 100644 src/gui/pushbuttonstylehelper.h create mode 100644 src/gui/sesFileIconProvider.cpp create mode 100644 src/gui/sesFileIconProvider.h create mode 100644 src/gui/sessnackbar.cpp create mode 100644 src/gui/sessnackbar.h create mode 100644 src/gui/sesstyle.cpp create mode 100644 src/gui/sesstyle.h create mode 100644 src/gui/stratotheme.h create mode 100644 src/gui/tray/AccountMenuItem.qml create mode 100644 src/gui/tray/HeaderLogo.qml create mode 100644 src/gui/tray/IconButton.qml create mode 100644 src/gui/tray/PrimaryPillButton.qml create mode 100644 src/gui/tray/SecondaryPillButton.qml create mode 100644 src/gui/tray/TrayWindowAccountMenu.qml create mode 100644 src/gui/tray/TrayWindowHeaderBar.qml create mode 100644 src/gui/whitelabeltheme.h create mode 100644 src/gui/wizard/dataprotectionpage.cpp create mode 100644 src/gui/wizard/dataprotectionpage.h create mode 100644 src/gui/wizard/dataprotectionpage.ui create mode 100644 src/gui/wizard/dataprotectionsettingspage.cpp create mode 100644 src/gui/wizard/dataprotectionsettingspage.h create mode 100644 src/gui/wizard/dataprotectionsettingspage.ui create mode 100644 switch_logging_category.py create mode 100644 switch_qml_imports.py create mode 100644 theme/black/ionos-hidrive-next-macOS-icon.svg create mode 100644 theme/black/ionos-hidrive-next-macOS-sidebar.svg create mode 100644 theme/black/ionos_hidrive_next-icon.svg create mode 100644 theme/black/strato-hidrive-next-macOS-icon.svg create mode 100644 theme/black/strato-hidrive-next-macOS-sidebar.svg create mode 100644 theme/black/strato_hidrive_next-icon.svg create mode 100644 theme/colored/IONOS_logo_w_suffix_frontend.png create mode 100644 theme/colored/IONOS_logo_w_suffix_frontend.svg create mode 100644 theme/colored/IONOS_logo_w_suffix_frontend@2x.png delete mode 100644 theme/colored/Nextcloud-macOS-icon.svg create mode 100644 theme/colored/STRATO_logo_w_suffix_frontend.png create mode 100644 theme/colored/STRATO_logo_w_suffix_frontend.svg create mode 100644 theme/colored/STRATO_logo_w_suffix_frontend@2x.png create mode 100644 theme/colored/ionos-data-protection-logo.png create mode 100644 theme/colored/ionos-hidrive-next-macOS-icon.svg create mode 100644 theme/colored/ionos-hidrive-next-macOS-sidebar.svg create mode 100644 theme/colored/ionos_hidrive_next-icon.svg create mode 100644 theme/colored/strato-data-protection-logo.png create mode 100644 theme/colored/strato-hidrive-next-macOS-icon.svg create mode 100644 theme/colored/strato-hidrive-next-macOS-sidebar.svg create mode 100644 theme/colored/strato_hidrive_next-icon.svg create mode 100644 theme/hidrivenext.VisualElementsManifest.xml create mode 100644 theme/ses/ses-IONOS-logo.svg create mode 100644 theme/ses/ses-accountDelete.svg create mode 100644 theme/ses/ses-accountLogout.svg create mode 100644 theme/ses/ses-accountPause.svg create mode 100644 theme/ses/ses-accountQuit.svg create mode 100644 theme/ses/ses-accountResume.svg create mode 100644 theme/ses/ses-activity.svg create mode 100644 theme/ses/ses-activityDelete.svg create mode 100644 theme/ses/ses-addlivebackup.svg create mode 100644 theme/ses/ses-chevron.svg create mode 100644 theme/ses/ses-clipboard.svg create mode 100644 theme/ses/ses-darkPlus.svg create mode 100644 theme/ses/ses-external.svg create mode 100644 theme/ses/ses-file.svg create mode 100644 theme/ses/ses-folderIcon.svg create mode 100644 theme/ses/ses-folderIconBright.svg create mode 100644 theme/ses/ses-info.svg create mode 100644 theme/ses/ses-lightClipboard.svg create mode 100644 theme/ses/ses-lightPlus.svg create mode 100644 theme/ses/ses-link.svg create mode 100644 theme/ses/ses-more-hover.svg create mode 100644 theme/ses/ses-more.svg create mode 100644 theme/ses/ses-questionmark.svg create mode 100644 theme/ses/ses-refresh.svg create mode 100644 theme/ses/ses-settings.svg create mode 100644 theme/ses/ses-settingsAvatar.svg create mode 100644 theme/ses/ses-settingsAvatarRound.svg create mode 100644 theme/ses/ses-snackbar-error.svg create mode 100644 theme/ses/ses-snackbar-success.svg create mode 100644 theme/ses/ses-snackbar-warning.svg create mode 100644 theme/ses/ses-state-offline.svg create mode 100644 theme/ses/ses-syncArrows.svg create mode 100644 theme/ses/ses-syncstate-error.svg create mode 100644 theme/ses/ses-syncstate-paused.svg create mode 100644 theme/ses/ses-syncstate-success.svg create mode 100644 theme/ses/ses-syncstate-syncing.svg create mode 100644 theme/ses/ses-syncstate-warning.svg create mode 100644 theme/ses/ses-website.svg create mode 100644 theme/ses/strato/ses-STRATO-logo.svg create mode 100644 theme/ses/strato/ses-accountDelete.svg create mode 100644 theme/ses/strato/ses-accountLogout.svg create mode 100644 theme/ses/strato/ses-accountPause.svg create mode 100644 theme/ses/strato/ses-accountQuit.svg create mode 100644 theme/ses/strato/ses-accountResume.svg create mode 100644 theme/ses/strato/ses-activity.svg create mode 100644 theme/ses/strato/ses-activityDelete.svg create mode 100644 theme/ses/strato/ses-addlivebackup.svg create mode 100644 theme/ses/strato/ses-chevron.svg create mode 100644 theme/ses/strato/ses-clipboard.svg create mode 100644 theme/ses/strato/ses-darkPlus.svg create mode 100644 theme/ses/strato/ses-external.svg create mode 100644 theme/ses/strato/ses-file.svg create mode 100644 theme/ses/strato/ses-folderIcon.svg create mode 100644 theme/ses/strato/ses-folderIconBright.svg create mode 100644 theme/ses/strato/ses-info.svg create mode 100644 theme/ses/strato/ses-lightClipboard.svg create mode 100644 theme/ses/strato/ses-lightPlus.svg create mode 100644 theme/ses/strato/ses-link.svg create mode 100644 theme/ses/strato/ses-more-hover.svg create mode 100644 theme/ses/strato/ses-more-white.svg create mode 100644 theme/ses/strato/ses-more.svg create mode 100644 theme/ses/strato/ses-questionmark.svg create mode 100644 theme/ses/strato/ses-refresh.svg create mode 100644 theme/ses/strato/ses-settings.svg create mode 100644 theme/ses/strato/ses-settingsAvatar.svg create mode 100644 theme/ses/strato/ses-settingsAvatarRound.svg create mode 100644 theme/ses/strato/ses-snackbar-error.svg create mode 100644 theme/ses/strato/ses-snackbar-success.svg create mode 100644 theme/ses/strato/ses-snackbar-warning.svg create mode 100644 theme/ses/strato/ses-state-offline.svg create mode 100644 theme/ses/strato/ses-syncArrows.svg create mode 100644 theme/ses/strato/ses-syncstate-error.svg create mode 100644 theme/ses/strato/ses-syncstate-paused.svg create mode 100644 theme/ses/strato/ses-syncstate-success.svg create mode 100644 theme/ses/strato/ses-syncstate-syncing.svg create mode 100644 theme/ses/strato/ses-syncstate-warning.svg create mode 100644 theme/ses/strato/ses-website.svg create mode 100644 theme/white/ionos-hidrive-next-macOS-icon.svg create mode 100644 theme/white/ionos-hidrive-next-macOS-sidebar.svg create mode 100644 theme/white/ionos_hidrive_next-icon.svg create mode 100644 theme/white/strato-hidrive-next-macOS-icon.svg create mode 100644 theme/white/strato-hidrive-next-macOS-sidebar.svg create mode 100644 theme/white/strato_hidrive_next-icon.svg create mode 100644 translation_scripts/Readme.md create mode 100644 translation_scripts/de_DE.ts create mode 100644 translation_scripts/en.ts create mode 100644 translation_scripts/en_GB.ts create mode 100644 translation_scripts/es.ts create mode 100644 translation_scripts/fr.ts create mode 100644 translation_scripts/it.ts create mode 100644 translation_scripts/merge_translation.py create mode 100644 translation_scripts/nl.ts create mode 100644 translation_scripts/sort.py diff --git a/.github/workflows/clang-tidy-review.yml b/.github/workflows/clang-tidy-review.yml index 911c4c55e49a8..fcafbbc9176f5 100644 --- a/.github/workflows/clang-tidy-review.yml +++ b/.github/workflows/clang-tidy-review.yml @@ -3,8 +3,7 @@ name: clang-tidy-review on: - pull_request: - types: [opened, synchronize, reopened] + workflow_dispatch: jobs: clang-tidy: diff --git a/.github/workflows/linux-clang-compile-tests.yml b/.github/workflows/linux-clang-compile-tests.yml index 0488b410edd56..50692318b0313 100644 --- a/.github/workflows/linux-clang-compile-tests.yml +++ b/.github/workflows/linux-clang-compile-tests.yml @@ -2,8 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later name: Linux Clang compilation and tests on: - pull_request: - types: [opened, synchronize, reopened] + workflow_dispatch: jobs: build: name: Linux Clang compilation and tests diff --git a/.github/workflows/linux-gcc-compile-tests.yml b/.github/workflows/linux-gcc-compile-tests.yml index c72c9b96ba6f7..edf9defd2c2aa 100644 --- a/.github/workflows/linux-gcc-compile-tests.yml +++ b/.github/workflows/linux-gcc-compile-tests.yml @@ -2,8 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later name: Linux GCC compilation and tests on: - pull_request: - types: [opened, synchronize, reopened] + workflow_dispatch: jobs: build: name: Linux GCC compilation and tests diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml index be978022ce66f..a1430cbbf8a4a 100644 --- a/.github/workflows/sonarcloud.yml +++ b/.github/workflows/sonarcloud.yml @@ -2,8 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later name: SonarCloud analysis on: - pull_request: - types: [opened, synchronize, reopened] + workflow_dispatch: jobs: build: name: SonarCloud analysis diff --git a/.github/workflows/windows-build-and-test.yml b/.github/workflows/windows-build-and-test.yml index dab9d37a6bb2b..c5a3d093cf815 100644 --- a/.github/workflows/windows-build-and-test.yml +++ b/.github/workflows/windows-build-and-test.yml @@ -2,6 +2,11 @@ # SPDX-License-Identifier: GPL-2.0-or-later name: Windows Build and Test on: + workflow_dispatch: + # push: + # branches: + # - master + # - develop pull_request: types: [opened, synchronize, reopened] jobs: diff --git a/.gitignore b/.gitignore index e64d58766d85e..9038bbaa8b2b6 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ t1.cfg ## Ignore Visual Studio Code config & environment files .vs/ -.vscode/ +# .vscode/ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. @@ -194,4 +194,9 @@ convert.exe *-w10startmenu.png *state-*.png theme.qrc +ionos-theme.qrc *.AppImage + +.idea/ + +shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/ diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000000000..3f0c64ea209b8 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,14 @@ +{ + "configurations": [ + { + "name": "Linux", + "compileCommands": [ + "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/compile_commands.json" + ], + "intelliSenseMode": "linux-gcc-x64", + "cStandard": "c17", + "cppStandard": "c++17" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000000..35bb85a720422 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,97 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "(Linux-IONOS-RelWithDebInfo) Launch HiDriveNext", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/linux-GCC-x64/RelWithDebInfo/bin/IONOS_HiDrive_Next", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "LD_LIBRARY_PATH", + "value": "/home/chaetty/CraftRoot/bin:${env:LD_LIBRARY_PATH}" + }, + { "name": "QML_IMPORT_TRACE", "value": "1" }, + { "name": "QT_LOGGING_RULES", "value": "qt.qml.debug=true" } + ], + "MIMode": "gdb", + "setupCommands": [ + { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } + ] + }, + { + "name": "(Linux-STRATO-RelWithDebInfo) Launch HiDriveNext", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/linux-GCC-x64/RelWithDebInfo/bin/STRATO_HiDrive_Next", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "LD_LIBRARY_PATH", + "value": "/home/chaetty/CraftRoot/bin:${env:LD_LIBRARY_PATH}" + }, + { "name": "QML_IMPORT_TRACE", "value": "1" }, + { "name": "QT_LOGGING_RULES", "value": "qt.qml.debug=true" } + ], + "MIMode": "gdb", + "setupCommands": [ + { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } + ] + }, + { + "name": "(RelWithDebInfo) Launch HiDriveNext", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/IONOS_HiDrive_Next.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "PATH", + "value": "C:/CraftRoot/bin;C:/Craft64/bin;%PATH%" + }, + { "name": "QML_IMPORT_TRACE", "value": "1" }, + { "name": "QT_LOGGING_RULES", "value": "qt.qml.debug=true" } + ], + }, + { + "name": "(RelWithDebInfo) Launch NextCloud", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/nextcloud.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "PATH", + "value": "C:/CraftRoot/bin;C:/Craft64/bin;%PATH%" + }, + ], + }, + { + "name": "(Release) Launch NextCloud", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/Release/bin/nextcloud.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "PATH", + "value": "C:/CraftRoot/bin;C:/Craft64/bin;%PATH%" + }, + ], + }, + ] +} \ No newline at end of file diff --git a/.vscode/nc-desktop-snippets.code-snippets b/.vscode/nc-desktop-snippets.code-snippets new file mode 100644 index 0000000000000..920dea7cb70f6 --- /dev/null +++ b/.vscode/nc-desktop-snippets.code-snippets @@ -0,0 +1,30 @@ +{ + // Place your nc-desktop workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + + "DebugLog": { + "scope": "cpp", + "prefix": "dlog", + "body": [ + "char buffer$1[256];", + "sprintf(buffer$1, \"$2\\n\", $3);", + "OutputDebugStringA(buffer$1);" + ], + "description": "Debug log output" + } + +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000..0b78cf0be5532 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "cmake.generator": "Ninja", + "cmake.configureSettings": { + "CMAKE_PREFIX_PATH": [ + "C:/CraftRoot", + "C:/CraftRoot/dev-utils/bin", + "C:/Craft64", + "C:/Craft64/dev-utils/bin" + ], + "BUILD_TESTING":"OFF", + }, + "cmake.buildDirectory": "${workspaceFolder}/../build/${buildKitTargetOs}-${buildKitVendor}-${buildKitTargetArch}/${buildType}", + "files.associations": { + "qwizardpage": "cpp", + "xutility": "cpp" + }, +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000000000..153627d3103a2 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,37 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "clean RelWithDebInfo", + "type": "shell", + "command": "powershell", + "args": [ + "-NoProfile", + "-Command", + "Remove-Item -Recurse -Force ..\\build\\win32-MSVC-x64\\RelWithDebInfo" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "A task to clean the build directory using PowerShell" + }, + { + "label": "clean Release", + "type": "shell", + "command": "powershell", + "args": [ + "-NoProfile", + "-Command", + "Remove-Item -Recurse -Force ..\\build\\win32-MSVC-x64\\Release" + ], + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "A task to clean the build directory using PowerShell" + }, + ] +} \ No newline at end of file diff --git a/.vscode/wsl-nc-desktop.code-workspace b/.vscode/wsl-nc-desktop.code-workspace new file mode 100644 index 0000000000000..b890d2f8b5101 --- /dev/null +++ b/.vscode/wsl-nc-desktop.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": ".." + } + ] +} \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a9c91deae16b..60d8934f3f4e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,8 @@ cmake_policy(SET CMP0071 NEW) # Enable use of QtQuick compiler/generated code project(client) +add_compile_definitions(IONOS_BUILD) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if(APPLE) set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OSX deployment version") endif() @@ -29,6 +31,7 @@ endif() set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") include(${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake) +include(${CMAKE_SOURCE_DIR}/IONOS.cmake) set(QT_VERSION_MAJOR "6") set(REQUIRED_QT_VERSION "6.8.0") @@ -238,7 +241,7 @@ if(OWNCLOUD_5XX_NO_BLACKLIST) endif() if(APPLE) - set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "" CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) + set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "5TDLCVD243." CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) endif() if(BUILD_CLIENT) diff --git a/CPackOptions.cmake.in b/CPackOptions.cmake.in index d38c4bf28b81b..472974145bcc5 100644 --- a/CPackOptions.cmake.in +++ b/CPackOptions.cmake.in @@ -14,7 +14,7 @@ endif(CPACK_GENERATOR MATCHES "NSIS") set( CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@ ) set( CMAKE_BINARY_DIR @CMAKE_BINARY_DIR@ ) -include("${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake") +include("${CMAKE_SOURCE_DIR}/IONOS.cmake") set( BUILD_OWNCLOUD_OSX_BUNDLE @BUILD_OWNCLOUD_OSX_BUNDLE@) if(APPLE AND NOT BUILD_OWNCLOUD_OSX_BUNDLE) diff --git a/IONOS.cmake b/IONOS.cmake new file mode 100644 index 0000000000000..40c8b3a6df33d --- /dev/null +++ b/IONOS.cmake @@ -0,0 +1,63 @@ +set( APPLICATION_REV_DOMAIN "com.ionos.hidrivenext.desktopclient" ) + +option(LOCALBUILD "Local developer build" OFF) + +if(LOCALBUILD) + ## Only needed for local build + message(STATUS "Building in LOCAL mode") + + set( APPLICATION_VIRTUALFILE_SUFFIX "${APPLICATION_SHORTNAME}_virtual" CACHE STRING "Virtual file suffix (not including the .)" FORCE) + + ## Windows Shell Extensions & MSI - IMPORTANT: Generate new GUIDs for custom builds with "guidgen" or "uuidgen" + if(WIN32) + # Context Menu + set( WIN_SHELLEXT_CONTEXT_MENU_GUID "{6B16FF7B-F242-4CE3-8FB9-F06EF127E0DC}" ) + + # Overlays + set( WIN_SHELLEXT_OVERLAY_GUID_ERROR "{243D887B-9F74-41DD-BACA-BC5501AF10AC}" ) + set( WIN_SHELLEXT_OVERLAY_GUID_OK "{2D88D499-3272-4A76-84BF-D252254B40D6}" ) + set( WIN_SHELLEXT_OVERLAY_GUID_OK_SHARED "{7BEF6B56-5B5B-4284-A70C-56D62254C97A}" ) + set( WIN_SHELLEXT_OVERLAY_GUID_SYNC "{5F2F493D-A683-426F-925E-4CA25F17C4A9}" ) + set( WIN_SHELLEXT_OVERLAY_GUID_WARNING "{7F256BB6-29D2-4E40-A6C4-E5E756E64C82}" ) + + # MSI Upgrade Code (without brackets) + set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) + endif() + + if("${WHITELABEL_NAME}" STREQUAL "strato") + set( APPLICATION_NAME "STRATO HiDrive Next" ) + set( APPLICATION_SHORTNAME "STRATOHiDriveNext" ) + set( APPLICATION_EXECUTABLE "strato-hidrive-next" ) + set( APPLICATION_CONFIG_NAME "STRATO-HiDrive-Next" ) + set( APPLICATION_ICON_NAME "strato_hidrive_next" ) + set( APPLICATION_DOMAIN "strato.com" ) + set( APPLICATION_UPDATE_URL "https://customerupdates.nextcloud.com/client/" CACHE STRING "URL for updater" FORCE) + set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" FORCE) + set( APPLICATION_SERVER_URL "https://storage.ionos.fr" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" FORCE) + elseif("${WHITELABEL_NAME}" STREQUAL "ionos") + set( APPLICATION_NAME "IONOS HiDrive Next" ) + set( APPLICATION_SHORTNAME "IONOSHiDriveNext" ) + set( APPLICATION_EXECUTABLE "ionos-hidrive-next" ) + set( APPLICATION_CONFIG_NAME "IONOS-HiDrive-Next" ) + set( APPLICATION_ICON_NAME "ionos_hidrive_next" ) + set( APPLICATION_DOMAIN "ionos.com" ) + set( APPLICATION_UPDATE_URL "https://customerupdates.nextcloud.com/client/" CACHE STRING "URL for updater" FORCE) + set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" FORCE) + set( APPLICATION_SERVER_URL "https://storage.ionos.fr" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" FORCE) + endif() + +endif() + + +if(APPLE AND "${APPLICATION_NAME}" MATCHES "HiDrive Next") + set(APPLICATION_ICON_NAME "${APPLICATION_EXECUTABLE}-macOS") + message("Using macOS-specific application icon: ${APPLICATION_ICON_NAME}") +endif() + +if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") + set( APPLICATION_VENDOR "STRATO" ) + add_compile_definitions(STRATO_WL_BUILD) +elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") + set( APPLICATION_VENDOR "IONOS SE" ) + add_compile_definitions(IONOS_WL_BUILD) +endif() \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000..eda7bae4c9726 --- /dev/null +++ b/LICENSE @@ -0,0 +1,73 @@ +Apache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright 2022-2024 chinchilla + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000000000..59ff260650176 --- /dev/null +++ b/NOTICE @@ -0,0 +1,18 @@ +Nextcloud Desktop - Ionos HiDrive Next + +This project includes software developed by chinchilla, available at: +[https://github.com/564398053/Qt-GoogleAnalytics4]. + +Bundled Components: + Qt-GoogleAnalytics4 + ga4/ganalytics.cpp + ga4/ganalytics_worker.cpp + Copyright 2022 chinchilla + Licensed under the Apache License, Version 2.0. + You may obtain a copy of the license at: + [http://www.apache.org/licenses/LICENSE-2.0]. + + +Important Note: +The rest of this project is not licensed under the Apache License, Version 2.0. It remains under the original license as specified in the original repository: +[https://github.com/IONOS-Productivity/nc-desktop]. \ No newline at end of file diff --git a/NextcloudCPack.cmake b/NextcloudCPack.cmake index d0e0f2da99791..75a072340b76a 100644 --- a/NextcloudCPack.cmake +++ b/NextcloudCPack.cmake @@ -5,7 +5,7 @@ include( InstallRequiredSystemLibraries ) set( CPACK_PACKAGE_CONTACT "Dominik Schmidt " ) -include("${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake") +include("${CMAKE_SOURCE_DIR}/IONOS.cmake") include( VERSION.cmake ) set( CPACK_PACKAGE_VERSION_MAJOR ${MIRALL_VERSION_MAJOR} ) diff --git a/VERSION.cmake b/VERSION.cmake index 7dc11fe7c887a..50dfad0040d94 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -29,6 +29,7 @@ set(NEXTCLOUD_SERVER_VERSION_SECURE_FILEDROP_MIN_SUPPORTED_PATCH 0) set(NEXTCLOUD_SERVER_VERSION_MOUNT_ROOT_PROPERTY_SUPPORTED_MAJOR 28) set(NEXTCLOUD_SERVER_VERSION_MOUNT_ROOT_PROPERTY_SUPPORTED_MINOR 0) set(NEXTCLOUD_SERVER_VERSION_MOUNT_ROOT_PROPERTY_SUPPORTED_PATCH 3) +set(MIRALL_VERSION_SUFFIX "stable") # ------------------------------------ # Define default suffixes if not set diff --git a/admin/osx/ionos_macmaker/mac_craft.sh b/admin/osx/ionos_macmaker/mac_craft.sh new file mode 100755 index 0000000000000..35943bc4018a4 --- /dev/null +++ b/admin/osx/ionos_macmaker/mac_craft.sh @@ -0,0 +1,260 @@ +#!/bin/bash + + +# This script is used to build the Mac OS X version of the IONOS client. +# Parse the command line arguments +while getopts "b:p:s:n:k:civtu" opt; do + case ${opt} in + b )REL_BASE_DIR=$OPTARG;; + p )REL_PATH_TO_PKG=$OPTARG ;; + s )IONOS_TEAM_IDENTIFIER=$OPTARG ;; + n )NC_TEAM_IDENTIFIER=$OPTARG ;; + k )SPARKLE_KEY=$OPTARG ;; # not used + c )CLEAN_REBUILD=true ;; + i )PACKAGE_INSTALLER=true ;; + v )VERBOSE=true ;; + t )TEAM_PATCHING=true ;; + u )BUILD_UPDATER=true ;; + \? ) + echo "Usage: mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-c CLEAN_REBUILD] [-i PACKAGE_INSTALLER] [-v VERBOSE] [-t TEAM_PATCHING] [-u BUILD_UPDATER]" + exit 1 + ;; + esac +done + +if [ "$VERBOSE" = true ]; then + echo "VERBOSE MODE" + set -xe +fi + +if [ "$TEAM_PATCHING" == "true" ] && [ -z "$NC_TEAM_IDENTIFIER" ]; then + echo "Patching aktivated, but NC_TEAM_IDENTIFIER not set. Exiting." + exit 0 +fi + +# Check if CODE_SIGN_IDENTITY is set, if not exit +if [ -z "$IONOS_TEAM_IDENTIFIER" ]; then + echo "IONOS_TEAM_IDENTIFIER not set. Exiting." + exit 0 +fi + +if [ -z "$REL_BASE_DIR" ]; then + echo "REL_BASE_DIR not set. Exiting." + exit 0 +fi + +if [ -z "$REL_PATH_TO_PKG" ]; then + echo "REL_PATH_TO_PKG not set. Exiting." + exit 0 +fi + +# Some variables +BASE_DIR="$( cd "$REL_BASE_DIR" && pwd )" +PATH_TO_PKG="$( realpath "$REL_PATH_TO_PKG")" + +PKG_FULLNAME=$(basename "$PATH_TO_PKG") +PKG_FILENAME="${PKG_FULLNAME%.pkg}" +PRODUCT_NAME="IONOS HiDrive Next" +UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" + +CODE_SIGN_IDENTITY="IONOS SE ($IONOS_TEAM_IDENTIFIER)" +INSTALLER_CERT="Developer ID Installer: $CODE_SIGN_IDENTITY" +APPLICATION_CERT="Developer ID Application: $CODE_SIGN_IDENTITY" + +WORK_DIR="ex" +EXTRACTED_DIR="${BASE_DIR%/}/$WORK_DIR" + +PRODUCT_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Payload/Applications +SCRIPTS_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Scripts +INNER_PKG=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg +PAYLOAD_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Payload +INSTALLER_PKG=${BASE_DIR%/}/INSTALLER.pkg +APP_PATH=$PRODUCT_DIR/$PRODUCT_NAME.app +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +ADMIN_OSX="$( cd "$SCRIPT_DIR/.." && pwd )/macosx.entitlements.cmake" +MACCRAFTER_DIR="$( cd "$SCRIPT_DIR/../mac-crafter" && pwd )" + + +# Sparkle Variables +PACKAGE_PATH="${BASE_DIR%/}/$PKG_FILENAME.resigned.pkg" +SPARKLE_TBZ_PATH="${PACKAGE_PATH}.tbz" +SPARKLE_DIR="${BASE_DIR%/}/sparkle" +SPARKLE_DOWNLOAD_URI="https://github.com/sparkle-project/Sparkle/releases/download/1.27.3/Sparkle-1.27.3.tar.xz" + + +echo "Expanding original package..." + +if [ -d "$EXTRACTED_DIR" ]; then + + echo "$EXTRACTED_DIR already exits." + + if [ "$CLEAN_REBUILD" = true ]; then + echo "Clean Rebuild Enabled - Deleting folder: $EXTRACTED_DIR" + rm -rf "$EXTRACTED_DIR" + pkgutil --expand-full "$PATH_TO_PKG" "$EXTRACTED_DIR" + fi +else + pkgutil --expand-full "$PATH_TO_PKG" "$EXTRACTED_DIR" +fi + +# --------------------------------------------------- +# Patch Team Identifier + +# check wether patching is needed. ".com" is important because otherwise the ID in the signature will be found + +if [[ -n "$TEAM_PATCHING" ]]; then + echo "Team Patching Enabled - Start Patching Detection" + + PLIST_MATCHES=$(find "$APP_PATH" -name "*.plist" -exec grep -q "$NC_TEAM_IDENTIFIER.com" {} \; -print | wc -l) + BIN_MATCHES=$(find "$APP_PATH" -type f -exec grep -q --binary-files=text "$NC_TEAM_IDENTIFIER.com" {} \; -print | wc -l) + + if [[ "$PLIST_MATCHES" -gt 0 || "$BIN_MATCHES" -gt 0 ]]; then + # Ensure both IDs are same lengt + if [[ ${#NC_TEAM_IDENTIFIER} -ne ${#IONOS_TEAM_IDENTIFIER} ]]; then + echo "NC_TEAM_IDENTIFIER and IONOS_TEAM_IDENTIFIER must be the same length for binary-safe patching." + open $BASE_DIR + exit 1 + fi + + if [[ "$PLIST_MATCHES" -gt 0 ]]; then + # --- Replace in .plist files (plain XML) --- + echo "Replacing Team Identifier in .plist files..." + find "$APP_PATH" -name "*.plist" -exec grep -q "$NC_TEAM_IDENTIFIER" {} \; -exec sed -i '' "s/$NC_TEAM_IDENTIFIER/$IONOS_TEAM_IDENTIFIER/g" {} \; + fi + + if [[ "$BIN_MATCHES" -gt 0 ]]; then + # Find and patch all binaries containing the old ID + find "$APP_PATH" -type f -exec grep -q --binary-files=text "$NC_TEAM_IDENTIFIER" {} \; -print | while read -r file; do + echo "Patching Team Identifier in $file" + perl -pi -e "s/$NC_TEAM_IDENTIFIER/$IONOS_TEAM_IDENTIFIER/g" "$file" + done + fi + else + echo "Nothing to patch" + fi +fi + +# --------------------------------------------------- +# Sign the client + + + +echo "start signing the client" + +swift run --package-path "$MACCRAFTER_DIR" \ + mac-crafter codesign \ + -c "$CODE_SIGN_IDENTITY" \ + -e "$ADMIN_OSX" \ + "$APP_PATH" + +# Validate that the key used for signing the binary matches the expected TeamIdentifier +# needed to pass the SocketApi through the sandbox for communication with virtual file system +if ! codesign -dv "$APP_PATH" 2>&1 | grep -q "TeamIdentifier=$IONOS_TEAM_IDENTIFIER"; then + echo "TeamIdentifier does not match. Exiting." + open $BASE_DIR + exit 0 +fi + +# --------------------------------------------------- +# Installer + +echo "start building the installer" + +# Build the installer, if enabled +if [ -z "$PACKAGE_INSTALLER" ]; then + echo "Installer packaging not enabled. Exiting." + open $BASE_DIR + exit 0 +fi + +echo "Renew BOM" +mkbom "$PAYLOAD_DIR" "$INNER_PKG/Bom" +echo "Reassembling the package..." +(cd "$PAYLOAD_DIR" && \ + find . | cpio -o --format odc | gzip -c) > $PAYLOAD_DIR.new + +rm -rf $PAYLOAD_DIR +mv $PAYLOAD_DIR.new $PAYLOAD_DIR + +(cd $EXTRACTED_DIR && \ + pkgutil --flatten $UNDERSCORE_PRODUCT_NAME.pkg $UNDERSCORE_PRODUCT_NAME.pkg.flat) + +rm -rf $INNER_PKG +mv $INNER_PKG.flat $INNER_PKG + +productsign --timestamp --sign "$INSTALLER_CERT" \ + $INNER_PKG \ + $INNER_PKG.signed + +rm -rf $INNER_PKG +mv $INNER_PKG.signed $INNER_PKG + +(cd $BASE_DIR && productbuild \ + --distribution ex/Distribution \ + --resources ex/Resources \ + --package-path ex \ + $INSTALLER_PKG.unsigned) + +productsign --timestamp --sign "$INSTALLER_CERT" $INSTALLER_PKG.unsigned "$PACKAGE_PATH" + +# catch the output of the notarytool command +OUTPUT=$(xcrun notarytool submit --wait "$PACKAGE_PATH"\ + --keychain-profile "IONOS SE HiDrive Next") + +SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) + +# Check if the notarization was successful +if [ $SUBMISSION_STATUS != "Accepted" ]; then + echo "Notarization failed. Exiting." + open $BASE_DIR + exit 1 +fi + +# staple +xcrun stapler staple "$PACKAGE_PATH" +xcrun stapler validate "$PACKAGE_PATH" + + +# Sparkle + +SPARKLE_TBZ_PATH="${PACKAGE_PATH}.tbz" + +echo "Creating Sparkle package archive: $SPARKLE_TBZ_PATH" + +# Load Sparkle + +if [ "$BUILD_UPDATER" == "true" ]; then + echo "Creating Sparkle package archive: $SPARKLE_TBZ_PATH" + + if [ -d "$SPARKLE_DIR" ]; then + + echo "$SPARKLE_DIR already exits." + echo "Deleting..." + rm -rf "$SPARKLE_DIR" + fi + + echo "Download Sparkle" + + mkdir -p $SPARKLE_DIR + wget $SPARKLE_DOWNLOAD_URI -O ${SPARKLE_DIR%/}/Sparkle.tar.xz + tar -xvf ${SPARKLE_DIR%/}/Sparkle.tar.xz -C $SPARKLE_DIR + + if tar cf "$SPARKLE_TBZ_PATH" -C "$(dirname "$PACKAGE_PATH")" "$(basename "$PACKAGE_PATH")"; then + echo "✅ Sparkle package created successfully." + else + echo "❌ Could not create Sparkle package tbz!" >&2 + exit 1 + fi + + echo "Signing Sparkle package: $SPARKLE_TBZ_PATH" + if "${SPARKLE_DIR%/}/bin/sign_update" "$SPARKLE_TBZ_PATH"; then + echo "✅ Sparkle package signed successfully." + else + echo "❌ Could not sign Sparkle package tbz!" >&2 + exit 1 + fi + +fi + +open $BASE_DIR + diff --git a/admin/osx/ionos_macmaker/readme.md b/admin/osx/ionos_macmaker/readme.md new file mode 100644 index 0000000000000..ccbb3ec269c92 --- /dev/null +++ b/admin/osx/ionos_macmaker/readme.md @@ -0,0 +1,126 @@ +# mac_craft.sh + +This script automates the build and signing process for the **IONOS HiDrive Next** macOS client installer. It takes an existing `.pkg` package, optionally patches team identifiers, resigns the app, reassembles the installer, notarizes it with Apple, and finally creates a **Sparkle update package** for distribution. + +--- + +## Features + +* **Expand** a given `.pkg` file into a working directory +* **Patch** identifiers if required (team patching mode) +* **Resign** the app with the correct `Developer ID` certificates +* **Reassemble** the installer package with updated files +* **Notarize and staple** the final package with Apple’s notarization service +* **Build Sparkle update** archives for app updates + +--- + +## Usage + +```bash +./mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-c] [-i] [-v] [-t] [-u] +``` + +### Options + +* `-b ` : Base directory for build and output +* `-p ` : Path to the original `.pkg` installer +* `-s ` : IONOS Team Identifier (required for signing) +* `-n ` : Old Team Identifier (used for patching if needed) +* `-k ` : Sparkle signing key (**currently unused**) +* `-c` : Clean rebuild (delete old extracted directory before expanding) +* `-i` : Enable installer packaging (otherwise exits after signing) +* `-v` : Verbose mode (print debug output) +* `-t` : Enable team patching mode (replaces `NC_TEAM_IDENTIFIER` with `IONOS_TEAM_IDENTIFIER`) +* `-u` : Build Sparkle updater package + +--- + +## Workflow + +1. **Expand Original Package** + + * The `.pkg` is expanded into a working directory (`pkgutil --expand-full`). + * If `-c` is set, any previous working directory is removed first. + +2. **Patch Identifiers (Optional)** + + * If `-t` is used, the script searches `.plist` and binary files for the old team identifier. + * It replaces it with the new `IONOS_TEAM_IDENTIFIER`. + * Both IDs must have the same character length to ensure safe binary patching. + +3. **Resign Application** + + * The client `.app` is signed using the `mac-crafter` tool. + * Codesign identity: `Developer ID Application: IONOS SE (TEAM_ID)` + * Verifies that the signed app’s TeamIdentifier matches the expected one. + +4. **Reassemble Installer** + + * Recreates the package payload (`mkbom`, `cpio`, `pkgutil --flatten`). + * Signs the installer with: + `Developer ID Installer: IONOS SE (TEAM_ID)` + * Uses `productbuild` and `productsign` to generate the final signed package. + +5. **Notarization & Stapling** + + * Submits the package to Apple’s Notary Service (`xcrun notarytool`). + * Waits for the result, validates acceptance. + * Applies a **staple** to the installer (`xcrun stapler staple`). + +6. **Sparkle Update Build (Optional)** + + * Downloads Sparkle if not available. + * Archives the signed package as `.tbz`. + * Signs the archive using Sparkle’s `sign_update` tool. + +--- + +## Example + +```bash +./mac_craft.sh \ + -b /Users/developer/build \ + -p ./IONOS.pkg \ + -s ABC123XYZ \ + -n OLDTEAMID \ + -i -c -t -u -v +``` + +This command will: + +* Clean and rebuild the working directory +* Expand `IONOS.pkg` +* Patch from `OLDTEAMID` → `ABC123XYZ` +* Resign the app and installer +* Notarize and staple the package +* Build a signed Sparkle update archive +* Run in verbose mode + +--- + +## Requirements + +* macOS with Xcode tools installed +* Apple Developer account with: + + * **Developer ID Application** certificate + * **Developer ID Installer** certificate +* `mac-crafter` tool (Swift package, provided by Nextcloud) +* `pkgutil`, `productbuild`, `productsign`, `notarytool`, `stapler`, `xcrun`, `grep`, `sed`, `mkbom`, `cpio`, `gzip` +* `wget`, `tar`, `perl` for Sparkle integration + +--- + +## Output + +* Final notarized installer: + + ``` + /.resigned.pkg + ``` +* Sparkle update archive (if `-u` enabled): + + ``` + /.resigned.pkg.tbz + ``` diff --git a/admin/osx/ionos_macmaker/sign.sh b/admin/osx/ionos_macmaker/sign.sh new file mode 100755 index 0000000000000..f781a41c9cb4d --- /dev/null +++ b/admin/osx/ionos_macmaker/sign.sh @@ -0,0 +1,212 @@ +#!/bin/bash + +recursive_sign(){ + local path="$1" + local extension="${path##*.}" + if [[ "$extension" == "dylib" || "$extension" == "framework" || "$extension" == "appex" ]]; then + echo "Signing directory: $path" + codesign -s "$2" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "${path}" + fi +} + +export -f recursive_sign + +sign_folder_content(){ + local folder="$1" + local identity="$2" + local entitlements="$3" + codesign -s "$identity" --force $entitlements --verbose=4 --deep --options=runtime --timestamp "${folder}" +} + +export -f sign_folder_content + +# This script is used to build the Mac OS X version of the IONOS client. +# Parse the command line arguments +while getopts "b:p:s:civt" opt; do + case ${opt} in + b )BASE_DIR=$OPTARG;; + p )PATH_TO_PKG=$OPTARG ;; + s )CODE_SIGN_IDENTITY=$OPTARG ;; + c )CLEAN_REBUILD=true ;; + i )PACKAGE_INSTALLER=true ;; + v )VERBOSE=true ;; + t )TEAM_PATCHING=true ;; + \? ) + echo "Usage: sign.sh [-b ] [-p ] [-s ] [-c clean-rebuild] [-i build-installer] [-v verbose]" + exit 1 + ;; + esac +done + +if [ "$VERBOSE" = true ]; then + set -xe +fi + +# Some variables +PKG_FULLNAME=$(basename "$PATH_TO_PKG") +PKG_FILENAME="${PKG_FULLNAME%.pkg}" +PRODUCT_NAME="IONOS HiDrive Next" +UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" + +IONOS_TEAM_IDENTIFIER="5TDLCVD243" +NC_TEAM_IDENTIFIER="NKUJUXUJ3B" +INSTALLER_CERT="Developer ID Installer: $CODE_SIGN_IDENTITY" +APPLICATION_CERT="Developer ID Application: $CODE_SIGN_IDENTITY" + +WORK_DIR="ex" +EXTRACTED_DIR="${BASE_DIR%/}/$WORK_DIR" + +PRODUCT_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Payload/Applications +SCRIPTS_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Scripts +INNER_PKG=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg +PAYLOAD_DIR=$EXTRACTED_DIR/$UNDERSCORE_PRODUCT_NAME.pkg/Payload +INSTALLER_PKG=$BASE_DIR/INSTALLER.pkg +APP_PATH=$PRODUCT_DIR/$PRODUCT_NAME.app + +echo "Expanding original package..." + +if [ -d "$EXTRACTED_DIR" ]; then + + echo "$EXTRACTED_DIR already exits." + + if [ "$CLEAN_REBUILD" = true ]; then + echo "Clean Rebuild Enabled - Deleting folder: $EXTRACTED_DIR" + rm -rf "$EXTRACTED_DIR" + pkgutil --expand-full "$PATH_TO_PKG" "$EXTRACTED_DIR" + fi +else + pkgutil --expand-full "$PATH_TO_PKG" "$EXTRACTED_DIR" +fi + +# --------------------------------------------------- +# Patch Team Identifier + +# check wether patching is needed. ".com" is important because otherwise the ID in the signature will be found + +if [[ -n "$TEAM_PATCHING" ]]; then + PLIST_MATCHES=$(find "$APP_PATH" -name "*.plist" -exec grep -q "$NC_TEAM_IDENTIFIER.com" {} \; -print | wc -l) + BIN_MATCHES=$(find "$APP_PATH" -type f -exec grep -q --binary-files=text "$NC_TEAM_IDENTIFIER.com" {} \; -print | wc -l) + + if [[ "$PLIST_MATCHES" -gt 0 || "$BIN_MATCHES" -gt 0 ]]; then + # Ensure both IDs are same lengt + if [[ ${#NC_TEAM_IDENTIFIER} -ne ${#IONOS_TEAM_IDENTIFIER} ]]; then + echo "NC_TEAM_IDENTIFIER and IONOS_TEAM_IDENTIFIER must be the same length for binary-safe patching." + open $BASE_DIR + exit 1 + fi + + if [[ "$PLIST_MATCHES" -gt 0 ]]; then + # --- Replace in .plist files (plain XML) --- + echo "Replacing Team Identifier in .plist files..." + find "$APP_PATH" -name "*.plist" -exec grep -q "$NC_TEAM_IDENTIFIER" {} \; -exec sed -i '' "s/$NC_TEAM_IDENTIFIER/$IONOS_TEAM_IDENTIFIER/g" {} \; + fi + + if [[ "$BIN_MATCHES" -gt 0 ]]; then + # Find and patch all binaries containing the old ID + find "$APP_PATH" -type f -exec grep -q --binary-files=text "$NC_TEAM_IDENTIFIER" {} \; -print | while read -r file; do + echo "Patching Team Identifier in $file" + perl -pi -e "s/$NC_TEAM_IDENTIFIER/$IONOS_TEAM_IDENTIFIER/g" "$file" + done + fi + fi +fi +# --------------------------------------------------- +# Sign the client +# CODE_SIGN_IDENTITY="Developer ID Application: IONOS SE (5TDLCVD243)" + +# Check if CODE_SIGN_IDENTITY is set, if not exit +if [ -z "$CODE_SIGN_IDENTITY" ]; then + echo "Code sign identity not set. Exiting." + open $BASE_DIR + exit 0 +fi + +echo "start signing the client" + +CLIENT_CONTENTS_DIR=$APP_PATH/Contents +CLIENT_FRAMEWORKS_DIR=$CLIENT_CONTENTS_DIR/Frameworks +CLIENT_RESOURCES_DIR=$CLIENT_CONTENTS_DIR/Resources +CLIENT_PLUGINS_DIR=$CLIENT_CONTENTS_DIR/PlugIns + +for script in $SCRIPTS_DIR/*; do + echo "→ Signing script: $script" + codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=4 --options=runtime --timestamp "$script" +done + +find "$CLIENT_FRAMEWORKS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" +find "$CLIENT_PLUGINS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" +find "$CLIENT_RESOURCES_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" +codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "$APP_PATH" + +# Sign the client ---- Still needed? +find "$CLIENT_CONTENTS_DIR/MacOS" -mindepth 1 -print0 | xargs -0 -I {} bash -c 'sign_folder_content "$@" "$CODE_SIGN_IDENTITY" "$entitlements" ' _ {} "$CODE_SIGN_IDENTITY" "--preserve-metadata=entitlements" + +# Validate that the key used for signing the binary matches the expected TeamIdentifier +# needed to pass the SocketApi through the sandbox for communication with virtual file system +if ! codesign -dv "$APP_PATH" 2>&1 | grep -q "TeamIdentifier=$IONOS_TEAM_IDENTIFIER"; then + echo "TeamIdentifier does not match. Exiting." + open $BASE_DIR + exit 0 +fi + +# --------------------------------------------------- +# Installer + +echo "start building the installer" + +# Build the installer, if enabled +if [ -z "$PACKAGE_INSTALLER" ]; then + echo "Installer packaging not enabled. Exiting." + open $BASE_DIR + exit 0 +fi + +echo "Renew BOM" +mkbom $PAYLOAD_DIR $INNER_PKG/Bom +echo "Reassembling the package..." +(cd $PAYLOAD_DIR && \ + find . | cpio -o --format odc | gzip -c) > $PAYLOAD_DIR.new + +rm -rf $PAYLOAD_DIR +mv $PAYLOAD_DIR.new $PAYLOAD_DIR + +(cd $EXTRACTED_DIR && \ + pkgutil --flatten $UNDERSCORE_PRODUCT_NAME.pkg $UNDERSCORE_PRODUCT_NAME.pkg.flat) + +rm -rf $INNER_PKG +mv $INNER_PKG.flat $INNER_PKG + +productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' \ + $INNER_PKG \ + $INNER_PKG.signed + +rm -rf $INNER_PKG +mv $INNER_PKG.signed $INNER_PKG + +(cd $BASE_DIR && productbuild \ + --distribution ex/Distribution \ + --resources ex/Resources \ + --package-path ex \ + $INSTALLER_PKG.unsigned) + +productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' $INSTALLER_PKG.unsigned "$BASE_DIR$PKG_FILENAME.resigned.pkg" + +# catch the output of the notarytool command +OUTPUT=$(xcrun notarytool submit --wait "$BASE_DIR$PKG_FILENAME.resigned.pkg"\ + --keychain-profile "IONOS SE HiDrive Next") + +SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) + +# Check if the notarization was successful +if [ $SUBMISSION_STATUS != "Accepted" ]; then + echo "Notarization failed. Exiting." + open $BASE_DIR + exit 1 +fi + +# staple +xcrun stapler staple "$BASE_DIR$PKG_FILENAME.resigned.pkg" +xcrun stapler validate "$BASE_DIR$PKG_FILENAME.resigned.pkg" + +open $BASE_DIR + diff --git a/admin/osx/ionos_macmaker/start.sh b/admin/osx/ionos_macmaker/start.sh new file mode 100755 index 0000000000000..7644c702c6fac --- /dev/null +++ b/admin/osx/ionos_macmaker/start.sh @@ -0,0 +1,190 @@ +#!/bin/bash + +recursive_sign(){ + local path="$1" + local extension="${path##*.}" + if [[ "$extension" == "dylib" || "$extension" == "framework" || "$extension" == "appex" ]]; then + echo "Signing directory: $path" + codesign -s "$2" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "${path}" + fi +} + +export -f recursive_sign + +sign_folder_content(){ + local folder="$1" + local identity="$2" + local entitlements="$3" + codesign -s "$identity" --force $entitlements --verbose=4 --deep --options=runtime --timestamp "${folder}" +} + +export -f sign_folder_content + +# This script is used to build the Mac OS X version of the IONOS client. +set -xe + +# Parse the command line arguments +while getopts "a:b:s:cifou" opt; do + case ${opt} in + a ) ARCHITECTURE=$OPTARG ;; + b )BUILD_DIR=$OPTARG;; + s )CODE_SIGN_IDENTITY=$OPTARG ;; + c )CLEAN_REBUILD=true ;; + i )PACKAGE_INSTALLER=true ;; + f )BUILD_FILEPROVIDER=true ;; + o )OSX_BUNDLE=true ;; + u )BUILD_UPDATER=true ;; + \? ) + echo "Usage: start.sh [-b ] [-s ] [-c] [-i]" + exit 1 + ;; + esac +done + +# Set the deployment target +export MACOSX_DEPLOYMENT_TARGET=10.15 + +# Some variables +PRODUCT_NAME="IONOS HiDrive Next" +REPO_ROOT_DIR="../../.." +CRAFT_DIR=~/Craft64 +PRODUCT_DIR=$BUILD_DIR/product +TEAM_IDENTIFIER="5TDLCVD243" + +# Check if the client is running and kill it +# This is necessary to avoid issues with replacement of the bundle file +if pgrep -x "$PRODUCT_NAME" >/dev/null; then + killall "$PRODUCT_NAME" +fi + +# Check if BUILD_DIR is set, so we don't accidentally delete the whole filesystem +if [ -z "$BUILD_DIR" ]; then + echo "Build dir not set. Add -b to the command." + exit 0 +fi + +# Check if ARCHITECTURE is set +if [ -z "$ARCHITECTURE" ]; then + echo "ARCHITECTURE not set. Add -a to the command." + exit 0 +fi + +# Check if BUILD_DIR exists. If not, create it. If so, clear it. +if [ ! -d $BUILD_DIR ]; then + mkdir -p $BUILD_DIR +else + if [ $CLEAN_REBUILD = true ]; then + rm -rf $BUILD_DIR/* + fi +fi + +# Check if Craft dir exists, if not exit +if [ ! -d $CRAFT_DIR ]; then + echo "Craft dir not found. Exiting." + exit 1 +fi + +# Load Sparkle +SPARKLE_DIR=$BUILD_DIR/sparkle +SPARKLE_DOWNLOAD_URI="https://github.com/sparkle-project/Sparkle/releases/download/1.27.3/Sparkle-1.27.3.tar.xz" + +if [ "$CLEAN_REBUILD" == "true" ] && [ "$BUILD_UPDATER" == "true" ]; then + mkdir -p $SPARKLE_DIR + wget $SPARKLE_DOWNLOAD_URI -O $SPARKLE_DIR/Sparkle.tar.xz + tar -xvf $SPARKLE_DIR/Sparkle.tar.xz -C $SPARKLE_DIR + + # Sign Sparkle + if [ -n "$CODE_SIGN_IDENTITY" ]; then + SPARKLE_FRAMEWORK_DIR=$SPARKLE_DIR/Sparkle.framework + find "$SPARKLE_FRAMEWORK_DIR/Resources/Autoupdate.app/Contents/MacOS" -mindepth 1 -print0 | xargs -0 -I {} bash -c 'sign_folder_content "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" + codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "$SPARKLE_FRAMEWORK_DIR/Sparkle" + fi +fi + +# Build the client +cmake -S $REPO_ROOT_DIR/ -B $BUILD_DIR \ + -DQT_TRANSLATIONS_DIR=$REPO_ROOT_DIR/translations \ + -DCMAKE_INSTALL_PREFIX=$PRODUCT_DIR \ + -DBUILD_TESTING=OFF \ + -DBUILD_UPDATER=$(if [ $BUILD_UPDATER == true ]; then echo "ON"; else echo "OFF"; fi) \ + -DMIRALL_VERSION_BUILD=`date +%Y%m%d` \ + -DMIRALL_VERSION_SUFFIX="stable" \ + -DBUILD_OWNCLOUD_OSX_BUNDLE=$(if [ $OSX_BUNDLE == true ]; then echo "ON"; else echo "OFF"; fi) \ + -DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURE \ + -DBUILD_FILE_PROVIDER_MODULE=$(if [ $BUILD_FILEPROVIDER == true ]; then echo "ON"; else echo "OFF"; fi) \ + -DCMAKE_PREFIX_PATH=$CRAFT_DIR \ + -DSPARKLE_LIBRARY=$SPARKLE_DIR/Sparkle.framework \ + -DSOCKETAPI_TEAM_IDENTIFIER_PREFIX="$TEAM_IDENTIFIER." \ + -DARG_SIDEBAR_ICONS=ON \ + +make install -C $BUILD_DIR -j4 + +# --------------------------------------------------- +# Sign the client +# CODE_SIGN_IDENTITY="Developer ID Application: IONOS SE (5TDLCVD243)" + +# Check if CODE_SIGN_IDENTITY is set, if not exit +if [ -z "$CODE_SIGN_IDENTITY" ]; then + echo "Code sign identity not set. Exiting." + open $PRODUCT_DIR + exit 0 +fi + +PRODUCT_PATH=$PRODUCT_DIR/$PRODUCT_NAME.app + +CLIENT_CONTENTS_DIR=$PRODUCT_PATH/Contents +CLIENT_FRAMEWORKS_DIR=$CLIENT_CONTENTS_DIR/Frameworks +CLIENT_PLUGINS_DIR=$CLIENT_CONTENTS_DIR/PlugIns +CLIENT_RESOURCES_DIR=$CLIENT_CONTENTS_DIR/Resources + +find "$CLIENT_FRAMEWORKS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" +find "$CLIENT_PLUGINS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" +find "$CLIENT_RESOURCES_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" + +codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "$PRODUCT_PATH" + + +# Sign the client +find "$CLIENT_CONTENTS_DIR/MacOS" -mindepth 1 -print0 | xargs -0 -I {} bash -c 'sign_folder_content "$@" "$CODE_SIGN_IDENTITY" "$entitlements" ' _ {} "$CODE_SIGN_IDENTITY" "--preserve-metadata=entitlements" + +# Validate that the key used for signing the binary matches the expected TeamIdentifier +# needed to pass the SocketApi through the sandbox for communication with virtual file system +if ! codesign -dv "$PRODUCT_PATH" 2>&1 | grep -q "TeamIdentifier=$TEAM_IDENTIFIER"; then + echo "TeamIdentifier does not match. Exiting." + exit 0 +fi + +# --------------------------------------------------- +# Installer + +# Build the installer, if enabled +if [ -z "$PACKAGE_INSTALLER" ]; then + echo "Installer packaging not enabled. Exiting." + open $PRODUCT_DIR + exit 0 +fi + +# package +$BUILD_DIR/admin/osx/create_mac.sh "$PRODUCT_DIR" "$BUILD_DIR" 'Developer ID Installer: IONOS SE (5TDLCVD243)' + +# notariaze +# Extract package filename from filesystem per .pkg extension +PACKAGE_FILENAME=$(ls $PRODUCT_DIR/*.pkg) + +# catch the output of the notarytool command +OUTPUT=$(xcrun notarytool submit --wait $PACKAGE_FILENAME\ + --keychain-profile "IONOS SE HiDrive Next") + +SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) + +# Check if the notarization was successful +if [ $SUBMISSION_STATUS != "Accepted" ]; then + echo "Notarization failed. Exiting." + exit 1 +fi + +# staple +xcrun stapler staple $PACKAGE_FILENAME +xcrun stapler validate $PACKAGE_FILENAME + +open $PRODUCT_DIR diff --git a/admin/osx/mac-crafter/Sources/Commands/Build.swift b/admin/osx/mac-crafter/Sources/Commands/Build.swift index 7a4865570daf1..447d7accac26a 100644 --- a/admin/osx/mac-crafter/Sources/Commands/Build.swift +++ b/admin/osx/mac-crafter/Sources/Commands/Build.swift @@ -49,8 +49,8 @@ struct Build: AsyncParsableCommand { var buildType = "RelWithDebInfo" @Option(name: [.long], help: "The application's branded name.") - var appName = "Nextcloud" - + var appName = "IONOS HiDrive Next" + @Option(name: [.long], help: "Sparkle download URL.") var sparkleDownloadUrl = "https://github.com/sparkle-project/Sparkle/releases/download/2.6.4/Sparkle-2.6.4.tar.xz" @@ -313,3 +313,87 @@ struct Build: AsyncParsableCommand { print(stopwatch.report()) } } + +struct Codesign: ParsableCommand { + static let configuration = CommandConfiguration(abstract: "Codesigning script for the client.") + + @Argument(help: "Path to the Nextcloud Desktop Client app bundle.") + var appBundlePath = "\(FileManager.default.currentDirectoryPath)/product/IONOS HiDrive Next.app" + + @Option(name: [.short, .long], help: "Code signing identity for desktop client and libs.") + var codeSignIdentity: String + + @Option(name: [.short, .long], help: "Entitlements to apply to the app bundle.") + var entitlementsPath: String? + + mutating func run() throws { + let absolutePath = appBundlePath.hasPrefix("/") + ? appBundlePath + : "\(FileManager.default.currentDirectoryPath)/\(appBundlePath)" + + try codesignClientAppBundle( + at: absolutePath, + withCodeSignIdentity: codeSignIdentity, + usingEntitlements: entitlementsPath + ) + } +} + +struct Package: ParsableCommand { + static let configuration = CommandConfiguration(abstract: "Packaging script for the client.") + + @Option(name: [.short, .long], help: "Architecture.") + var arch = "arm64" + + @Option(name: [.short, .long], help: "Path for build files to be written.") + var buildPath = "\(FileManager.default.currentDirectoryPath)/build" + + @Option(name: [.short, .long], help: "Path for the final product to be put.") + var productPath = "\(FileManager.default.currentDirectoryPath)/product" + + @Option(name: [.long], help: "Nextcloud Desktop Client craft blueprint name.") + var craftBlueprintName = "nextcloud-client" + + @Option(name: [.long], help: "The application's branded name.") + var appName = "IONOS HiDrive Next" + + @Option(name: [.long], help: "Apple ID, used for notarisation.") + var appleId: String? + + @Option(name: [.long], help: "Apple ID password, used for notarisation.") + var applePassword: String? + + @Option(name: [.long], help: "Apple Team ID, used for notarisation.") + var appleTeamId: String? + + @Option(name: [.long], help: "Apple package signing ID.") + var packageSigningId: String? + + @Option(name: [.long], help: "Sparkle package signing key.") + var sparklePackageSignKey: String? + + mutating func run() throws { + try packageAppBundle( + productPath: productPath, + buildPath: buildPath, + craftTarget: archToCraftTarget(arch), + craftBlueprintName: craftBlueprintName, + appName: appName, + packageSigningId: packageSigningId, + appleId: appleId, + applePassword: applePassword, + appleTeamId: appleTeamId, + sparklePackageSignKey: sparklePackageSignKey + ) + } +} + +struct MacCrafter: ParsableCommand { + static let configuration = CommandConfiguration( + abstract: "A tool to easily build a fully-functional Nextcloud Desktop Client for macOS.", + subcommands: [Build.self, Codesign.self, Package.self], + defaultSubcommand: Build.self + ) +} + +MacCrafter.main() diff --git a/admin/osx/macosx.entitlements.cmake b/admin/osx/macosx.entitlements.cmake index b32ff2749c36e..638c3264b762f 100644 --- a/admin/osx/macosx.entitlements.cmake +++ b/admin/osx/macosx.entitlements.cmake @@ -4,7 +4,7 @@ com.apple.security.application-groups - @SOCKETAPI_TEAM_IDENTIFIER_PREFIX@@APPLICATION_REV_DOMAIN@ + 5TDLCVD243.com.ionos.hidrivenext.desktopclient @DEBUG_ENTITLEMENTS@ diff --git a/admin/win/msi/CMakeLists.txt b/admin/win/msi/CMakeLists.txt index 8b1770629ae91..a73013877b084 100644 --- a/admin/win/msi/CMakeLists.txt +++ b/admin/win/msi/CMakeLists.txt @@ -29,9 +29,9 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/make-msi.bat EnsureACL.js Platform.wxi - Nextcloud.wxs + Ionos.wxs ${CMAKE_CURRENT_BINARY_DIR}/RegistryCleanup.vbs RegistryCleanupCustomAction.wxs - gui/banner.bmp - gui/dialog.bmp + gui/banner_2.bmp + gui/dialog_2.bmp DESTINATION msi/) diff --git a/admin/win/msi/Ionos.wxs b/admin/win/msi/Ionos.wxs new file mode 100644 index 0000000000000..aed4d0b74820e --- /dev/null +++ b/admin/win/msi/Ionos.wxs @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") + + + (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") + + + (SCHEDULE_REBOOT=1) OR NOT (UILevel=2) + + + + $(var.AppName) + $(var.AppIcon) + $(var.AppHelpLink) + $(var.AppInfoLink) + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 1 + + + WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed + + Removing previous installation + Trying to terminate application process of previous installation + Removing sync folders from Explorer's Navigation Pane + + + + + + + NOT (LAUNCH=0) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (NO_SHELL_EXTENSIONS=1) + + + + + (NO_START_MENU_SHORTCUTS=1) + + + + + (NO_DESKTOP_SHORTCUT=1) + + + + diff --git a/admin/win/msi/Nextcloud.wxs b/admin/win/msi/Nextcloud~~.wxs similarity index 100% rename from admin/win/msi/Nextcloud.wxs rename to admin/win/msi/Nextcloud~~.wxs diff --git a/admin/win/msi/OEM.wxi.in b/admin/win/msi/OEM.wxi.in index 85b8b71e1d510..c91a7c98e57af 100644 --- a/admin/win/msi/OEM.wxi.in +++ b/admin/win/msi/OEM.wxi.in @@ -39,7 +39,7 @@ - - + + diff --git a/admin/win/msi/gui/banner_2.bmp b/admin/win/msi/gui/banner_2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5270a99dea084175b16de1eb879f42cbc2d9bea2 GIT binary patch literal 85978 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 F{C`t&OI82? literal 0 HcmV?d00001 diff --git a/admin/win/msi/make-msi.bat.in b/admin/win/msi/make-msi.bat.in index 98731a15215ec..2347091ca9608 100644 --- a/admin/win/msi/make-msi.bat.in +++ b/admin/win/msi/make-msi.bat.in @@ -107,7 +107,7 @@ exit 0 set codepage=%~1 echo :: Compiling MSI project for codepage !codepage! - "%WIX%\bin\candle.exe" -dcodepage=!codepage! -dProductCode=%PRODUCTCODE% -dPlatform=%BuildArch% -arch %BuildArch% -dHarvestAppDir="%HarvestAppDir%" -ext WixUtilExtension NCMsiHelper.wxs WinShellExt.wxs collect.wxs Nextcloud.wxs RegistryCleanupCustomAction.wxs + "%WIX%\bin\candle.exe" -dcodepage=!codepage! -dProductCode=%PRODUCTCODE% -dPlatform=%BuildArch% -arch %BuildArch% -dHarvestAppDir="%HarvestAppDir%" -ext WixUtilExtension NCMsiHelper.wxs WinShellExt.wxs collect.wxs Ionos.wxs RegistryCleanupCustomAction.wxs if %ERRORLEVEL% neq 0 exit %ERRORLEVEL% echo/ @@ -121,7 +121,7 @@ exit 0 set culture=%%c echo :: Linking MSI project for !culture! - "%WIX%\bin\light.exe" -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:!culture!;en-us NCMsiHelper.wixobj WinShellExt.wixobj collect.wixobj Nextcloud.wixobj RegistryCleanupCustomAction.wixobj -out "!culture!_@MSI_INSTALLER_FILENAME@" + "%WIX%\bin\light.exe" -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:!culture!;en-us NCMsiHelper.wixobj WinShellExt.wixobj collect.wixobj Ionos.wixobj RegistryCleanupCustomAction.wixobj -out "!culture!_@MSI_INSTALLER_FILENAME@" if %ERRORLEVEL% neq 0 exit %ERRORLEVEL% if NOT "!culture!" == "en-us" ( diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in index 962240069c9a8..a8b2dfc697518 100644 --- a/cmake/modules/MacOSXBundleInfo.plist.in +++ b/cmake/modules/MacOSXBundleInfo.plist.in @@ -42,10 +42,8 @@ SUShowReleaseNotes - SUPublicDSAKeyFile - dsa_pub.pem SUPublicEDKey - c3RcfDWDayvsYSZW8FhZN1UOJhvPVN30zleb4zOqbtU= + FQ8Dq6AiSDDv4XpnyJ3b6mQBFYLPKgj9ziEg/+VNGHg= UTExportedTypeDeclarations diff --git a/config.h.in b/config.h.in index 192790319534f..bdb0e25df2177 100644 --- a/config.h.in +++ b/config.h.in @@ -11,6 +11,7 @@ #cmakedefine THEME_INCLUDE @THEME_INCLUDE@ #cmakedefine APPLICATION_NAME "@APPLICATION_NAME@" +#cmakedefine WHITELABEL_BRAND "@WHITELABEL_BRAND@" #cmakedefine APPLICATION_VENDOR "@APPLICATION_VENDOR@" #cmakedefine APPLICATION_DOMAIN "@APPLICATION_DOMAIN@" #cmakedefine APPLICATION_REV_DOMAIN "@APPLICATION_REV_DOMAIN@" diff --git a/doc/ADR/20241007_TrackingWithGA4.md b/doc/ADR/20241007_TrackingWithGA4.md new file mode 100644 index 0000000000000..8422656e3ddc1 --- /dev/null +++ b/doc/ADR/20241007_TrackingWithGA4.md @@ -0,0 +1,32 @@ +# Use Tracking with Google Analytics 4 + +## Status + +proposed + +## Context + +The web front end already tracks user interactions with GA4. To track interactions in the client software as well, an implementation with GA should also be done here. + +## Decision + +Since the use of GA4 in desktop software and the use of the pure API are not natively supported, a reverse-engineered solution had to be used (see https://ga4mp.dev/#/), similar to the use of the GA4 Measurement Protocol, which, however, does not provide a complete replacement. + +This approach implements GA4 tracking based on HTTP POST requests. + +## Implementation Details + +The implementation consists of three classes: + +* GAnalyticsWorker +* GAnalytics +* DataCollectionWrapper + +The DataCollectionWrapper is the outermost layer and is used by the application to track actions and events. The DataCollectionWrapper provides enums for various tracking pages (areas of the application, such as GeneralSettings or UserSettings) and tracking elements (specific buttons, checkboxes, or similar items). +GAnalytics acts as an intermediary between the outer layer (DataCollectionWrapper) and the communication logic. Various variables are also set here. When a tracking call is made, it is forwarded to the GAnalyticsWorker, where it is queued. + +The GAnalyticsWorker contains a queue, a message loop, and a QNetworkAccessManager. At fixed intervals, the queue is checked for tracking calls, which are then sent to the GA4 interface. If multiple calls are present, the connection is kept alive until all tracking calls have been sent. + +## Consequences + +This approach allows client-side tracking using GA4, bridging the gap between web and desktop tracking. The modular design simplifies maintenance by separating tracking logic from communication handling. Usage is straightforward; the application simply calls the DataCollectionWrapper at points where tracking should occur, ensuring that actions and events are recorded seamlessly. However, relying on a reverse-engineered solution introduces risks of future incompatibility with GA4 updates. Managing a queue and network connection adds complexity, and there might be latency when batching tracking calls. Overall, the solution balances functionality with maintainability but carries some technical risks. diff --git a/doc/ADR/20250212_UseCostomizationService.md b/doc/ADR/20250212_UseCostomizationService.md new file mode 100644 index 0000000000000..2131d2188ea8f --- /dev/null +++ b/doc/ADR/20250212_UseCostomizationService.md @@ -0,0 +1,69 @@ +# Use Customization Service + +## Status + +accepted + +## Context + +Nextcloud (NC) offers a customization service. The service is a Nextcloud white-labeling offering. It allows customers and their forks to be redesigned according to their own specifications. There are two levels. + +### Brander + +Here, the icons, names, and technical aspects are being adjusted to release a simply redesigned, color-enhanced Nextcloud. + +### Actual Customization Service + +This will integrate deeper changes into the branded client. This could be anything, in principle. + +For this to work we need to create Pull-Requests against the branches of the nextcloud repo. These pull requests can not depend on the same code line. + +More information can be read [here](https://portal.nextcloud.com/article/Branding/Customization-Service) + +### Workflow on the Repo + +A PR always has a source branch and a target branch. The target branch must be `master` in our case. Source branches can follow our established workflow. However, there are some conditions: + +- Concurrent work on different features must be possible. +- Local builds must be possible for testing purposes. +- A nightly/onPush build might be desirable. +- It must be ensured that everyone has an up-to-date status with all PRs. + +There are two possible Solutions: + +1. We use one Pull-Request containing all changes. +2. We use multiple Pull requests containing changes grouped by files. + +## Decision + +We will use only one PR containing all our changes. + +At this point in time, it would be too much work to split all Changes into separate branches/PRs. + +## Implementation Details + +### Branching + +- We use the master branch only for pulling the updated nc/master branch. +- We have a separate develop branch to develop changes. +- We create a PR to nc/masetr from develop. + +## Consequences + +### Positive + +- We can use our existing git-workflow +- We have a simple repo-structure with only 2 really needed branches +- It is easy to build locally, because all changes are on one branch +- Less Branches to backport +- We do not need to sort every change to a separate PR + +### Negative + +- Merge conflicts can be complex +- The PR will contain all the changes, this could be overwhelming to check + +### Further Thoughts + +- We need to see how this works in practice +- This is not final \ No newline at end of file diff --git a/doc/ADR/_template.md b/doc/ADR/_template.md new file mode 100644 index 0000000000000..0f2aef85df5b5 --- /dev/null +++ b/doc/ADR/_template.md @@ -0,0 +1,30 @@ +# ADR template by Michael Nygard + +This is the template in [Documenting architecture decisions - Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). +You can use [adr-tools](https://github.com/npryce/adr-tools) for managing the ADR files. + +We extended this Template with ```Implementation Details``` (optional) + +In each ADR file, write these sections: + +# Title + +## Status + +What is the status, such as proposed, accepted, rejected, deprecated, superseded, etc.? + +## Context + +What is the issue that we're seeing that is motivating this decision or change? + +## Decision + +What is the change that we're proposing and/or doing? + +## Implementation Details + +(Optional) How was this Decision implemented. I.e. Uml Diagrams, Code etc. + +## Consequences + +What becomes easier or more difficult to do because of this change? diff --git a/find_qml_imports.py b/find_qml_imports.py new file mode 100644 index 0000000000000..0c7dbce5a48a7 --- /dev/null +++ b/find_qml_imports.py @@ -0,0 +1,29 @@ +import os +import sys +import re + +def find_imports_in_qml(root_dir, import_prefix): + pattern = re.compile(r'^\s*import\s+' + re.escape(import_prefix) + r'.*$', re.MULTILINE) + matches = [] + for subdir, _, files in os.walk(root_dir): + for file in files: + if file.endswith('.qml'): + file_path = os.path.join(subdir, file) + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + for match in pattern.finditer(content): + matches.append((file_path, match.group().strip())) + except Exception: + pass # Ignore files that can't be processed + print(f"Found {len(matches)} matching import lines:") + for file_path, line in matches: + print(f"{file_path}: {line}") + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: python find_qml_imports.py ") + sys.exit(1) + import_prefix = sys.argv[1] + root_dir = sys.argv[2] + find_imports_in_qml(root_dir, import_prefix) diff --git a/fonts/OpenSans-Bold.ttf b/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..efdd5e84a0397ecada7b9cfde51db87db08766bd GIT binary patch literal 104120 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

n{#NV($fZ=b2Ttd7 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 -Ui0>vvum!cQP#SwwX988o3plLZOz)* zYwumVY3=c~zpk@e=f5s)UDmp?byL>8vEH(N{Q8>pCm!hYz>WtE4^}_;)ERI%Key3qW7Nhz8wYMI*;u`?W#fvCn>Oy>_|nEx8!vABX_H}7z@~&v zIh#s1P2MzjQ|qR!o1WbC>SngtdvoaKUYiGO9=^G1^UTe6Z+>X=!z*yw!X0S-L0Q({d()q+sHQaw!m$@whh=ed|TDFncJ3bdtlqHZO?3bb=$k!{<-b) zwqLdzxBG05+@8F>a{K!2Z$9Gm$oNOrKJwZQryb*VtljbKj!z%8d$jP;IgcLO8MU)% z=Q}$;*m?6Y`LRilHSQw2%)5Md&E0kHu8q6?w(H2QQ@bwg`f)eg?YTRAciQfOyGQPx zw7YTllHK?1-m?3#-OuiRY4;nuKi>Vh+V2wTclNnoCtkb5rSC7q9wQ3;y`AH;gNGl* zy!+7~=Jve~tKqYbLi5ddEc6d2$x#tvL5J~cFlmwABFhXhBu-vO%1xw3q#rB9H^p$Tu#ODIH4j&@c3BZt<0{0Ju7x=~J^vQZ<+e*Y zO^l{EGTDIrIfhDd*x*Oz7_O1S@&a7dcs@bqU`BNqBdHv=r=!j=9P!J@Vbe--*ti7O z1f(}=VIkhtkqPon5^Xe-Ck?ICM`vl(HsoCBkBgF9}@XXy~E z8;*j`Xonm~#vvRhA0gu;KN5|+jD{StgUuulu$dhT<&)%+g+wnhzBn?AG%)P!4~jh9m3_fE(!W;eBk%DTwKmLf53~b z7w3iGH4jm4!TatZFFTiozX~Cvoaem!hD7AcX~c2;>+mW5p3Ae4slN!htaG_SND#`P z^N+mDp!EQRR}h*IKE-(eI>cz<4#P2$1NaZ{I)e8LMLmJ6a(U(T1!-;Jq^{49A0E%x zF32kClgPV!*artZY;oW*rzz)a*UI48w?$n;TPH6Bz4K5nxy%4J&U>CW=PBo(Xuq^}4tS2_?+m{p9(6~48Eq|S#mi^B z2)d(iF!+ZHU+6f+V znYl*nM7m?d$lr^4bcOgK%{-Al6LG~Pn#07}?>PCzj#I{ixc`bw2MjZh7vJ#rh~s56 z&IG=^%u^scTpmO_LNd9`niS${C#z{hKadIe=Vj&XQUF4YUdBMs9I(*-6GJ?iVBCOj zaEWhzC9a}h(CBERm8ip@l>snqw1QWp!|<9l-EIdtYOxL|M3BqMwodGI!aw*$xhA@MhRpDGyqbg?_L7+r_FIW( z9=8sC1P}L-a>IS#FD}$U(f+~v@dWKEM*kO$3&zMvDXutNeY7wJGpPYjVJQXFSg&!6x1|@cOB>+Xl#m%)iw_ht*_`eKh2{ zO~p;*7fiR^PHur`$L;XJxE($cx6>1*DdFSBgC5Qn^7e_hGrX>YPlpYIk>@kSmA4h5pGG}5oaC%nBAZH|pUXHouWv`t+0c^ee~+G31@@{BW0#8piEjK88@ZiUPbCdGDn zXm1xl_R3M_?Z9s`_)(1VxS~Fs$G9jSb+Z}#T?v{&>)M?jw?21#cJ9PC?9AEj;d2im~`SUP)=y~W;U z=h#mYOq5FYk_${n-6yq5tE7$6Ch1Y>Z_+;LJ?R7KW7$a_hBei3@*VPW8S_8+75P>9 zJ^7TuBZvkK2wE2OR?s^^KL-62^zY!I7DtPhCCCzLiLfMCk}bV0eJy#G8J2mLMV4Kb z$1P8U7+`$Q8(QShkcg08ArnGbs4>(f)E#DGgF<6M3qvbIYr^08Lsqc1fYl6M%0UDz z8hMwzk2BNBbRtZ+uBSWbQz*yp%vY4-O_bxGCp?%G9K_;b@v&G$Ig%`yS~+H+ z9FL(K`@5B6tX2-UF6F33IS9&e6YC_Gq@f*`I$mQZI$p!N$!jdGF{xu>$9PiPk=On{@o7KR{vNS!f3N*y$G_W8DoYjAoA%9$fBPov zdNeDJ?RAPh_J!Ch|5WTRmtXe1H2?BKLM|`7Lm~i?c7zBIKg)MaPTwpEq1kF8p!f=L^R#gkK1~;D5pIg8K!R3)1D zg&=H)*d_fV$DbdPu8T3QJ|<*@UctW5-mKmz9=`95H-Y@z5bfg9jB3EXdEx&B@Lh z(7#{bKD{$D($i8C6XJWt#YRO&gojx}LxO!h-C(m0#_r+W)M$`l*^BQnitlmIJY`wyrwtN+wpun5(VT zRpZLrq$+&dD&@Dfu4r?MX^XbzwMEar>(6)F)x%zA&69W#CtoWFUHde{sylQ*nRmR^e zw!P6mue5@3y>aE zU2kbKM6?6<|1=d~1HC_J4MrFLJbi(1kIo zAe5H3W#xflSyh^lxlBUcN<=2;#i%-HKIAKyas^IN&3{kN=K3|1~#RZ-U)`C3PmKTnc7E*wa)1U#LLjWZQ_fYj!l z3yF-#Z!NE$+!kCJP>nh|*-{=5(w0>LX{fN4*Hmy31vR5D05$x91dyxJ@}d%J(TFkS zkbsa1@rJ+P;NYnxrTou!-wNEJxviU>;qZmc zj z0}A;&{t8VRUfV&Ib9tOfcVAvXEalc3YlXGW(v~&6oRf%?M{q&a~0_hM2L*Cpj4Q2SXSR;*&xV>vs2?1 zi?|B@cYtt;W;qzL?6T~$%y2^r_I!f1{}awz!A}h>EZ+SSpjN_ z#YmA=p<-NyK+C#pO!?FBsz(FFFEYyEe-IbnI@ApGP5G8;E+}_a)U{St@XAKK!5aL> z(AL@?Y_j$TB1UtYgS957&C!~};|K8g0cyOF$D6DR2Ez)l?6#1!NZ4m2M-%s9b7!5IyfT5wJbb2 ztjy1&BiJN&1RL>w=#Ze`>LGMUfm5(YvU?deE|tm2_*{YmpaIfTl4L9@I8ku6K(Z!> zmi0&uDDzJCDuci6GS_66vZq{5xv&HmN|Q-hBUwbABHzQ1JfVxdVaWL~U3;LkBqpZl zu&Dzbi2d-fZS>x@@Dl!;HDXMg@!mF4HfC)30ZQ+$ShjjK$q6iKODZXEvjkQYwN>NB zHSmBp$*E|@;%;*c|7)JmJd20ohu?@l-wDts_+akBEfKdE4#5KIEq^$ zQjx+5yT>palA(GbO}Ny1O5E|J-ecTB?$Pcg(u=Ip?q$-09MSF#urU0wc5lS)=kK(8 z6WN80P%0cd5=EcT?j1=6{fBmMhThYx-8htI2MwN`zCzNe>uE* z+%=$l!w^@4I}0g6d;@95uI@&BQw@l{1k^tG&BohY(nn8iOB<)B{xckl{%#atsW38f)2Ap8L9zwI-Z-zRKz!u$@sms%)C6Df;`ncgcAiNn()hM+zcvk zyi_XJ3mQxkF`U}!^Ays86g+J;ekbX4YX)ty5zEu_JUE=cqA};wEKs>Oc9O-DIpSY0 z=D#=hT0@Un_|S?TRZF$aKOn2?tzv2hjk@xsOKKoNzZ)-aNkaT zsJj8E*MTI61fx75Boup_!$>%ZAd%3rM8n@;4EB@8psJPoB9v$-N;8ZMCnLy6l&X}JfpVj_5JiCgP@;=xTtw(L*64C&TN+X#G3E(xi1rj_PlKTyri*{)q+Vq9wPUyKF zMb~o|^hry|HMD~8gN(hwyi0ecE~K3()D=c~+^GlYK)dWoVW*f<>O*~T&e$LJiF@Fr zN)QdE78*iB$qn*vYUML*8Uc+|6pe;SpBNfT<7h7$PZQw6A_=|S8JYqkPib(4m;o=r zz2T9qFYQPB(*ZP#X44$Xg!@mr_yP3I&FZ7 z_Zf61d4V?3W;%1*^DeVx8R-=uHR(^a}lkUZvOQxA2YkJv47W;<(UH^k@1D*ND&? z^xyP%`Uky9+o=NWBEk5T!O%4fU@#*yVRUNG9GD~HqeN%s!d#gfb7vmRlX)?3<^wIB zAM=M!vIh%fK`aG*^&=Z$8-6p{gkjZg zvYu=ukCQdzLGloJp7n>j`Ye{sa#$|QWBIIr4P=FE5F5;j*bp|96|-S%I2*x6vJzIx z%GfA2nw7H(HinI5r2i?&WHkD0d(^&(9Qv)`WHL+$k zi?y)XaLhE9&13V~0(K``$nIi`*kZPXEoFDJd)P9zoUOqA_&_5u5l{eykPK4xd2d;Nrc%FeRSpiTZ4JI^k#i|liDiCt!2urJwH z>}z&~eZ#J@YwTP09s8dBz=*Vc`;FaT|7O3lKiEyy&J@-GJuZcvbO~Miw=`bzzz{urHS zN!e14lq=;)`Ox(ZlnSLm(qQcV9wH5uilt%FaA|}zQYw*3r7~%hG+HW`Dx@*eSZSOz zUYa1?AyrCM(nM*JR4vs=lcieh8n2h8NK>V0(sZdoYLsS3Go>b}S(+uaNVBCm(p+ht zG+$aE-HF}hcS(z+#nKXKsdTq=kF-o$F0GL66?*xV(9Exv?w8g`Yo&G4dg%e_LFplB zgY>Y_*Kd}#NL!_C*q#0e#)qe%FF#4%lXgIlzZ2^azjIxtv`2az+Doq2-!DBO{atQo znKsQZs8`jrS*DhT`hb#e8s~cy@lkj8An^XmG#%eXl1MI3%5l> zCssAdb@*`@G^>7EwVoD<{@3vP3!Vt9HP=~ znh4|}oIca=V=Pv`Z&1H4?(&Jbq057@SpB|1rF%owjK=0!O^q|^YNY&zTB)X?)-+7x zZllKCVJdeUMc_27uBD;2s;OoAw5pa_PK{lkj3ZSXnp7M{cFES<)aAiAQpKT34NBCn znnmDP(n&hU=FWR_X%_(ISzR8Cr7D$7`3ePMc^<-mnDb! z`mJGFV?%ATLpH}nO;)AfnzHjnl&PvlgpR|Sr&TrAsrQYY_vVr=1Tv#F(W{POR%1hB zvy-jO5Kj)-(`M9FiCg=shQ?Vn(`xFg%=t5#>w$`hw#%QTzIPggx-Fu(*qet=Trp>A{X|Uw^cp>qZvv?6@4$LrB6mOa+o{DHrE^BCEbL&lwY8j=bx<+F&FJPiU z1kx;&Q_EkPfih0Q1#}FJoB?JI)`pf#H#E%}OqF}uOYz_!J{Gt3Rg>%M6B81Wl5KaX ziTYiVe%JXn#Yy`jHIUm`9d1UH&Wa@cj>Um`9d1UH&Wa@dOcS5n{ftsSpP-24ZZDN8g51g0P-`es> zOt9sVm|)8zF~OEcVuGz4i3xfhiFzKLIH%g;5;8N4qs73{I7baei|)ZVM+EkxZOwuG z9NV3-LQObN1Oh`;_=F6nmWFC=ELuHrn$ye{bPaqo+0xJ616bNY0|u=`f1bZ zCyD;u4!!HNn&##yu40hTr9X7+a_`pVzKJ*PHRky>O^vn!nI|{4G<7}z5!-`fbNyV~ zy_3L7e-h}~p3DvP4f;nMQyk_`&_aPZo|ClaWGzh5!c;9x)53Hu%+SJ2EzH)!93B?r z7ZixFpdeQZ^LUt$SRnFENXilM3CVdPe}p1`gd(5B{N#L|9-)Afn6KiCP^3>RNKxS> z6(rkNS2fpHHO{RU-8pz6N`NrMFs!bzslm`Fe#^vf3;z|EB&!e;l2wQZljXX`#;KfT z6Kke5&Jn3nv{WexYJMrHD*h>{+H;!roTio|B~2|yN}9kTAtg=F5uuZ`KN37r)&AAYx$>Z`KN37 zr)&AAYx$>Z`KN37r)&AAYx$>Z`DbYPXK49nX!&Po`DbYPXK49nX!&Po`DSSOW@!0l zX!&Mn`DSSOW@!0lX!&Mp`DAMOU=YXUDZXTK+j&{yAFyIa>ZXTK+j&{yAFyIa>Z&eN4&G^3T!o&na*e zbj?lR<0zHJx&N!I>-UKwh{C&ja<^PiP=dy2p`C>xvv4CCZOH7b!C){(8;vH2Kuk_B z;ncMzi(#lTju7?9pn(mA&^5L zhd>U290EB6atP!Q$RUtJU>^i>2$9&;5W8eQ@VU|BbE8+1LrD%LIoR{W^-6Lm$)O~N zk{n8MD9NEDhm!qJavUP@Bl{q-4duRCGS^GVox851Pch-Jvq|?`+FRcB(u=e{x@r!6Wh1K)0dLFhu zul(REKUn1ltNdV985IVbS2QXRof1iYTLFv+u@pQws2`wmT+{DVxJt1Nm0M0;oB_d>o-@<>p;7n z2@|#!DhE8wC)kxGyHmQ@^**k9t;d)M&*bw1nMVSAE}KJnKD&wXR_jrcB1`aA>!zsN zMJ^m)(4;@+Z=^Spw7)#qzq-?wjaixfG5Znen!UkSDGPzeT8*%?Uj*Xb_Veg>=O8n zEb$NQU$Q$&t!ec3Y2^Q3B9H$Xd3VXL|3>cr4|3J($TA}XET3sW{^=rWr^xcWRUX16 z$8Wp!K;jsIxZo>KclM|6REK-;N7m{IvCa7qbKSd523t?yygH0$|U*_O`X@4B|QZYYZ%o jW3R@k>^4|0Bum*XwTrD6XvYGSkRjGXxri%L)JXmTuNJ?{ literal 0 HcmV?d00001 diff --git a/fonts/OpenSans-BoldItalic.ttf b/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9bf9b4e97b6576c8cc3d4527073731fd9cc57493 GIT binary patch literal 92628 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

4J;+I{;ffTJG!iGMcG*?Vwl&%p(3b?*`L@59ZU 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

9nNjw4~{@r0I~;bjWEs}nhrT# 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

!GC&_!#ZtN*Mh&_?3T(2tal^%sA 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 tF{6TqYG~a+&=^Ld*=$fFp9q2yx(>MC>Dm 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�?uC|3&0+ngjt%GBCAB^%e& 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

_T_kl)Xoan=RX{3lY#VQTZ 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 literal 0 HcmV?d00001 diff --git a/fonts/OpenSans-SemiBold.ttf b/fonts/OpenSans-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..54e7059cf36359cb5a3860085714a95306af0dea GIT binary patch literal 100820 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 DEZ%x^ literal 0 HcmV?d00001 diff --git a/fonts/OpenSans-SemiBoldItalic.ttf b/fonts/OpenSans-SemiBoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..aebcf1421226d045b8043d26433d780fa365b7de GIT binary patch literal 92180 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 OmxABnc!Ht?`Tqc{BF`NF literal 0 HcmV?d00001 diff --git a/ionos-theme.qrc b/ionos-theme.qrc new file mode 100644 index 0000000000000..2377ef3b72aa5 --- /dev/null +++ b/ionos-theme.qrc @@ -0,0 +1,88 @@ + + + theme/colored/ionos-data-protection-logo.png + theme/colored/strato-data-protection-logo.png + theme/ses/ses-IONOS-logo.svg + theme/colored/IONOS_logo_w_suffix_frontend.png + theme/colored/IONOS_logo_w_suffix_frontend@2x.png + theme/colored/IONOS_logo_w_suffix_frontend.svg + fonts/OpenSans-SemiBold.ttf + fonts/OpenSans-Regular.ttf + theme/ses/ses-accountDelete.svg + theme/ses/ses-activityDelete.svg + theme/ses/ses-accountLogout.svg + theme/ses/ses-accountPause.svg + theme/ses/ses-accountQuit.svg + theme/ses/ses-accountResume.svg + theme/ses/ses-activity.svg + theme/ses/ses-chevron.svg + theme/ses/ses-clipboard.svg + theme/ses/ses-lightClipboard.svg + theme/ses/ses-darkPlus.svg + theme/ses/ses-lightPlus.svg + theme/ses/ses-addlivebackup.svg + theme/ses/ses-file.svg + theme/ses/ses-folderIcon.svg + theme/ses/ses-folderIconBright.svg + theme/ses/ses-syncstate-success.svg + theme/ses/ses-syncstate-syncing.svg + theme/ses/ses-syncstate-paused.svg + theme/ses/ses-syncstate-warning.svg + theme/ses/ses-syncstate-error.svg + theme/ses/ses-state-offline.svg + theme/ses/ses-snackbar-success.svg + theme/ses/ses-snackbar-warning.svg + theme/ses/ses-snackbar-error.svg + theme/ses/ses-more.svg + theme/ses/ses-more-hover.svg + theme/ses/ses-questionmark.svg + theme/ses/ses-refresh.svg + theme/ses/ses-settings.svg + theme/ses/ses-settingsAvatar.svg + theme/ses/ses-settingsAvatarRound.svg + theme/ses/ses-info.svg + theme/ses/ses-syncArrows.svg + theme/ses/ses-external.svg + theme/ses/ses-website.svg + theme/ses/strato/ses-STRATO-logo.svg + theme/colored/STRATO_logo_w_suffix_frontend.png + theme/colored/STRATO_logo_w_suffix_frontend@2x.png + theme/colored/STRATO_logo_w_suffix_frontend.svg + theme/ses/strato/ses-accountDelete.svg + theme/ses/strato/ses-activityDelete.svg + theme/ses/strato/ses-accountLogout.svg + theme/ses/strato/ses-accountPause.svg + theme/ses/strato/ses-accountQuit.svg + theme/ses/strato/ses-accountResume.svg + theme/ses/strato/ses-activity.svg + theme/ses/strato/ses-chevron.svg + theme/ses/strato/ses-clipboard.svg + theme/ses/strato/ses-lightClipboard.svg + theme/ses/strato/ses-darkPlus.svg + theme/ses/strato/ses-lightPlus.svg + theme/ses/strato/ses-addlivebackup.svg + theme/ses/strato/ses-file.svg + theme/ses/strato/ses-folderIcon.svg + theme/ses/strato/ses-folderIconBright.svg + theme/ses/strato/ses-syncstate-success.svg + theme/ses/strato/ses-syncstate-syncing.svg + theme/ses/strato/ses-syncstate-paused.svg + theme/ses/strato/ses-syncstate-warning.svg + theme/ses/strato/ses-syncstate-error.svg + theme/ses/strato/ses-state-offline.svg + theme/ses/strato/ses-snackbar-success.svg + theme/ses/strato/ses-snackbar-warning.svg + theme/ses/strato/ses-snackbar-error.svg + theme/ses/strato/ses-more.svg + theme/ses/strato/ses-more-hover.svg + theme/ses/strato/ses-questionmark.svg + theme/ses/strato/ses-refresh.svg + theme/ses/strato/ses-settings.svg + theme/ses/strato/ses-settingsAvatar.svg + theme/ses/strato/ses-settingsAvatarRound.svg + theme/ses/strato/ses-info.svg + theme/ses/strato/ses-syncArrows.svg + theme/ses/strato/ses-external.svg + theme/ses/strato/ses-website.svg + + diff --git a/ionos-theme.qrc.in b/ionos-theme.qrc.in new file mode 100644 index 0000000000000..2377ef3b72aa5 --- /dev/null +++ b/ionos-theme.qrc.in @@ -0,0 +1,88 @@ + + + theme/colored/ionos-data-protection-logo.png + theme/colored/strato-data-protection-logo.png + theme/ses/ses-IONOS-logo.svg + theme/colored/IONOS_logo_w_suffix_frontend.png + theme/colored/IONOS_logo_w_suffix_frontend@2x.png + theme/colored/IONOS_logo_w_suffix_frontend.svg + fonts/OpenSans-SemiBold.ttf + fonts/OpenSans-Regular.ttf + theme/ses/ses-accountDelete.svg + theme/ses/ses-activityDelete.svg + theme/ses/ses-accountLogout.svg + theme/ses/ses-accountPause.svg + theme/ses/ses-accountQuit.svg + theme/ses/ses-accountResume.svg + theme/ses/ses-activity.svg + theme/ses/ses-chevron.svg + theme/ses/ses-clipboard.svg + theme/ses/ses-lightClipboard.svg + theme/ses/ses-darkPlus.svg + theme/ses/ses-lightPlus.svg + theme/ses/ses-addlivebackup.svg + theme/ses/ses-file.svg + theme/ses/ses-folderIcon.svg + theme/ses/ses-folderIconBright.svg + theme/ses/ses-syncstate-success.svg + theme/ses/ses-syncstate-syncing.svg + theme/ses/ses-syncstate-paused.svg + theme/ses/ses-syncstate-warning.svg + theme/ses/ses-syncstate-error.svg + theme/ses/ses-state-offline.svg + theme/ses/ses-snackbar-success.svg + theme/ses/ses-snackbar-warning.svg + theme/ses/ses-snackbar-error.svg + theme/ses/ses-more.svg + theme/ses/ses-more-hover.svg + theme/ses/ses-questionmark.svg + theme/ses/ses-refresh.svg + theme/ses/ses-settings.svg + theme/ses/ses-settingsAvatar.svg + theme/ses/ses-settingsAvatarRound.svg + theme/ses/ses-info.svg + theme/ses/ses-syncArrows.svg + theme/ses/ses-external.svg + theme/ses/ses-website.svg + theme/ses/strato/ses-STRATO-logo.svg + theme/colored/STRATO_logo_w_suffix_frontend.png + theme/colored/STRATO_logo_w_suffix_frontend@2x.png + theme/colored/STRATO_logo_w_suffix_frontend.svg + theme/ses/strato/ses-accountDelete.svg + theme/ses/strato/ses-activityDelete.svg + theme/ses/strato/ses-accountLogout.svg + theme/ses/strato/ses-accountPause.svg + theme/ses/strato/ses-accountQuit.svg + theme/ses/strato/ses-accountResume.svg + theme/ses/strato/ses-activity.svg + theme/ses/strato/ses-chevron.svg + theme/ses/strato/ses-clipboard.svg + theme/ses/strato/ses-lightClipboard.svg + theme/ses/strato/ses-darkPlus.svg + theme/ses/strato/ses-lightPlus.svg + theme/ses/strato/ses-addlivebackup.svg + theme/ses/strato/ses-file.svg + theme/ses/strato/ses-folderIcon.svg + theme/ses/strato/ses-folderIconBright.svg + theme/ses/strato/ses-syncstate-success.svg + theme/ses/strato/ses-syncstate-syncing.svg + theme/ses/strato/ses-syncstate-paused.svg + theme/ses/strato/ses-syncstate-warning.svg + theme/ses/strato/ses-syncstate-error.svg + theme/ses/strato/ses-state-offline.svg + theme/ses/strato/ses-snackbar-success.svg + theme/ses/strato/ses-snackbar-warning.svg + theme/ses/strato/ses-snackbar-error.svg + theme/ses/strato/ses-more.svg + theme/ses/strato/ses-more-hover.svg + theme/ses/strato/ses-questionmark.svg + theme/ses/strato/ses-refresh.svg + theme/ses/strato/ses-settings.svg + theme/ses/strato/ses-settingsAvatar.svg + theme/ses/strato/ses-settingsAvatarRound.svg + theme/ses/strato/ses-info.svg + theme/ses/strato/ses-syncArrows.svg + theme/ses/strato/ses-external.svg + theme/ses/strato/ses-website.svg + + diff --git a/ionos.qrc b/ionos.qrc new file mode 100644 index 0000000000000..0cc12434b4814 --- /dev/null +++ b/ionos.qrc @@ -0,0 +1,12 @@ + + + src/gui/tray/HeaderLogo.qml + src/gui/SesComponents/SesErrorBox.qml + src/gui/SesComponents/SesTrayHeader.qml + src/gui/tray/TrayWindowAccountMenu.qml + src/gui/tray/PrimaryPillButton.qml + src/gui/tray/SecondaryPillButton.qml + src/gui/tray/IconButton.qml + src/gui/tray/AccountMenuItem.qml + + diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements index eab912dc49600..8102f4fb7df19 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements @@ -6,7 +6,7 @@ com.apple.security.application-groups - $(OC_SOCKETAPI_TEAM_IDENTIFIER_PREFIX)$(OC_APPLICATION_REV_DOMAIN) + 5TDLCVD243.com.ionos.hidrivenext.desktopclient com.apple.security.network.client diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift index 405b6e7c7adaf..835556e582f95 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift @@ -94,7 +94,7 @@ extension FileProviderExtension: NSFileProviderServicing, ChangeNotificationInte userId: String, serverUrl: String, password: String, - userAgent: String = "Nextcloud-macOS/FileProviderExt", + userAgent: String = "IONOS HiDrive Next/FileProviderExt", completionHandler: ((NSError?) -> Void)? = nil ) { let account = Account(user: user, id: userId, serverUrl: serverUrl, password: password) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift index b9fb2ed273a2c..a8e6bfbff1a33 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift @@ -11,7 +11,7 @@ import OSLog class ClientCommunicationService: NSObject, NSFileProviderServiceSource, NSXPCListenerDelegate, ClientCommunicationProtocol { let listener = NSXPCListener.anonymous() let logger: FileProviderLogger - let serviceName = NSFileProviderServiceName("com.nextcloud.desktopclient.ClientCommunicationService") + let serviceName = NSFileProviderServiceName("com.ionos.hidrivenext.desktopclient.ClientCommunicationService") let fpExtension: FileProviderExtension init(fpExtension: FileProviderExtension) { diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionService.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionService.swift index da2f95e171d74..00473de117aae 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionService.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionService.swift @@ -14,7 +14,9 @@ import NextcloudKit /// /// This does not need to be branded because it is scoped by the app-specific file provider domains in the file system already. /// -let fpUiExtensionServiceName = NSFileProviderServiceName("com.nextcloud.desktopclient.FPUIExtensionService") +let fpUiExtensionServiceName = NSFileProviderServiceName( + "com.ionos.hidrivenext.desktopclient.FPUIExtensionService" +) /// /// The requirements of the service exposed and dedicated to the file provider user interface extension. diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift index ec4671d70e9f7..cdd21c7683d1e 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift @@ -64,13 +64,13 @@ class DocumentActionViewController: FPUIActionExtensionViewController { logger?.info("Preparing action: \(actionIdentifier)") switch (actionIdentifier) { - case "com.nextcloud.desktopclient.FileProviderUIExt.ShareAction": + case "com.ionos.hidrivenext.desktopclient.FileProviderUIExt.ShareAction": prepare(childViewController: ShareViewController(itemIdentifiers, serviceResolver: serviceResolver, log: log)) - case "com.nextcloud.desktopclient.FileProviderUIExt.LockFileAction": + case "com.ionos.hidrivenext.desktopclient.FileProviderUIExt.LockFileAction": prepare(childViewController: LockViewController(itemIdentifiers, locking: true, serviceResolver: serviceResolver, log: log)) - case "com.nextcloud.desktopclient.FileProviderUIExt.UnlockFileAction": + case "com.ionos.hidrivenext.desktopclient.FileProviderUIExt.UnlockFileAction": prepare(childViewController: LockViewController(itemIdentifiers, locking: false, serviceResolver: serviceResolver, log: log)) - case "com.nextcloud.desktopclient.FileProviderUIExt.EvictAction": + case "com.nextcloud.desktopclient.FileProviderUIExt.EvictAction": evict(itemsWithIdentifiers: itemIdentifiers, inDomain: domain); extensionContext.completeRequest(); default: diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist index ee94a3ceb1f2d..e9d819e6ccd90 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist @@ -22,7 +22,7 @@ NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderUIExt.UnlockFileAction + com.ionos.hidrivenext.desktopclient.FileProviderUIExt.UnlockFileAction NSExtensionFileProviderActionName Unlock file NSExtensionFileProviderActionActivationRule @@ -34,13 +34,13 @@ NSExtensionFileProviderActionName Lock file NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderUIExt.LockFileAction + com.ionos.hidrivenext.desktopclient.FileProviderUIExt.LockFileAction NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayShare == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderUIExt.ShareAction + com.ionos.hidrivenext.desktopclient.FileProviderUIExt.ShareAction NSExtensionFileProviderActionName Share options diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Locking/LockViewController.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Locking/LockViewController.swift index f92960571c67d..3d47a218b8d7a 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Locking/LockViewController.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Locking/LockViewController.swift @@ -184,7 +184,7 @@ class LockViewController: NSViewController { user: account.username, userId: account.id, password: account.password, - userAgent: "Nextcloud-macOS/FileProviderUIExt", + userAgent: "IONOS HiDrive Next/FileProviderUIExt", groupIdentifier: "" ) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift index 1cf96a6fb8ee2..fa2e5639356c6 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift @@ -46,9 +46,7 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele } } } - - private(set) var userAgent: String = "Nextcloud-macOS/FileProviderUIExt" - + private(set) var userAgent: String = "IONOS HiDrive Next/FileProviderUIExt" private(set) var account: Account? { didSet { guard let account = account else { diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib index eace38615eb07..637098ad0032c 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib @@ -243,6 +243,8 @@ + diff --git a/shell_integration/windows/WinShellExt.wxs.in b/shell_integration/windows/WinShellExt.wxs.in index a23bc12cf3031..b424ab0a67d45 100644 --- a/shell_integration/windows/WinShellExt.wxs.in +++ b/shell_integration/windows/WinShellExt.wxs.in @@ -31,11 +31,11 @@ There is a limit in Windows (oh wonder^^) so that only the first 15 extensions get invoked, this is why to use that dirty little trick to get ahead ;) See: https://docs.microsoft.com/en-us/windows/win32/shell/context-menu-handlers?redirectedfrom=MSDN#employing-the-verb-selection-model --> - - - - - + + + + + diff --git a/src/common/utility.cpp b/src/common/utility.cpp index e1e65c4a7b1e4..131cee65a9ce3 100644 --- a/src/common/utility.cpp +++ b/src/common/utility.cpp @@ -166,8 +166,8 @@ QByteArray Utility::userAgentString() QByteArray Utility::friendlyUserAgentString() { - const auto pattern = QStringLiteral("%1 (Desktop Client - %2)"); - const auto userAgent = pattern.arg(QSysInfo::machineHostName(), platform()); + const auto pattern = QStringLiteral("%1 (%2 Desktop Client - %3)"); + const auto userAgent = pattern.arg(QSysInfo::machineHostName(), qApp->applicationName(), platform()); return userAgent.toUtf8(); } diff --git a/src/csync/csync_exclude.cpp b/src/csync/csync_exclude.cpp index b92cfa08e43ca..d565e38ea76ea 100644 --- a/src/csync/csync_exclude.cpp +++ b/src/csync/csync_exclude.cpp @@ -142,7 +142,7 @@ static CSYNC_EXCLUDE_TYPE _csync_excluded_common(const QString &path, bool exclu if (bname.startsWith(QLatin1String(".owncloudsync.log"), Qt::CaseInsensitive)) { // ".owncloudsync.log*" return CSYNC_FILE_SILENTLY_EXCLUDED; } - if (bname.startsWith(QLatin1String(".nextcloudsync.log"), Qt::CaseInsensitive)) { // ".nextcloudsync.log*" + if (bname.startsWith(QLatin1String(".hidrivenextsync.log"), Qt::CaseInsensitive)) { // ".hidrivenextsync.log*" return CSYNC_FILE_SILENTLY_EXCLUDED; } if (bname.startsWith(QLatin1String(".nextcloudpermissions.log"), Qt::CaseInsensitive)) { // ".nextcloudpermissions.log*" diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 77ded6e563b12..05357dae8c997 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -6,6 +6,10 @@ find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS Widgets Svg Qml Quick Qui find_package(KF6Archive REQUIRED) find_package(KF6GuiAddons) +if (NOT TARGET Qt::GuiPrivate) + message(FATAL_ERROR "Could not find GuiPrivate component of Qt. It might be shipped as a separate package, please check that.") +endif() + if(CMAKE_BUILD_TYPE MATCHES Debug) add_definitions(-DQT_QML_DEBUG) endif() @@ -14,12 +18,6 @@ IF(BUILD_UPDATER) add_subdirectory(updater) endif() -# Icon switch: if branding is done, use the neutral state icons -set(STATE_SUBDIR "") -if(APPLICATION_NAME STREQUAL "Nextcloud") - set(STATE_SUBDIR "nextcloud/") -endif() - configure_file(${CMAKE_SOURCE_DIR}/theme.qrc.in ${CMAKE_SOURCE_DIR}/theme.qrc) set(theme_dir ${CMAKE_SOURCE_DIR}/theme) @@ -52,212 +50,219 @@ set(client_UI_SRCS wizard/webview.ui wizard/welcomepage.ui wizard/proxysettings.ui -) - -qt_add_resources(client_UI_SRCS ../../resources.qrc ${CMAKE_SOURCE_DIR}/theme.qrc) - -set(client_SRCS - accountmanager.h - accountmanager.cpp - accountsettings.h - accountsettings.cpp - accountsetupfromcommandlinejob.h - accountsetupfromcommandlinejob.cpp - accountsetupcommandlinemanager.h - accountsetupcommandlinemanager.cpp - application.h - application.cpp - invalidfilenamedialog.h - invalidfilenamedialog.cpp - caseclashfilenamedialog.h - caseclashfilenamedialog.cpp - callstatechecker.h - callstatechecker.cpp - conflictdialog.h - conflictdialog.cpp - conflictsolver.h - conflictsolver.cpp - connectionvalidator.h - connectionvalidator.cpp - editlocallyjob.h - editlocallyjob.cpp - editlocallymanager.h - editlocallymanager.cpp - editlocallyverificationjob.h - editlocallyverificationjob.cpp - filetagmodel.h - filetagmodel.cpp - folder.h - folder.cpp - foldercreationdialog.h - foldercreationdialog.cpp - folderman.h - folderman.cpp - folderstatusmodel.h - folderstatusmodel.cpp - folderstatusdelegate.h - folderstatusdelegate.cpp - folderstatusview.h - folderstatusview.cpp - folderwatcher.h - folderwatcher.cpp - folderwizard.h - folderwizard.cpp - generalsettings.h - generalsettings.cpp - legalnotice.h - legalnotice.cpp - ignorelisteditor.h - ignorelisteditor.cpp - ignorelisttablewidget.h - ignorelisttablewidget.cpp - lockwatcher.h - lockwatcher.cpp - logbrowser.h - logbrowser.cpp - networksettings.h - networksettings.cpp - ocsnavigationappsjob.h - ocsnavigationappsjob.cpp - ocsjob.h - ocsjob.cpp - ocssharejob.h - ocssharejob.cpp - ocsshareejob.h - ocsshareejob.cpp - openfilemanager.h - openfilemanager.cpp - owncloudgui.h - owncloudgui.cpp - owncloudsetupwizard.h - owncloudsetupwizard.cpp - passwordinputdialog.h - passwordinputdialog.cpp - selectivesyncdialog.h - selectivesyncdialog.cpp - settingsdialog.h - settingsdialog.cpp - sharemanager.h - sharemanager.cpp - profilepagewidget.h - profilepagewidget.cpp - sharee.h - sharee.cpp - sslbutton.h - sslbutton.cpp - sslerrordialog.h - sslerrordialog.cpp - syncrunfilelog.h - syncrunfilelog.cpp - systray.h - systray.cpp - userinfo.h - userinfo.cpp - vfsdownloaderrordialog.h - vfsdownloaderrordialog.cpp - accountstate.h - accountstate.cpp - addcertificatedialog.h - addcertificatedialog.cpp - authenticationdialog.h - authenticationdialog.cpp - proxyauthhandler.h - proxyauthhandler.cpp - proxyauthdialog.h - proxyauthdialog.cpp - tooltipupdater.h - tooltipupdater.cpp - notificationconfirmjob.h - notificationconfirmjob.cpp - guiutility.h - guiutility.cpp - elidedlabel.h - elidedlabel.cpp - iconutils.h - iconutils.cpp - remotewipe.h - remotewipe.cpp - userstatusselectormodel.h - userstatusselectormodel.cpp - emojimodel.h - emojimodel.cpp - syncconflictsmodel.h - syncconflictsmodel.cpp - fileactivitylistmodel.h - fileactivitylistmodel.cpp - filedetails/datefieldbackend.h - filedetails/datefieldbackend.cpp - filedetails/filedetails.h - filedetails/filedetails.cpp - filedetails/sharemodel.h - filedetails/sharemodel.cpp - filedetails/shareemodel.h - filedetails/shareemodel.cpp - filedetails/sortedsharemodel.h - filedetails/sortedsharemodel.cpp - tray/svgimageprovider.h - tray/svgimageprovider.cpp - tray/syncstatussummary.h - tray/syncstatussummary.cpp - tray/activitydata.h - tray/activitydata.cpp - tray/activitylistmodel.h - tray/activitylistmodel.cpp - tray/unifiedsearchresult.h - tray/asyncimageresponse.cpp - tray/unifiedsearchresult.cpp - tray/unifiedsearchresultslistmodel.h - tray/trayimageprovider.cpp - tray/unifiedsearchresultslistmodel.cpp - tray/usermodel.h - tray/usermodel.cpp - tray/notificationhandler.h - tray/notificationhandler.cpp - tray/sortedactivitylistmodel.h - tray/sortedactivitylistmodel.cpp - creds/credentialsfactory.h - tray/talkreply.cpp - creds/credentialsfactory.cpp - creds/httpcredentialsgui.h - creds/httpcredentialsgui.cpp - creds/flow2auth.h - creds/flow2auth.cpp - creds/webflowcredentials.h - creds/webflowcredentials.cpp - creds/webflowcredentialsdialog.h - creds/webflowcredentialsdialog.cpp - wizard/abstractcredswizardpage.h - wizard/abstractcredswizardpage.cpp - wizard/owncloudadvancedsetuppage.h - wizard/owncloudadvancedsetuppage.cpp - wizard/owncloudconnectionmethoddialog.h - wizard/owncloudconnectionmethoddialog.cpp - wizard/owncloudhttpcredspage.h - wizard/owncloudhttpcredspage.cpp - wizard/flow2authcredspage.h - wizard/flow2authcredspage.cpp - wizard/flow2authwidget.h - wizard/flow2authwidget.cpp - wizard/owncloudsetuppage.h - wizard/owncloudsetuppage.cpp - wizard/termsofservicecheckwidget.h - wizard/termsofservicecheckwidget.cpp - wizard/termsofservicewizardpage.h - wizard/termsofservicewizardpage.cpp - wizard/owncloudwizardcommon.h - wizard/owncloudwizardcommon.cpp - wizard/owncloudwizard.h - wizard/owncloudwizard.cpp - wizard/slideshow.h - wizard/slideshow.cpp - wizard/welcomepage.h - wizard/welcomepage.cpp - wizard/linklabel.h - wizard/linklabel.cpp +) + +list(APPEND client_UI_SRCS + wizard/dataprotectionpage.ui + wizard/dataprotectionsettingspage.ui +) + +qt_add_resources(client_UI_SRCS ../../resources.qrc ../../ionos.qrc ${CMAKE_SOURCE_DIR}/theme.qrc ${CMAKE_SOURCE_DIR}/ionos-theme.qrc) + +set(client_SRCS + accountmanager.h + accountmanager.cpp + accountsettings.h + accountsettings.cpp + accountsetupfromcommandlinejob.h + accountsetupfromcommandlinejob.cpp + accountsetupcommandlinemanager.h + accountsetupcommandlinemanager.cpp + application.h + application.cpp + invalidfilenamedialog.h + invalidfilenamedialog.cpp + caseclashfilenamedialog.h + caseclashfilenamedialog.cpp + callstatechecker.h + callstatechecker.cpp + conflictdialog.h + conflictdialog.cpp + conflictsolver.h + conflictsolver.cpp + connectionvalidator.h + connectionvalidator.cpp + editlocallyjob.h + editlocallyjob.cpp + editlocallymanager.h + editlocallymanager.cpp + editlocallyverificationjob.h + editlocallyverificationjob.cpp + filetagmodel.h + filetagmodel.cpp + folder.h + folder.cpp + foldercreationdialog.h + foldercreationdialog.cpp + folderman.h + folderman.cpp + folderstatusmodel.h + folderstatusmodel.cpp + folderstatusdelegate.h + folderstatusdelegate.cpp + folderstatusview.h + folderstatusview.cpp + folderwatcher.h + folderwatcher.cpp + folderwizard.h + folderwizard.cpp + generalsettings.h + generalsettings.cpp + legalnotice.h + legalnotice.cpp + ignorelisteditor.h + ignorelisteditor.cpp + ignorelisttablewidget.h + ignorelisttablewidget.cpp + lockwatcher.h + lockwatcher.cpp + logbrowser.h + logbrowser.cpp + networksettings.h + networksettings.cpp + ocsnavigationappsjob.h + ocsnavigationappsjob.cpp + ocsjob.h + ocsjob.cpp + ocssharejob.h + ocssharejob.cpp + ocsshareejob.h + ocsshareejob.cpp + openfilemanager.h + openfilemanager.cpp + owncloudgui.h + owncloudgui.cpp + owncloudsetupwizard.h + owncloudsetupwizard.cpp + passwordinputdialog.h + passwordinputdialog.cpp + selectivesyncdialog.h + selectivesyncdialog.cpp + settingsdialog.h + settingsdialog.cpp + sharemanager.h + sharemanager.cpp + profilepagewidget.h + profilepagewidget.cpp + sharee.h + sharee.cpp + sslbutton.h + sslbutton.cpp + sslerrordialog.h + sslerrordialog.cpp + syncrunfilelog.h + syncrunfilelog.cpp + systray.h + systray.cpp + userinfo.h + userinfo.cpp + vfsdownloaderrordialog.h + vfsdownloaderrordialog.cpp + accountstate.h + accountstate.cpp + addcertificatedialog.h + addcertificatedialog.cpp + authenticationdialog.h + authenticationdialog.cpp + proxyauthhandler.h + proxyauthhandler.cpp + proxyauthdialog.h + proxyauthdialog.cpp + tooltipupdater.h + tooltipupdater.cpp + notificationconfirmjob.h + notificationconfirmjob.cpp + guiutility.h + guiutility.cpp + elidedlabel.h + elidedlabel.cpp + iconutils.h + iconutils.cpp + remotewipe.h + remotewipe.cpp + userstatusselectormodel.h + userstatusselectormodel.cpp + emojimodel.h + emojimodel.cpp + syncconflictsmodel.h + syncconflictsmodel.cpp + fileactivitylistmodel.h + fileactivitylistmodel.cpp + filedetails/datefieldbackend.h + filedetails/datefieldbackend.cpp + filedetails/filedetails.h + filedetails/filedetails.cpp + filedetails/sharemodel.h + filedetails/sharemodel.cpp + filedetails/shareemodel.h + filedetails/shareemodel.cpp + filedetails/sortedsharemodel.h + filedetails/sortedsharemodel.cpp + tray/svgimageprovider.h + tray/svgimageprovider.cpp + tray/syncstatussummary.h + tray/syncstatussummary.cpp + tray/activitydata.h + tray/activitydata.cpp + tray/activitylistmodel.h + tray/activitylistmodel.cpp + tray/unifiedsearchresult.h + tray/asyncimageresponse.cpp + tray/unifiedsearchresult.cpp + tray/unifiedsearchresultslistmodel.h + tray/trayimageprovider.cpp + tray/unifiedsearchresultslistmodel.cpp + tray/usermodel.h + tray/usermodel.cpp + tray/notificationhandler.h + tray/notificationhandler.cpp + tray/sortedactivitylistmodel.h + tray/sortedactivitylistmodel.cpp + creds/credentialsfactory.h + tray/talkreply.cpp + creds/credentialsfactory.cpp + creds/httpcredentialsgui.h + creds/httpcredentialsgui.cpp + creds/flow2auth.h + creds/flow2auth.cpp + creds/webflowcredentials.h + creds/webflowcredentials.cpp + creds/webflowcredentialsdialog.h + creds/webflowcredentialsdialog.cpp + wizard/postfixlineedit.h + wizard/postfixlineedit.cpp + wizard/abstractcredswizardpage.h + wizard/abstractcredswizardpage.cpp + wizard/owncloudadvancedsetuppage.h + wizard/owncloudadvancedsetuppage.cpp + wizard/owncloudconnectionmethoddialog.h + wizard/owncloudconnectionmethoddialog.cpp + wizard/owncloudhttpcredspage.h + wizard/owncloudhttpcredspage.cpp + wizard/flow2authcredspage.h + wizard/flow2authcredspage.cpp + wizard/flow2authwidget.h + wizard/flow2authwidget.cpp + wizard/owncloudsetuppage.h + wizard/owncloudsetuppage.cpp + wizard/termsofservicecheckwidget.h + wizard/termsofservicecheckwidget.cpp + wizard/termsofservicewizardpage.h + wizard/termsofservicewizardpage.cpp + wizard/owncloudwizardcommon.h + wizard/owncloudwizardcommon.cpp + wizard/owncloudwizard.h + wizard/owncloudwizard.cpp + wizard/slideshow.h + wizard/slideshow.cpp + wizard/welcomepage.h + wizard/welcomepage.cpp + wizard/linklabel.h + wizard/linklabel.cpp wizard/wizardproxysettingsdialog.h wizard/wizardproxysettingsdialog.cpp - ) - +) + if (NOT DISABLE_ACCOUNT_MIGRATION) list(APPEND client_SRCS legacyaccountselectiondialog.h @@ -265,498 +270,539 @@ if (NOT DISABLE_ACCOUNT_MIGRATION) ) endif() -if (WITH_WEBENGINE) - list(APPEND client_SRCS - wizard/webviewpage.h - wizard/webviewpage.cpp - wizard/webview.h - wizard/webview.cpp - ) -endif() - -IF(BUILD_UPDATER) - set(updater_SRCS - updater/ocupdater.h - updater/ocupdater.cpp - updater/updateinfo.h - updater/updateinfo.cpp - updater/updater.h - updater/updater.cpp - ) -endif() - -IF( APPLE ) - list(APPEND client_SRCS cocoainitializer_mac.mm) - list(APPEND client_SRCS systray_mac_common.mm) - - list(APPEND client_SRCS systray_mac_usernotifications.mm) - - if (BUILD_FILE_PROVIDER_MODULE) - list(APPEND client_SRCS - # Symlinks to files in shell_integration/MacOSX/NextcloudIntegration/ - macOS/ClientCommunicationProtocol.h - # End of symlink files - macOS/fileprovider.h - macOS/fileprovider_mac.mm - macOS/fileproviderdomainmanager.h - macOS/fileproviderdomainmanager_mac.mm - macOS/fileproviderdomainsyncstatus.h - macOS/fileproviderdomainsyncstatus_mac.mm - macOS/fileprovidereditlocallyjob.h - macOS/fileprovidereditlocallyjob.cpp - macOS/fileprovidereditlocallyjob_mac.mm - macOS/fileprovideritemmetadata.h - macOS/fileprovideritemmetadata.cpp - macOS/fileprovideritemmetadata_mac.mm - macOS/fileprovidermaterialiseditemsmodel.h - macOS/fileprovidermaterialiseditemsmodel.cpp - macOS/fileprovidermaterialiseditemsmodel_mac.mm - macOS/fileprovidersettingscontroller.h - macOS/fileprovidersettingscontroller_mac.mm - macOS/fileprovidersocketcontroller.h - macOS/fileprovidersocketcontroller.cpp - macOS/fileprovidersocketserver.h - macOS/fileprovidersocketserver.cpp - macOS/fileprovidersocketserver_mac.mm - macOS/fileproviderstorageuseenumerationobserver.h - macOS/fileproviderstorageuseenumerationobserver.m - macOS/fileproviderutils.h - macOS/fileproviderutils_mac.mm - macOS/fileproviderxpc.h - macOS/fileproviderxpc_mac.mm - macOS/fileproviderxpc_mac_utils.h - macOS/fileproviderxpc_mac_utils.mm - macOS/progressobserver.h - macOS/progressobserver.m) - endif() - - list(APPEND client_SRCS foregroundbackground_interface.h) - list(APPEND client_SRCS foregroundbackground_mac.mm) - list(APPEND client_SRCS foregroundbackground_cocoa.mm) - - if(SPARKLE_FOUND AND BUILD_UPDATER) - # Define this, we need to check in updater.cpp - add_definitions(-DHAVE_SPARKLE) - list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h) - list(APPEND updater_DEPS ${SPARKLE_LIBRARY}) - - # Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle - # as its logic is tightly tailored around Qt frameworks - install(DIRECTORY "${SPARKLE_LIBRARY}" - DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS) - - endif() -ENDIF() - -IF( NOT WIN32 AND NOT APPLE ) - set(client_SRCS ${client_SRCS} folderwatcher_linux.cpp) -ENDIF() -IF( WIN32 ) - set(client_SRCS - ${client_SRCS} - folderwatcher_win.cpp - navigationpanehelper.h - navigationpanehelper.cpp - shellextensionsserver.cpp - ${CMAKE_SOURCE_DIR}/src/common/shellextensionutils.cpp) -ENDIF() -IF( APPLE ) - list(APPEND client_SRCS folderwatcher_mac.cpp) -ENDIF() - -set(3rdparty_SRC - ../3rdparty/QProgressIndicator/QProgressIndicator.h - ../3rdparty/QProgressIndicator/QProgressIndicator.cpp - ../3rdparty/qtlockedfile/qtlockedfile.h - ../3rdparty/qtlockedfile/qtlockedfile.cpp - ../3rdparty/qtsingleapplication/qtlocalpeer.h - ../3rdparty/qtsingleapplication/qtlocalpeer.cpp - ../3rdparty/qtsingleapplication/qtsingleapplication.h - ../3rdparty/qtsingleapplication/qtsingleapplication.cpp - ../3rdparty/qtsingleapplication/qtsinglecoreapplication.h - ../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp - ../3rdparty/kmessagewidget/kmessagewidget.h - ../3rdparty/kmessagewidget/kmessagewidget.cpp - ../3rdparty/kirigami/wheelhandler.h - ../3rdparty/kirigami/wheelhandler.cpp - ) - -set_property(SOURCE ../3rdparty/kmessagewidget/kmessagewidget.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -set_property(SOURCE ../3rdparty/kirigami/wheelhandler.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - -if(NOT WIN32) - list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp) - set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -else() - list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp ) - set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_win.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -endif() - -find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS LinguistTools) -if(Qt${QT_MAJOR_VERSION}LinguistTools_FOUND) - qt_add_translation(client_I18N ${TRANSLATIONS}) -endif() - -IF( WIN32 ) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in - ${CMAKE_CURRENT_BINARY_DIR}/version.rc - @ONLY) - set(client_version ${CMAKE_CURRENT_BINARY_DIR}/version.rc) - IF(NOT MSVC) - set(client_manifest ${CMAKE_CURRENT_SOURCE_DIR}/manifest-mingw.rc) - ENDIF() -ENDIF() - -set( final_src - ${client_SRCS} - ${client_UI_SRCS} - ${guiMoc} - ${client_I18N} - ${3rdparty_SRC} - ${3rdparty_MOC} -) - -if(Qt${QT_MAJOR_VERSION}Keychain_FOUND) - list(APPEND libsync_LINK_TARGETS Qt6::keychain) -endif() - -# add executable icon on windows and osx -include(GenerateIconsUtils) - -# For historical reasons we can not use the application_shortname -# for ownCloud but must rather set it manually. -if (NOT DEFINED APPLICATION_ICON_NAME) - set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME}) -endif() - -if(NOT DEFINED APPLICATION_FOLDER_ICON_INDEX) - set(APPLICATION_FOLDER_ICON_INDEX 0) -endif() - -set(STATE_ICONS_COLORS colored black white) - -foreach(state_icons_color ${STATE_ICONS_COLORS}) - set(STATE_ICONS_PATH "${theme_dir}/${state_icons_color}/") - - message("Generating state icons from SVG in path: ${STATE_ICONS_PATH}") - - file(GLOB_RECURSE STATE_ICONS_SVG "${STATE_ICONS_PATH}/state-*.svg") - - foreach(state_icon_svg ${STATE_ICONS_SVG}) - get_filename_component(status_icon_name_wle ${state_icon_svg} NAME_WLE) - foreach(size IN ITEMS 16;32;64;128;256) - generate_sized_png_from_svg(${state_icon_svg} ${size} OUTPUT_ICON_FULL_NAME_WLE "${status_icon_name_wle}-${size}") - endforeach() - endforeach() -endforeach() - -if ((APPLICATION_ICON_SET MATCHES "PNG") - AND - (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")) - # We may have no svg application icon in when customers use PNG - # icons in brander, but theme.qrc expects a svg icon. - file(TOUCH "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") -endif() - -if(APPLE) - set(MACOS_SIDEBAR_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-sidebar.svg") - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 16) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 32) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 64) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 128) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 256) -endif() - -if(WIN32) - set(STARTMENU_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-w10startmenu.svg") - generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 70) - generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 150) -endif() - -set(APP_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") - -# generate secondary icon if available (currently for Windows only)-------------------------------------- -set(APP_SECONDARY_ICONS "${theme_dir}/colored/icons") -set(APP_ICON_WIN_FOLDER_SVG "${APP_SECONDARY_ICONS}/${APPLICATION_ICON_NAME}-icon-win-folder.svg") - -# generate primary icon from SVG (due to Win .ico vs .rc dependency issues, primary icon must always be generated last)-------------------------------------- -if(WIN32) - foreach(size IN ITEMS 16;20;24;32;40;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) - endforeach() -else() - foreach(size IN ITEMS 16;24;32;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) - endforeach() -endif() - -file(GLOB OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*") - -if(APPLE) - file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*") - MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}") -endif() - -ecm_add_app_icon(APP_ICON ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}") - -if(WIN32 AND EXISTS ${APP_ICON_WIN_FOLDER_SVG}) - get_filename_component(output_icon_name_win ${APP_ICON_WIN_FOLDER_SVG} NAME_WLE) - # Product icon (for smallest size) - foreach(size IN ITEMS 16;20) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") - endforeach() - - # Product icon with Windows folder (for sizes larger than 20) - foreach(size IN ITEMS 24;32;40;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_WIN_FOLDER_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") - endforeach() - - file(GLOB OWNCLOUD_ICONS_WIN_FOLDER "${APP_SECONDARY_ICONS}/*-${APPLICATION_ICON_NAME}-icon*") - set(APP_ICON_WIN_FOLDER_ICO_NAME "${APPLICATION_ICON_NAME}-win-folder") - ecm_add_app_icon(APP_ICON ICONS ${OWNCLOUD_ICONS_WIN_FOLDER} OUTFILE_BASENAME "${APP_ICON_WIN_FOLDER_ICO_NAME}") - - # We need to patch the resource files generated by `ecm_add_app_icon` to allow multiple icons in the same executable. - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${APP_ICON_WIN_FOLDER_ICO_NAME}.rc.in" "\n") # avoid resource linker complaining about duplicate icon resources - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.rc.in" "IDI_ICON1 ICON DISCARDABLE \"${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.ico\"\n") - file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.rc.in" "IDI_ICON2 ICON DISCARDABLE \"${CMAKE_CURRENT_BINARY_DIR}/${APP_ICON_WIN_FOLDER_ICO_NAME}.ico\"\n") - - # The icon index used in code is 0-indexed, whereas the resource starts indexing from 1. - set(APPLICATION_FOLDER_ICON_INDEX 1) -endif() - -# -------------------------------------- - -if(UNIX AND NOT APPLE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") -endif() - -add_library(nextcloudCore STATIC ${final_src}) - -target_link_libraries(nextcloudCore - PUBLIC - Nextcloud::sync - Qt::Widgets - Qt::Svg - Qt::Network - Qt::Xml - Qt::Qml - Qt::Quick - Qt::QuickControls2 - Qt::QuickWidgets - KF6::Archive - ) - -if(KF6GuiAddons_FOUND) - target_link_libraries(nextcloudCore - PUBLIC - KF6::GuiAddons - ) - add_definitions(-DHAVE_KGUIADDONS) -endif() - -add_subdirectory(socketapi) - -# skip unity inclusion for files which cause problems with a CMake unity build -set_property(SOURCE - ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketapi.cpp - PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - -foreach(FILE IN LISTS client_UI_SRCS) - set_property(SOURCE ${FILE} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -endforeach() - -if(WITH_WEBENGINE) - target_link_libraries(nextcloudCore PUBLIC Qt::WebEngineWidgets Qt::WebEngineCore) -endif() - -set_target_properties(nextcloudCore - PROPERTIES - AUTOUIC ON - AUTOMOC ON -) - -target_include_directories(nextcloudCore - PUBLIC - ${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator - ${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile - ${CMAKE_SOURCE_DIR}/src/3rdparty/kirigami - ${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication - ${CMAKE_SOURCE_DIR}/src/3rdparty/kmessagewidget - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} -) - -if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) - if(NOT WIN32) - file(GLOB _icons "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon.png") - foreach(_file ${_icons}) - string(REPLACE "${theme_dir}/colored/" "" _res ${_file}) - string(REPLACE "-${APPLICATION_ICON_NAME}-icon.png" "" _res ${_res}) - install(FILES ${_file} RENAME ${APPLICATION_ICON_NAME}.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${_res}x${_res}/apps) - endforeach(_file) - install(FILES ${client_I18N} DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPLICATION_EXECUTABLE}/i18n) - else() - file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*") - install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements) - install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin) - install(FILES ${client_I18N} DESTINATION i18n) - endif() - - # we may not add MACOSX_BUNDLE here, if not building one - add_executable(nextcloud WIN32 main.cpp ${client_version} ${client_manifest} ${APP_ICON}) - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_EXECUTABLE}" - ) -else() - # set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. - set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns") - - # we must add MACOSX_BUNDLE only if building a bundle - add_executable(nextcloud WIN32 MACOSX_BUNDLE main.cpp ${APP_ICON}) - - if (BUILD_OWNCLOUD_OSX_BUNDLE) - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_NAME}") - else() - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_EXECUTABLE}") - endif() - - set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations) - install(FILES ${client_I18N} DESTINATION ${QM_DIR}) - get_target_property(_qmake Qt::qmake LOCATION) - execute_process(COMMAND ${_qmake} -query QT_INSTALL_TRANSLATIONS - OUTPUT_VARIABLE QT_TRANSLATIONS_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) - install(FILES ${qt_I18N} DESTINATION ${QM_DIR}) - file(GLOB qtbase_I18N ${QT_TRANSLATIONS_DIR}/qtbase_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) - install(FILES ${qtbase_I18N} DESTINATION ${QM_DIR}) - file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm) - install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR}) -endif() - -IF(BUILD_UPDATER) - add_library(updater STATIC ${updater_SRCS}) - target_link_libraries(updater Nextcloud::sync ${updater_DEPS} Qt::Widgets Qt::Svg Qt::Network Qt::Xml) - target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - set_target_properties(updater PROPERTIES AUTOMOC ON) - target_link_libraries(nextcloudCore PUBLIC updater) -endif() - -set_target_properties(nextcloud PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} -) - -target_link_libraries(nextcloud PRIVATE nextcloudCore) - -if(TARGET PkgConfig::CLOUDPROVIDERS) - message("Building with libcloudproviderssupport") - target_sources(nextcloudCore PRIVATE cloudproviders/cloudprovidermanager.cpp cloudproviders/cloudproviderwrapper.cpp) - - string(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR) - string(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}") - string(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}") - if(NOT DBUS_PREFIX) - set(DBUS_PREFIX "com") - endif(NOT DBUS_PREFIX) - set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}") - set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}") - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cloudproviders/cloudproviderconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/cloudproviderconfig.h) - target_compile_definitions(nextcloudCore PUBLIC -DWITH_LIBCLOUDPROVIDERS) - target_link_libraries(nextcloudCore - PRIVATE - PkgConfig::CLOUDPROVIDERS - PkgConfig::GLIB2 - PkgConfig::GIO - ) - - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "Implements=org.freedesktop.CloudProviders\n") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "[org.freedesktop.CloudProviders]") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "BusName=${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "ObjectPath=${LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH}") - list(JOIN LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "\n" LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS) -endif() - -## handle DBUS for Fdo notifications -if( UNIX AND NOT APPLE ) - find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS DBus) - target_link_libraries(nextcloudCore PUBLIC Qt::DBus) - target_compile_definitions(nextcloudCore PUBLIC "USE_FDO_NOTIFICATIONS") -endif() - -if (APPLE) - if (BUILD_FILE_PROVIDER_MODULE) - target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications -framework FileProvider") - else() - target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications") - endif() -endif() - -install(TARGETS nextcloud - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - BUNDLE DESTINATION "." - ) - -if (WIN32) - install(FILES $ DESTINATION bin OPTIONAL) -endif() - -# FIXME: The following lines are dup in src/gui and src/cmd because it needs to be done after both are installed -#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unnecessary -# currently it needs to be done because the code right above needs to be executed no matter -# if building a bundle or not and the install_qt4_executable needs to be called afterwards -# -# OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option -if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) - get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) - get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY) - find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}") - - set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd) - - if(CMAKE_BUILD_TYPE MATCHES Debug) - set(NO_STRIP "-no-strip") - else() - set(NO_STRIP "") - endif() - - add_custom_command(TARGET nextcloud POST_BUILD - COMMAND "${MACDEPLOYQT_EXECUTABLE}" - "$/../.." - -qmldir=${CMAKE_SOURCE_DIR}/src/gui - -always-overwrite - -executable="$/${cmd_NAME}" - ${NO_STRIP} - COMMAND "${CMAKE_COMMAND}" - -E rm -rf "${BIN_OUTPUT_DIRECTORY}/${OWNCLOUD_OSX_BUNDLE}/Contents/PlugIns/bearer" - COMMENT "Running macdeployqt..." - ) -endif() - -if(NOT BUILD_OWNCLOUD_OSX_BUNDLE AND NOT WIN32) - configure_file(${CMAKE_SOURCE_DIR}/mirall.desktop.in - ${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ) - - configure_file(owncloud.xml.in ${APPLICATION_EXECUTABLE}.xml) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_EXECUTABLE}.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages ) - - find_package(SharedMimeInfo) - if(SharedMimeInfo_FOUND) - update_xdg_mimetypes( ${CMAKE_INSTALL_DATADIR}/mime/packages ) - endif(SharedMimeInfo_FOUND) -endif() - -configure_file(configgui.h.in ${CMAKE_CURRENT_BINARY_DIR}/configgui.h) +list(APPEND client_SRCS + clickablelabel.h + buttonstyle.h + ionostheme.h + whitelabeltheme.h + stratotheme.h + basetheme.h + wizard/dataprotectionpage.h + wizard/dataprotectionpage.cpp + wizard/dataprotectionsettingspage.h + wizard/dataprotectionsettingspage.cpp + ga4/datacollectionwrapper.cpp + ga4/datacollectionwrapper.h + ga4/ganalytics_worker.cpp + ga4/ganalytics_worker.h + ga4/ganalytics.cpp + ga4/ganalytics.h + sessnackbar.h + sessnackbar.cpp + sesstyle.h + sesstyle.cpp + linkbutton.h + linkbutton.cpp + buttonstylestrategy.h + sesFileIconProvider.h + sesFileIconProvider.cpp + pushbuttonstylehelper.h + pushbuttonstylehelper.cpp + moreoptionsbuttonstylehelper.h + moreoptionsbuttonstylehelper.cpp + SesComponents/syncdirvalidation.h + SesComponents/syncdirvalidation.cpp +) + +if (WITH_WEBENGINE) + list(APPEND client_SRCS + wizard/webviewpage.h + wizard/webviewpage.cpp + wizard/webview.h + wizard/webview.cpp + ) +endif() + +IF(BUILD_UPDATER) + set(updater_SRCS + updater/ocupdater.h + updater/ocupdater.cpp + updater/updateinfo.h + updater/updateinfo.cpp + updater/updater.h + updater/updater.cpp + ) +endif() + +IF( APPLE ) + list(APPEND client_SRCS cocoainitializer_mac.mm) + list(APPEND client_SRCS systray_mac_common.mm) + + list(APPEND client_SRCS systray_mac_usernotifications.mm) + + if (BUILD_FILE_PROVIDER_MODULE) + list(APPEND client_SRCS + # Symlinks to files in shell_integration/MacOSX/NextcloudIntegration/ + macOS/ClientCommunicationProtocol.h + # End of symlink files + macOS/fileprovider.h + macOS/fileprovider_mac.mm + macOS/fileproviderdomainmanager.h + macOS/fileproviderdomainmanager_mac.mm + macOS/fileproviderdomainsyncstatus.h + macOS/fileproviderdomainsyncstatus_mac.mm + macOS/fileprovidereditlocallyjob.h + macOS/fileprovidereditlocallyjob.cpp + macOS/fileprovidereditlocallyjob_mac.mm + macOS/fileprovideritemmetadata.h + macOS/fileprovideritemmetadata.cpp + macOS/fileprovideritemmetadata_mac.mm + macOS/fileprovidermaterialiseditemsmodel.h + macOS/fileprovidermaterialiseditemsmodel.cpp + macOS/fileprovidermaterialiseditemsmodel_mac.mm + macOS/fileprovidersettingscontroller.h + macOS/fileprovidersettingscontroller_mac.mm + macOS/fileprovidersocketcontroller.h + macOS/fileprovidersocketcontroller.cpp + macOS/fileprovidersocketserver.h + macOS/fileprovidersocketserver.cpp + macOS/fileprovidersocketserver_mac.mm + macOS/fileproviderstorageuseenumerationobserver.h + macOS/fileproviderstorageuseenumerationobserver.m + macOS/fileproviderutils.h + macOS/fileproviderutils_mac.mm + macOS/fileproviderxpc.h + macOS/fileproviderxpc_mac.mm + macOS/fileproviderxpc_mac_utils.h + macOS/fileproviderxpc_mac_utils.mm + macOS/progressobserver.h + macOS/progressobserver.m) + endif() + + list(APPEND client_SRCS foregroundbackground_interface.h) + list(APPEND client_SRCS foregroundbackground_mac.mm) + list(APPEND client_SRCS foregroundbackground_cocoa.mm) + + if(SPARKLE_FOUND AND BUILD_UPDATER) + # Define this, we need to check in updater.cpp + add_definitions(-DHAVE_SPARKLE) + list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h) + list(APPEND updater_DEPS ${SPARKLE_LIBRARY}) + + # Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle + # as its logic is tightly tailored around Qt frameworks + install(DIRECTORY "${SPARKLE_LIBRARY}" + DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS) + + endif() +ENDIF() + +IF( NOT WIN32 AND NOT APPLE ) + set(client_SRCS ${client_SRCS} folderwatcher_linux.cpp) +ENDIF() +IF( WIN32 ) + set(client_SRCS + ${client_SRCS} + folderwatcher_win.cpp + navigationpanehelper.h + navigationpanehelper.cpp + shellextensionsserver.cpp + ${CMAKE_SOURCE_DIR}/src/common/shellextensionutils.cpp) +ENDIF() +IF( APPLE ) + list(APPEND client_SRCS folderwatcher_mac.cpp) +ENDIF() + +set(3rdparty_SRC + ../3rdparty/QProgressIndicator/QProgressIndicator.h + ../3rdparty/QProgressIndicator/QProgressIndicator.cpp + ../3rdparty/qtlockedfile/qtlockedfile.h + ../3rdparty/qtlockedfile/qtlockedfile.cpp + ../3rdparty/qtsingleapplication/qtlocalpeer.h + ../3rdparty/qtsingleapplication/qtlocalpeer.cpp + ../3rdparty/qtsingleapplication/qtsingleapplication.h + ../3rdparty/qtsingleapplication/qtsingleapplication.cpp + ../3rdparty/qtsingleapplication/qtsinglecoreapplication.h + ../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp + ../3rdparty/kmessagewidget/kmessagewidget.h + ../3rdparty/kmessagewidget/kmessagewidget.cpp + ../3rdparty/kirigami/wheelhandler.h + ../3rdparty/kirigami/wheelhandler.cpp + ) + +set_property(SOURCE ../3rdparty/kmessagewidget/kmessagewidget.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +set_property(SOURCE ../3rdparty/kirigami/wheelhandler.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + +if(NOT WIN32) + list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp) + set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +else() + list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp ) + set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_win.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +endif() + +find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS LinguistTools) +if(Qt${QT_MAJOR_VERSION}LinguistTools_FOUND) + qt_add_translation(client_I18N ${TRANSLATIONS}) +endif() + +IF( WIN32 ) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/version.rc + @ONLY) + set(client_version ${CMAKE_CURRENT_BINARY_DIR}/version.rc) + IF(NOT MSVC) + set(client_manifest ${CMAKE_CURRENT_SOURCE_DIR}/manifest-mingw.rc) + ENDIF() +ENDIF() + +set( final_src + ${client_SRCS} + ${client_UI_SRCS} + ${guiMoc} + ${client_I18N} + ${3rdparty_SRC} + ${3rdparty_MOC} +) + +if(Qt${QT_MAJOR_VERSION}Keychain_FOUND) + list(APPEND libsync_LINK_TARGETS Qt6::keychain) +endif() + +# add executable icon on windows and osx +include(GenerateIconsUtils) + +# For historical reasons we can not use the application_shortname +# for ownCloud but must rather set it manually. +if (NOT DEFINED APPLICATION_ICON_NAME) + set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME}) +endif() + +if(NOT DEFINED APPLICATION_FOLDER_ICON_INDEX) + set(APPLICATION_FOLDER_ICON_INDEX 0) +endif() + +set(STATE_ICONS_COLORS colored black white) + +foreach(state_icons_color ${STATE_ICONS_COLORS}) + set(STATE_ICONS_PATH "${theme_dir}/${state_icons_color}/") + + message("Generating state icons from SVG in path: ${STATE_ICONS_PATH}") + + file(GLOB_RECURSE STATE_ICONS_SVG "${STATE_ICONS_PATH}/state-*.svg") + + foreach(state_icon_svg ${STATE_ICONS_SVG}) + get_filename_component(status_icon_name_wle ${state_icon_svg} NAME_WLE) + foreach(size IN ITEMS 16;32;64;128;256) + generate_sized_png_from_svg(${state_icon_svg} ${size} OUTPUT_ICON_FULL_NAME_WLE "${status_icon_name_wle}-${size}") + endforeach() + endforeach() +endforeach() + +if ((APPLICATION_ICON_SET MATCHES "PNG") + AND + (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")) + # We may have no svg application icon in when customers use PNG + # icons in brander, but theme.qrc expects a svg icon. + file(TOUCH "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") +endif() + +if(APPLE) + set(MACOS_SIDEBAR_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-sidebar.svg") + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 16) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 32) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 64) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 128) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 256) +endif() + +if(WIN32) + set(STARTMENU_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-w10startmenu.svg") + generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 70) + generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 150) +endif() + +set(APP_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") + +# generate secondary icon if available (currently for Windows only)-------------------------------------- +set(APP_SECONDARY_ICONS "${theme_dir}/colored/icons") +set(APP_ICON_WIN_FOLDER_SVG "${APP_SECONDARY_ICONS}/${APPLICATION_ICON_NAME}-icon-win-folder.svg") + +set(RC_DEPENDENCIES "") + +if(WIN32) + if (EXISTS ${APP_ICON_WIN_FOLDER_SVG}) + get_filename_component(output_icon_name_win ${APP_ICON_WIN_FOLDER_SVG} NAME_WLE) + # Product icon (for smallest size) + foreach(size IN ITEMS 16;20) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") + endforeach() + + # Product icon with Windows folder (for sizes larger than 20) + foreach(size IN ITEMS 24;32;40;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_WIN_FOLDER_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") + endforeach() + + file(GLOB_RECURSE OWNCLOUD_ICONS_WIN_FOLDER "${APP_SECONDARY_ICONS}/*-${APPLICATION_ICON_NAME}-icon*") + set(APP_ICON_WIN_FOLDER_ICO_NAME "${APPLICATION_ICON_NAME}-win-folder") + set(RC_DEPENDENCIES "${RC_DEPENDENCIES} ${APP_ICON_WIN_FOLDER_ICO_NAME}.ico") + ecm_add_app_icon(APP_ICON_WIN_FOLDER ICONS "${OWNCLOUD_ICONS_WIN_FOLDER}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APP_ICON_WIN_FOLDER_ICO_NAME}" ICON_INDEX 2) + endif() +endif() +# -------------------------------------- + +if (NOT ${RC_DEPENDENCIES} STREQUAL "") + string(STRIP ${RC_DEPENDENCIES} RC_DEPENDENCIES) +endif() + +# generate primary icon from SVG (due to Win .ico vs .rc dependency issues, primary icon must always be generated last)-------------------------------------- +if(WIN32) + foreach(size IN ITEMS 16;20;24;32;40;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) + endforeach() +else() + foreach(size IN ITEMS 16;24;32;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) + endforeach() +endif() + +file(GLOB_RECURSE OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*") + +if(APPLE) + file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*") + MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}") +endif() + +ecm_add_app_icon(APP_ICON RC_DEPENDENCIES ${RC_DEPENDENCIES} ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}" ICON_INDEX 1) +# -------------------------------------- + +if(WIN32) +# merge *.rc.in files for Windows (multiple ICON resources must be placed in a single file, otherwise, this won't work de to a bug in Windows compiler https://developercommunity.visualstudio.com/t/visual-studio-2017-prof-1557-cvt1100-duplicate-res/363156) + function(merge_files IN_FILE OUT_FILE) + file(READ ${IN_FILE} CONTENTS) + message("Merging ${IN_FILE} into ${OUT_FILE}") + file(APPEND ${OUT_FILE} "${CONTENTS}") + endfunction() + message("APP_ICON is: ${APP_ICON}") + if(APP_ICON) + get_filename_component(RC_IN_FOLDER ${APP_ICON}} DIRECTORY) + + file(GLOB_RECURSE RC_IN_FILES "${RC_IN_FOLDER}/*rc.in") + + foreach(rc_in_file IN ITEMS ${RC_IN_FILES}) + get_filename_component(rc_in_file_name ${rc_in_file} NAME) + get_filename_component(app_icon_name "${APP_ICON}.in" NAME) + if(NOT "${rc_in_file_name}" STREQUAL "${app_icon_name}") + merge_files(${rc_in_file} "${APP_ICON}.in") + if (DEFINED APPLICATION_FOLDER_ICON_INDEX) + MATH(EXPR APPLICATION_FOLDER_ICON_INDEX "${APPLICATION_FOLDER_ICON_INDEX}+1") + message("APPLICATION_FOLDER_ICON_INDEX is now set to: ${APPLICATION_FOLDER_ICON_INDEX}") + endif() + endif() + endforeach() + endif() +endif() +# -------------------------------------- + +if(UNIX AND NOT APPLE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") +endif() + +add_library(nextcloudCore STATIC ${final_src}) + +target_link_libraries(nextcloudCore + PUBLIC + Nextcloud::sync + Qt::Widgets + Qt::Gui + Qt::Svg + Qt::Network + Qt::Xml + Qt::Qml + Qt::Quick + Qt::QuickControls2 + Qt::QuickWidgets + KF6::Archive + ) + +if(KF6GuiAddons_FOUND) + target_link_libraries(nextcloudCore + PUBLIC + KF6::GuiAddons + ) + add_definitions(-DHAVE_KGUIADDONS) +endif() + +add_subdirectory(socketapi) + +# skip unity inclusion for files which cause problems with a CMake unity build +set_property(SOURCE + ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketapi.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketuploadjob.cpp + PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + +foreach(FILE IN LISTS client_UI_SRCS) + set_property(SOURCE ${FILE} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +endforeach() + +if(WITH_WEBENGINE) + target_link_libraries(nextcloudCore PUBLIC Qt::WebEngineWidgets Qt::WebEngineCore) +endif() + +set_target_properties(nextcloudCore + PROPERTIES + AUTOUIC ON + AUTOMOC ON +) + +target_include_directories(nextcloudCore + PUBLIC + ${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile + ${CMAKE_SOURCE_DIR}/src/3rdparty/kirigami + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication + ${CMAKE_SOURCE_DIR}/src/3rdparty/kmessagewidget + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} +) + +if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) + if(NOT WIN32) + file(GLOB _icons "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon.png") + foreach(_file ${_icons}) + string(REPLACE "${theme_dir}/colored/" "" _res ${_file}) + string(REPLACE "-${APPLICATION_ICON_NAME}-icon.png" "" _res ${_res}) + install(FILES ${_file} RENAME ${APPLICATION_ICON_NAME}.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${_res}x${_res}/apps) + endforeach(_file) + install(FILES ${client_I18N} DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPLICATION_EXECUTABLE}/i18n) + else() + file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*") + install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements) + install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin) + install(FILES ${client_I18N} DESTINATION i18n) + endif() + + # we may not add MACOSX_BUNDLE here, if not building one + add_executable(nextcloud WIN32 main.cpp ${client_version} ${client_manifest} ${APP_ICON}) + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_EXECUTABLE}" + ) +else() + # set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. + set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns") + + # we must add MACOSX_BUNDLE only if building a bundle + add_executable(nextcloud WIN32 MACOSX_BUNDLE main.cpp ${APP_ICON}) + + if (BUILD_OWNCLOUD_OSX_BUNDLE) + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_NAME}") + else() + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_EXECUTABLE}") + endif() + + set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations) + install(FILES ${client_I18N} DESTINATION ${QM_DIR}) + get_target_property(_qmake Qt::qmake LOCATION) + execute_process(COMMAND ${_qmake} -query QT_INSTALL_TRANSLATIONS + OUTPUT_VARIABLE QT_TRANSLATIONS_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) + install(FILES ${qt_I18N} DESTINATION ${QM_DIR}) + file(GLOB qtbase_I18N ${QT_TRANSLATIONS_DIR}/qtbase_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) + install(FILES ${qtbase_I18N} DESTINATION ${QM_DIR}) + file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm) + install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR}) +endif() + +IF(BUILD_UPDATER) + add_library(updater STATIC ${updater_SRCS}) + target_link_libraries(updater Nextcloud::sync ${updater_DEPS} Qt::Widgets Qt::Svg Qt::Network Qt::Xml) + target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + set_target_properties(updater PROPERTIES AUTOMOC ON) + target_link_libraries(nextcloudCore PUBLIC updater) +endif() + +set_target_properties(nextcloud PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} +) + +target_link_libraries(nextcloud PRIVATE nextcloudCore) + +if(TARGET PkgConfig::CLOUDPROVIDERS) + message("Building with libcloudproviderssupport") + target_sources(nextcloudCore PRIVATE cloudproviders/cloudprovidermanager.cpp cloudproviders/cloudproviderwrapper.cpp) + + string(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR) + string(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}") + string(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}") + if(NOT DBUS_PREFIX) + set(DBUS_PREFIX "com") + endif(NOT DBUS_PREFIX) + set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}") + set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}") + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cloudproviders/cloudproviderconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/cloudproviderconfig.h) + target_compile_definitions(nextcloudCore PUBLIC -DWITH_LIBCLOUDPROVIDERS) + target_link_libraries(nextcloudCore + PRIVATE + PkgConfig::CLOUDPROVIDERS + PkgConfig::GLIB2 + PkgConfig::GIO + ) + + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "Implements=org.freedesktop.CloudProviders\n") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "[org.freedesktop.CloudProviders]") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "BusName=${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "ObjectPath=${LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH}") + list(JOIN LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "\n" LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS) +endif() + +## handle DBUS for Fdo notifications +if( UNIX AND NOT APPLE ) + find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS DBus) + target_link_libraries(nextcloudCore PUBLIC Qt::DBus) + target_compile_definitions(nextcloudCore PUBLIC "USE_FDO_NOTIFICATIONS") +endif() + +if (APPLE) + if (BUILD_FILE_PROVIDER_MODULE) + target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications -framework FileProvider") + else() + target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications") + endif() +endif() + +install(TARGETS nextcloud + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + BUNDLE DESTINATION "." + ) + +if (WIN32) + install(FILES $ DESTINATION bin OPTIONAL) +endif() + +# FIXME: The following lines are dup in src/gui and src/cmd because it needs to be done after both are installed +#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unnecessary +# currently it needs to be done because the code right above needs to be executed no matter +# if building a bundle or not and the install_qt4_executable needs to be called afterwards +# +# OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option +if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) + get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) + get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY) + find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}") + + set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd) + + if(CMAKE_BUILD_TYPE MATCHES Debug) + set(NO_STRIP "-no-strip") + else() + set(NO_STRIP "") + endif() + + add_custom_command(TARGET nextcloud POST_BUILD + COMMAND "${MACDEPLOYQT_EXECUTABLE}" + "$/../.." + -qmldir=${CMAKE_SOURCE_DIR}/src/gui \ No newline at end of file diff --git a/src/gui/ConflictDelegate.qml b/src/gui/ConflictDelegate.qml index 09318d46cea0d..36a777e85e9e5 100644 --- a/src/gui/ConflictDelegate.qml +++ b/src/gui/ConflictDelegate.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import "./tray" Item { diff --git a/src/gui/EmojiPicker.qml b/src/gui/EmojiPicker.qml index f49410d6ea399..87f490c0f11e8 100644 --- a/src/gui/EmojiPicker.qml +++ b/src/gui/EmojiPicker.qml @@ -8,7 +8,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style -import com.nextcloud.desktopclient 1.0 as NC +import com.ionos.hidrivenext.desktopclient as NC import "./tray" ColumnLayout { diff --git a/src/gui/ResolveConflictsDialog.qml b/src/gui/ResolveConflictsDialog.qml index dd55598d86d30..91a53776aeef4 100644 --- a/src/gui/ResolveConflictsDialog.qml +++ b/src/gui/ResolveConflictsDialog.qml @@ -10,7 +10,7 @@ import QtQuick.Layouts import QtQuick.Controls import QtQml.Models import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import "./tray" ApplicationWindow { @@ -138,15 +138,26 @@ ApplicationWindow { } DialogButtonBox { + id: buttonBox Layout.fillWidth: true - Button { + readonly property int pixelSize: Style.sesFontPixelSize + readonly property int fontWeight: Style.sesFontNormalWeight + + PrimaryPillButton { + font.pixelSize: pixelSize + font.weight: fontWeight text: qsTr("Resolve conflicts") - DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole + + onClicked: buttonBox.onAccepted() } - Button { + + SecondaryPillButton { + font.pixelSize: pixelSize + font.weight: fontWeight text: qsTr("Cancel") - DialogButtonBox.buttonRole: DialogButtonBox.RejectRole + + onClicked: buttonBox.onRejected() } onAccepted: function() { @@ -159,10 +170,4 @@ ApplicationWindow { } } } - - Rectangle { - color: palette.base - anchors.fill: parent - z: 1 - } } diff --git a/src/gui/SesComponents/SesErrorBox.qml b/src/gui/SesComponents/SesErrorBox.qml new file mode 100644 index 0000000000000..6a0d6ea2ba8a4 --- /dev/null +++ b/src/gui/SesComponents/SesErrorBox.qml @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2021 by Felix Weilbach + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 + +import Style 1.0 +import "../tray/" + +Item { + id: errorBox + + property string text: "" + + implicitHeight: errorMessageLayout.implicitHeight + (2 * Style.standardSpacing) + + Rectangle { + anchors.fill: parent + border.color: Style.sesErrorBoxBorder + border.width: Style.thickBorderWidth + radius: Style.sesCornerRadius + } + + GridLayout { + id: errorMessageLayout + + anchors.fill: parent + anchors.margins: Style.standardSpacing + anchors.leftMargin: Style.standardSpacing + solidStripe.width + + columns: 2 + + Image { + source: Style.sesErrorBoxIcon + width: 24 + height: 24 + Layout.rightMargin: Style.standardSpacing + } + + EnforcedPlainTextLabel { + Layout.fillWidth: true + + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontBoldWeight + + text: qsTr("Error") + color: Style.sesErrorBoxText + } + + EnforcedPlainTextLabel { + id: errorMessage + + Layout.fillWidth: true + Layout.fillHeight: true + Layout.columnSpan: 2 + + wrapMode: Text.WordWrap + text: errorBox.text + + font.pixelSize: Style.sesFontErrortextPixelSize + font.weight: Style.sesFontNormalWeight + } + } +} diff --git a/src/gui/SesComponents/SesTrayHeader.qml b/src/gui/SesComponents/SesTrayHeader.qml new file mode 100644 index 0000000000000..94d3e7e23babf --- /dev/null +++ b/src/gui/SesComponents/SesTrayHeader.qml @@ -0,0 +1,70 @@ +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform 1.1 as NativeDialogs + +import "../" +import "../filedetails/" +import "../tray/" + +// Custom qml modules are in /theme (and included by resources.qrc) +import Style 1.0 + +import com.ionos.hidrivenext.desktopclient + + +Rectangle { + + height: Style.sesTrayHeaderHeight + Style.sesHeaderTopMargin * 2 + color: Style.sesBackgroundColor + radius: 0.0 + clip: true + + RowLayout { + id: trayWindowHeaderLayout + + anchors.fill: parent + anchors.leftMargin: Style.sesTrayHeaderMargin + anchors.rightMargin: Style.sesTrayHeaderMargin + anchors.topMargin: Style.sesHeaderTopMargin + anchors.bottomMargin: Style.sesHeaderTopMargin + + TrayWindowAccountMenu{ + id: currentAccountHeaderButton + Layout.preferredWidth: Style.sesAccountButtonWidth + Layout.preferredHeight: Style.sesAccountButtonHeight + } + + HeaderButton { + id: trayWindowWebsiteButton + + icon.source: Style.sesWebsiteIcon + icon.color: Style.sesIconColor + onClicked: UserModel.openCurrentAccountServer() + + text: qsTr("Website") + + Layout.rightMargin: 2 + + Accessible.role: Accessible.Button + Accessible.name: qsTr("Open Nextcloud in browser") + Accessible.onPressAction: trayWindowWebsiteButton.clicked() + } + + TrayFoldersMenuButton { + id: openLocalFolderButton + + visible: currentUser.hasLocalFolder + currentUser: UserModel.currentUser + + onClicked: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() + + onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder() + + Accessible.role: Accessible.Graphic + Accessible.name: qsTr("Open local or group folders") + Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() + } + } +} // Rectangle trayWindowHeaderBackground diff --git a/src/gui/SesComponents/syncdirvalidation.cpp b/src/gui/SesComponents/syncdirvalidation.cpp new file mode 100644 index 0000000000000..3357866fb897f --- /dev/null +++ b/src/gui/SesComponents/syncdirvalidation.cpp @@ -0,0 +1,53 @@ +#include "syncdirvalidation.h" +#include +#include +#include "logger.h" + +#ifdef Q_OS_WIN +bool SyncDirValidator::isValidDir() { + QString appDataPath = SyncDirValidator::appDataPath().replace("/", QDir::separator()); + QStringList pathComponents = _path.replace("/", QDir::separator()).split(QDir::separator(), Qt::SkipEmptyParts); + QStringList appDataPathComponents = appDataPath.split(QDir::separator(), Qt::SkipEmptyParts); + /* + If path is shorter than appDataPath and one path component is different, then path cannot be a real subset and is sowith valid + If appDataPath is shorter than path, we need to check, if the last appDataPath component is different from the related path component, then path is valid. + Otherwise path is a subpath from appDataPath and invalid + */ + for(int i = 0; i < qMin(pathComponents.size(), appDataPathComponents.size()); i++) { + if(pathComponents[i] != appDataPathComponents[i]) { + return true; + } + } + return false; + +} + +QString SyncDirValidator::message() { + return QObject::tr("The directory %1 cannot be part of your sync directory. Please choose another folder.").arg(_path.replace("/", QDir::separator())); +} + +QString SyncDirValidator::appDataPath() { + //Path: AppData/Roaming/ + QString appDataRoamingApplicationNamePath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); + QDir appDataRoamingApplicationNameDir(appDataRoamingApplicationNamePath); + appDataRoamingApplicationNameDir.cdUp(); + appDataRoamingApplicationNameDir.cdUp(); + QString appDataPath = appDataRoamingApplicationNameDir.absolutePath(); + return appDataPath; +} + +#else + +bool SyncDirValidator::isValidDir() { + return true; +} + +QString SyncDirValidator::message() { + return ""; +} + +QString SyncDirValidator::appDataPath() { + return ""; +} + +#endif \ No newline at end of file diff --git a/src/gui/SesComponents/syncdirvalidation.h b/src/gui/SesComponents/syncdirvalidation.h new file mode 100644 index 0000000000000..a91812da85775 --- /dev/null +++ b/src/gui/SesComponents/syncdirvalidation.h @@ -0,0 +1,19 @@ +#ifndef SYNCDIRVALIDATION_H +#define SYNCDIRVALIDATION_H + +#include + +class SyncDirValidator { +public: + SyncDirValidator(const QString &path) : _path(path) {} + + bool isValidDir(); + QString message(); + +private: + QString appDataPath(); + QString _path; +}; + + +#endif // SYNCDIRVALIDATION_H \ No newline at end of file diff --git a/src/gui/UserStatusSelectorPage.qml b/src/gui/UserStatusSelectorPage.qml index 0f297f9796ea0..59cf7f9637da5 100644 --- a/src/gui/UserStatusSelectorPage.qml +++ b/src/gui/UserStatusSelectorPage.qml @@ -8,7 +8,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient as NC Page { id: page diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 171c850e79c90..8b517189cc3e7 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -12,6 +12,9 @@ #include "ui_accountsettings.h" #include "theme.h" +#include "whitelabeltheme.h" +#include "buttonstyle.h" +#include "account.h" #include "foldercreationdialog.h" #include "folderman.h" #include "folderwizard.h" @@ -57,8 +60,6 @@ #include "macOS/fileprovider.h" #endif -#include "account.h" - namespace { constexpr auto propertyFolder = "folder"; constexpr auto propertyPath = "path"; @@ -75,15 +76,13 @@ class AccountSettings; Q_LOGGING_CATEGORY(lcAccountSettings, "nextcloud.gui.account.settings", QtInfoMsg) -static const char progressBarStyleC[] = - "QProgressBar {" - "border: 1px solid grey;" - "border-radius: 5px;" - "text-align: center;" - "}" - "QProgressBar::chunk {" - "background-color: %1; width: 1px;" - "}"; +const QString progressBarStyle() +{ + return QStringLiteral( + "QProgressBar::horizontal { border: 1px solid grey; border-radius: 5px; text-align: center; background-color: %1; }" + "QProgressBar::chunk { background-color: %2; width: 1px; }" + ); +} void showEnableE2eeWithVirtualFilesWarningDialog(std::function onAccept) { @@ -156,7 +155,7 @@ class MouseCursorChanger : public QObject const auto index = folderList->indexAt(pos); if (model->classify(index) == FolderStatusModel::RootFolder && (FolderStatusDelegate::errorsListRect(folderList->visualRect(index)).contains(pos) || - FolderStatusDelegate::optionsButtonRect(folderList->visualRect(index),folderList->layoutDirection()).contains(pos))) { + FolderStatusDelegate::optionsButtonRect(folderList->visualRect(index), folderList->layoutDirection()).contains(pos))) { shape = Qt::PointingHandCursor; } folderList->setCursor(shape); @@ -173,6 +172,8 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) , _userInfo(accountState, false, true) { _ui->setupUi(this); + this->setAutoFillBackground(true); + setPalette(QPalette(QPalette::Window, WLTheme.dialogBackgroundColor())); _model->setAccountState(_accountState); _model->setParent(this); @@ -182,6 +183,8 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) // Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching) connect(this, &AccountSettings::styleChanged, delegate, &FolderStatusDelegate::slotStyleChanged); + _ui->_folderList->setFont(WLTheme.settingsFontDefault()); + _ui->_folderList->header()->hide(); _ui->_folderList->setItemDelegate(delegate); _ui->_folderList->setModel(_model); @@ -202,6 +205,16 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) fpSettingsLayout->setContentsMargins(0, 0, 0, 0); fpSettingsLayout->addWidget(fpSettingsWidget); fileProviderTab->setLayout(fpSettingsLayout); + + _ui->tabWidget->setStyleSheet(QStringLiteral("QTabWidget::pane { background-color: %1; }").arg(WLTheme.white())); + _ui->tabWidget->tabBar()->setStyleSheet("QTabBar::tab {\ + color: #000000;\ + }\ + QTabBar::tab:selected {\ + color: #ffffff;\ + }"); + } else { + disguiseTabWidget(); } #else const auto tabWidget = _ui->tabWidget; @@ -219,6 +232,15 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) connectionSettingsLayout->addWidget(networkSettings); connectionSettingsTab->setLayout(connectionSettingsLayout); + const auto connectionSettingsTabIndex = _ui->tabWidget->indexOf(connectionSettingsTab); + if(connectionSettingsTabIndex >= 0){ + _ui->tabWidget->removeTab(connectionSettingsTabIndex); + } + _ui->tabWidget->setCurrentIndex(0); +#ifndef BUILD_FILE_PROVIDER_MODULE + _ui->tabWidget->tabBar()->hide(); +#endif + const auto mouseCursorChanger = new MouseCursorChanger(this); mouseCursorChanger->folderList = _ui->_folderList; mouseCursorChanger->model = _model; @@ -226,6 +248,11 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) _ui->_folderList->setAttribute(Qt::WA_Hover, true); _ui->_folderList->installEventFilter(mouseCursorChanger); +#ifdef Q_OS_MAC + _ui->expandMemoryButton->setAutoDefault(false); + _ui->expandMemoryButton->setFocusPolicy(Qt::NoFocus); +#endif + connect(this, &AccountSettings::removeAccountFolders, AccountManager::instance(), &AccountManager::removeAccountFolders); connect(_ui->_folderList, &QWidget::customContextMenuRequested, @@ -268,11 +295,6 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) connect(FolderMan::instance(), &FolderMan::folderListChanged, _model, &FolderStatusModel::resetFolders); connect(this, &AccountSettings::folderChanged, _model, &FolderStatusModel::resetFolders); - - // quotaProgressBar style now set in customizeStyle() - /*QColor color = palette().highlight().color(); - _ui->quotaProgressBar->setStyleSheet(QString::fromLatin1(progressBarStyleC).arg(color.name()));*/ - // Connect E2E stuff if (_accountState->isConnected()) { setupE2eEncryption(); @@ -289,6 +311,8 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) connect(&_userInfo, &UserInfo::quotaUpdated, this, &AccountSettings::slotUpdateQuota); + connect(_ui->expandMemoryButton, &QAbstractButton::clicked, this, &AccountSettings::slotExpandMemoryClicked); + customizeStyle(); connect(_accountState->account()->e2e(), &ClientSideEncryption::startingDiscoveryEncryptionUsbToken, @@ -555,10 +579,12 @@ void AccountSettings::openIgnoredFilesDialog(const QString & absFolderPath) const QString ignoreFile{absFolderPath + ".sync-exclude.lst"}; const auto layout = new QVBoxLayout(); const auto ignoreListWidget = new IgnoreListTableWidget(this); + ignoreListWidget->setFont(WLTheme.settingsFont()); ignoreListWidget->readIgnoreFile(ignoreFile); layout->addWidget(ignoreListWidget); const auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + customizeButtonBox(buttonBox); layout->addWidget(buttonBox); const auto dialog = new QDialog(); @@ -572,9 +598,28 @@ void AccountSettings::openIgnoredFilesDialog(const QString & absFolderPath) }); connect(buttonBox, &QDialogButtonBox::rejected, dialog, &QDialog::close); + dialog->setPalette(QPalette(QPalette::Window, WLTheme.white())); + dialog->setWindowFlag(Qt::WindowContextHelpButtonHint, false); + dialog->open(); } +void AccountSettings::customizeButtonBox(QDialogButtonBox *buttonBox){ + buttonBox->layout()->setSpacing(16); + buttonBox->setContentsMargins(0,0,11,10); + + const auto okButton = buttonBox->button(QDialogButtonBox::Ok); + + okButton->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + okButton->setMinimumSize(80, 40); + + buttonBox->button(QDialogButtonBox::Cancel)->setMinimumSize(80, 40); + +#if defined(Q_OS_MAC) + buttonBox->layout()->setSpacing(32); +#endif +} + void AccountSettings::slotSubfolderContextMenuRequested(const QModelIndex& index, const QPoint& pos) { Q_UNUSED(pos); @@ -637,11 +682,63 @@ void AccountSettings::slotSubfolderContextMenuRequested(const QModelIndex& index ac = availabilityMenu->addAction(Utility::vfsFreeSpaceActionText()); connect(ac, &QAction::triggered, this, [this, folder, path] { slotSetSubFolderAvailability(folder, path, PinState::OnlineOnly); }); + + styleCustomContextMenu(availabilityMenu); } + styleCustomContextMenu(&menu); + menu.exec(QCursor::pos()); } +void AccountSettings::styleCustomContextMenu(QMenu *menu) const +{ + menu->setWindowFlags(menu->windowFlags() | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint); + + menu->setAttribute(Qt::WA_TranslucentBackground); + + menu->setStyleSheet( + QStringLiteral( + "QMenu {" + "background-color: %1; " + "border: 1px solid %2; " + "padding: 15px; " + "border-radius: %7; " + "font-family: %8; " + "font-size: %9; " + "font-weight: %10; " + "}" + "QMenu::item {" + "background-color: transparent;" + "padding: 16px 18px; " + "color: %3; " + "border-radius: 8px; " + "}" + "QMenu::item:selected {" + "background-color: %5; " + "color: %3; " + "border-radius: 8px; " + "}" + "QMenu::item:pressed {" + "background-color: %6; " + "color: %4; " + "border-radius: 8px; " + "}" + ).arg( + WLTheme.white(), + WLTheme.menuBorderColor(), + WLTheme.menuTextColor(), + WLTheme.menuPressedTextColor(), + WLTheme.menuSelectedItemColor(), + WLTheme.menuPressedItemColor(), + WLTheme.menuBorderRadius(), + WLTheme.contextMenuFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight() + ) + ); +} + void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) { const auto treeView = _ui->_folderList; @@ -672,6 +769,13 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) const auto menu = new QMenu(treeView); + connect(menu, &QMenu::aboutToHide, [treeView, index]() { + auto* delegate = qobject_cast(treeView->itemDelegate(index)); + delegate->MousePos = QPoint(-1, -1); + treeView->update(); + }); + + menu->setAttribute(Qt::WA_DeleteOnClose); auto ac = menu->addAction(tr("Open folder")); @@ -718,6 +822,8 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) ac = menu->addAction(tr("Disable virtual file support …")); connect(ac, &QAction::triggered, this, &AccountSettings::slotDisableVfsCurrentFolder); ac->setDisabled(Theme::instance()->enforceVirtualFilesSyncFolder()); + + styleCustomContextMenu(availabilityMenu); } if (const auto mode = bestAvailableVfsMode(); @@ -732,6 +838,7 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) } } + styleCustomContextMenu(menu); menu->popup(treeView->mapToGlobal(pos)); } @@ -740,16 +847,6 @@ void AccountSettings::slotFolderListClicked(const QModelIndex &indx) { if (indx.data(FolderStatusDelegate::AddButton).toBool()) { // "Add Folder Sync Connection" - const auto treeView = _ui->_folderList; - const auto pos = treeView->mapFromGlobal(QCursor::pos()); - QStyleOptionViewItem opt; - opt.initFrom(treeView); - const auto btnRect = treeView->visualRect(indx); - const auto btnSize = treeView->itemDelegateForIndex(indx)->sizeHint(opt, indx); - const auto actual = QStyle::visualRect(opt.direction, btnRect, QRect(btnRect.topLeft(), btnSize)); - if (!actual.contains(pos)) { - return; - } if (indx.flags() & Qt::ItemIsEnabled) { slotAddFolder(); @@ -884,8 +981,22 @@ void AccountSettings::slotRemoveCurrentFolder() .arg(shortGuiLocalPath), QMessageBox::NoButton, this); + + messageBox->setStyleSheet( + QStringLiteral("QMessageBox QLabel { %1; } QDialog { background-color: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.dialogBackgroundColor() + ) + ); + messageBox->setAttribute(Qt::WA_DeleteOnClose); const auto yesButton = messageBox->addButton(tr("Remove Folder Sync Connection"), QMessageBox::YesRole); + yesButton->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); messageBox->addButton(tr("Cancel"), QMessageBox::NoRole); connect(messageBox, &QMessageBox::finished, this, [messageBox, yesButton, folder, row, this]{ if (messageBox->clickedButton() == yesButton) { @@ -1005,7 +1116,22 @@ void AccountSettings::slotDisableVfsCurrentFolder() "will become available again." "\n\n" "This action will abort any currently running synchronization.")); + + msgBox->setStyleSheet(QStringLiteral( + "QMessageBox QLabel { %1 background-color: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.white() + ) + ); + const auto acceptButton = msgBox->addButton(tr("Disable support"), QMessageBox::AcceptRole); + acceptButton->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + msgBox->addButton(tr("Cancel"), QMessageBox::RejectRole); connect(msgBox, &QMessageBox::finished, msgBox, [this, msgBox, folder, acceptButton] { msgBox->deleteLater(); @@ -1154,6 +1280,9 @@ void AccountSettings::migrateCertificateForAccount(const AccountPtr &account) void AccountSettings::showConnectionLabel(const QString &message, QStringList errors) { + + #ifndef IONOS_BUILD + //SES-4 Removed const auto errStyle = QLatin1String("color:#ffffff; background-color:#bb4d4d;padding:5px;" "border-width: 1px; border-style: solid; border-color: #aaaaaa;" "border-radius:5px;"); @@ -1167,12 +1296,13 @@ void AccountSettings::showConnectionLabel(const QString &message, QStringList er errors.prepend(message); auto userFriendlyMsg = errors.join(QLatin1String("
")); qCDebug(lcAccountSettings) << userFriendlyMsg; - Theme::replaceLinkColorString(userFriendlyMsg, QColor(0xc1c8e6)); + Theme::replaceLinkColorString(userFriendlyMsg, QColor("#c1c8e6")); _ui->connectLabel->setText(userFriendlyMsg); _ui->connectLabel->setToolTip({}); _ui->connectLabel->setStyleSheet(errStyle); } - _ui->accountStatus->setVisible(!message.isEmpty()); + #endif + _ui->accountStatus->setVisible(false); } void AccountSettings::slotEnableCurrentFolder(bool terminate) @@ -1199,9 +1329,30 @@ void AccountSettings::slotEnableCurrentFolder(bool terminate) QMessageBox::Yes | QMessageBox::No, this); msgbox->setAttribute(Qt::WA_DeleteOnClose); msgbox->setDefaultButton(QMessageBox::Yes); + msgbox->defaultButton()->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + + QHBoxLayout *buttonLayout = msgbox->findChild(); + buttonLayout->setSpacing(8); + +#ifdef Q_OS_MAC + buttonLayout->setSpacing(24); +#endif + connect(msgbox, &QMessageBox::accepted, this, [this]{ slotEnableCurrentFolder(true); }); + + msgbox->setStyleSheet( + QStringLiteral("QMessageBox QLabel { %1; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + msgbox->open(); return; } @@ -1271,6 +1422,7 @@ void AccountSettings::slotUpdateQuota(qint64 total, qint64 used) _ui->quotaInfoLabel->setText(tr("%1 of %2 in use").arg(usedStr, totalStr)); _ui->quotaInfoLabel->setToolTip(toolTip); _ui->quotaProgressBar->setToolTip(toolTip); + _ui->quotaInfo2Label->setText(tr("Storage space %1% occupied").arg(percentStr)); } else { _ui->quotaProgressBar->setVisible(false); _ui->quotaInfoLabel->setToolTip({}); @@ -1446,6 +1598,11 @@ void AccountSettings::slotHideSelectiveSyncWidget() _ui->selectiveSyncLabel->hide(); } +void AccountSettings::slotExpandMemoryClicked() +{ + QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0057"))); +} + void AccountSettings::slotSelectiveSyncChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles) @@ -1628,9 +1785,9 @@ void AccountSettings::refreshSelectiveSyncStatus() QString infoString; if (!unsyncedFoldersString.isEmpty()) { - infoString += !cfg.confirmExternalStorage() ? tr("There are folders that were not synchronized because they are too big: ") - : !cfg.newBigFolderSizeLimit().first ? tr("There are folders that were not synchronized because they are external storages: ") - : tr("There are folders that were not synchronized because they are too big or external storages: "); + infoString += !cfg.confirmExternalStorage() ? tr("There are folders that were not synchronized because they are too big:") + " " + : !cfg.newBigFolderSizeLimit().first ? tr("There are folders that were not synchronized because they are external storages:") + " " + : tr("There are folders that were not synchronized because they are too big or external storages:") + " "; infoString += unsyncedFoldersString; } @@ -1678,12 +1835,51 @@ void AccountSettings::customizeStyle() _ui->connectLabel->setText(msg); const auto color = palette().highlight().color(); - _ui->quotaProgressBar->setStyleSheet(QString::fromLatin1(progressBarStyleC).arg(color.name())); + _ui->quotaProgressBar->setStyleSheet(progressBarStyle().arg(WLTheme.dialogBackgroundColor(), WLTheme.quotaProgressColor())); + + _ui->quotaInfoLabel->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor() + ) + ); + + _ui->quotaInfo2Label->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsSmallTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ); + + _ui->_folderList->setStyleSheet( + QStringLiteral("background: %1; %2;").arg( + WLTheme.white(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + +#if defined(Q_OS_MAC) + _ui->selectiveSyncLabel->setStyleSheet(QString("color: %1;").arg(WLTheme.black())); + _ui->horizontalLayout->setSpacing(16); +#endif + } void AccountSettings::setupE2eEncryption() { - connect(_accountState->account()->e2e(), &ClientSideEncryption::initializationFinished, this, &AccountSettings::slotPossiblyUnblacklistE2EeFoldersAndRestartSync); + connect(_accountState->account()->e2e(), + &ClientSideEncryption::initializationFinished, + this, + &AccountSettings::slotPossiblyUnblacklistE2EeFoldersAndRestartSync); if (_accountState->account()->e2e()->isInitialized()) { slotE2eEncryptionMnemonicReady(); @@ -1758,6 +1954,14 @@ void AccountSettings::setupE2eEncryptionMessage() connect(actionSetupE2e, &QAction::triggered, this, &AccountSettings::slotE2eEncryptionGenerateKeys); } +void AccountSettings::disguiseTabWidget() const +{ + // Ensure all elements of the tab widget are hidden. + // Document mode lets the child view take up the whole view. + _ui->tabWidget->setDocumentMode(true); + _ui->tabWidget->tabBar()->hide(); +} + } // namespace OCC #include "accountsettings.moc" diff --git a/src/gui/accountsettings.h b/src/gui/accountsettings.h index 6db64c3f7e229..6fde0dcb95b7e 100644 --- a/src/gui/accountsettings.h +++ b/src/gui/accountsettings.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "folder.h" #include "userinfo.h" @@ -126,8 +127,10 @@ private slots: void forgetE2eEncryption(); void checkClientSideEncryptionState(); void removeActionFromEncryptionMessage(const QString &actionId); + void slotExpandMemoryClicked(); private: + void styleCustomContextMenu(QMenu *menu) const; bool event(QEvent *) override; QAction *addActionToEncryptionMessage(const QString &actionTitle, const QString &actionId); @@ -136,6 +139,10 @@ private slots: /// Returns the alias of the selected folder, empty string if none [[nodiscard]] QString selectedFolderAlias() const; + void disguiseTabWidget() const; + + void customizeButtonBox(QDialogButtonBox *buttonBox); + Ui::AccountSettings *_ui; FolderStatusModel *_model; diff --git a/src/gui/accountsettings.ui b/src/gui/accountsettings.ui index 2db413221b169..88e9c17168390 100644 --- a/src/gui/accountsettings.ui +++ b/src/gui/accountsettings.ui @@ -13,9 +13,21 @@ Form - + + 32 + + + 32 + + + 32 + + + 32 + + - + @@ -38,6 +50,8 @@ + + @@ -52,7 +66,7 @@ 16777215 - 7 + 8 @@ -62,6 +76,43 @@ -1 + false + + + + + + + + 0 + 0 + + + + Expand Memory + + + + + + + + + + 0 + 0 + + + + + + + Storage space: … + + + Qt::PlainText + + false @@ -263,7 +314,7 @@ QTabWidget::Rounded - 0 + 1 diff --git a/src/gui/addcertificatedialog.cpp b/src/gui/addcertificatedialog.cpp index 4721e2cccebe8..c21335bee41a9 100644 --- a/src/gui/addcertificatedialog.cpp +++ b/src/gui/addcertificatedialog.cpp @@ -16,6 +16,7 @@ AddCertificateDialog::AddCertificateDialog(QWidget *parent) { ui->setupUi(this); ui->labelErrorCertif->setText(""); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); } AddCertificateDialog::~AddCertificateDialog() diff --git a/src/gui/application.cpp b/src/gui/application.cpp index 1454d93040963..f28de29bd4887 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -29,6 +29,8 @@ #include "theme.h" #include "updatechannel.h" +#include "ga4/datacollectionwrapper.h" + #if defined(BUILD_UPDATER) #include "updater/ocupdater.h" #endif @@ -485,6 +487,30 @@ Application::~Application() AccountManager::instance()->shutdown(); } +void Application::startTracking() +{ + DataCollectionWrapper dcw; + dcw.initDataCollection(); + AccountPtr account = AccountManager::instance()->accounts().first()->account(); + QByteArray byteArray = account->credentials()->user().toUtf8(); // Convert the input string to a byte array + QByteArray hash = QCryptographicHash::hash(byteArray, QCryptographicHash::Sha256); // Perform the hash + + ConfigFile cfg; + dcw.setSendData(cfg.sendData()); + dcw.setAccount(account); + + dcw.setClientID(hash.toHex()); + dcw.login(); +} + +void Application::stopTracking() +{ + DataCollectionWrapper dcw; + dcw.accountRemoved(); + dcw.setClientID(QString()); + dcw.setAccount(nullptr); +} + void Application::setupAccountsAndFolders() { _folderManager.reset(new FolderMan); @@ -636,6 +662,14 @@ void Application::slotAccountStateRemoved(AccountState *accountState) _folderManager.data(), &FolderMan::slotServerVersionChanged); } + if(AccountManager::instance()->accounts().isEmpty()) { + stopTracking(); + } + else + { + startTracking(); + } + // if there is no more account, show the wizard. if (_gui && AccountManager::instance()->accounts().isEmpty()) { // allow to add a new account if there is non any more. Always think @@ -657,6 +691,8 @@ void Application::slotAccountStateAdded(AccountState *accountState) connect(accountState->account().data(), &Account::serverVersionChanged, _folderManager.data(), &FolderMan::slotServerVersionChanged); + startTracking(); + _gui->slotTrayMessageIfServerUnsupported(accountState->account()); } @@ -741,9 +777,9 @@ void Application::setupLogging() logger->setLogDebug(true); #endif - logger->enterNextLogFile(QStringLiteral("nextcloud.log"), OCC::Logger::LogType::Log); + logger->enterNextLogFile(QStringLiteral("hidrivenext.log"), OCC::Logger::LogType::Log); logger->enterNextLogFile(QStringLiteral("permanent_delete.log"), OCC::Logger::LogType::DeleteLog); - + qCInfo(lcApplication) << "##################" << _theme->appName() << "locale:" << QLocale::system().name() << "ui_lang:" << property("ui_lang") diff --git a/src/gui/application.h b/src/gui/application.h index caba9df0e893f..970d34e0bffda 100644 --- a/src/gui/application.h +++ b/src/gui/application.h @@ -97,7 +97,8 @@ protected slots: private: void setHelp(); - + void startTracking(); + void stopTracking(); void handleEditLocallyFromOptions(); AccountManager::AccountsRestoreResult restoreLegacyAccount(); diff --git a/src/gui/authenticationdialog.cpp b/src/gui/authenticationdialog.cpp index de4a1e66cadb1..b371ca5de4a45 100644 --- a/src/gui/authenticationdialog.cpp +++ b/src/gui/authenticationdialog.cpp @@ -35,6 +35,7 @@ AuthenticationDialog::AuthenticationDialog(const QString &realm, const QString & connect(box, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(box, &QDialogButtonBox::rejected, this, &QDialog::reject); lay->addWidget(box); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); } QString AuthenticationDialog::user() const diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h new file mode 100644 index 0000000000000..79613bd07c42d --- /dev/null +++ b/src/gui/basetheme.h @@ -0,0 +1,526 @@ +#ifndef _BASETHEME_H +#define _BASETHEME_H + +#include +#include +#include "theme.h" + +namespace OCC { + +class BaseTheme : public QObject{ + Q_OBJECT + Q_PROPERTY(QString dialogBackgroundColor READ dialogBackgroundColor CONSTANT) + Q_PROPERTY(QString trayFontColor READ trayFontColor CONSTANT) + Q_PROPERTY(QString trayBorderColor READ trayBorderColor CONSTANT) + Q_PROPERTY(QString trayInputFieldBorderColor READ trayInputFieldBorderColor CONSTANT) + Q_PROPERTY(QString trayBackgroundColor READ trayBackgroundColor CONSTANT) + Q_PROPERTY(QString iconDarkColor READ iconDarkColor CONSTANT) + Q_PROPERTY(QString buttonIconColor READ buttonIconColor CONSTANT) + Q_PROPERTY(QString buttonHoveredColor READ buttonHoveredColor CONSTANT) + Q_PROPERTY(QString buttonPressedColor READ buttonPressedColor CONSTANT) + Q_PROPERTY(QString toolButtonHoveredColor READ toolButtonHoveredColor CONSTANT) + Q_PROPERTY(QString toolButtonPressedColor READ toolButtonPressedColor CONSTANT) + Q_PROPERTY(QString pillButtonPrimaryColor READ pillButtonPrimaryColor CONSTANT) + Q_PROPERTY(QString pillButtonSecondaryColor READ pillButtonSecondaryColor CONSTANT) + Q_PROPERTY(QString pillButtonBorderColor READ pillButtonBorderColor CONSTANT) + Q_PROPERTY(QString clipboardBackgroundColor READ clipboardBackgroundColor CONSTANT) + Q_PROPERTY(QString trayErrorBorderColor READ trayErrorBorderColor CONSTANT) + Q_PROPERTY(QString trayErrorTextColor READ trayErrorTextColor CONSTANT) + Q_PROPERTY(QString sesHeaderLogoIcon READ sesHeaderLogoIcon CONSTANT) + Q_PROPERTY(QString websiteIcon READ websiteIcon CONSTANT) + Q_PROPERTY(QString folderIcon READ folderIcon CONSTANT) + Q_PROPERTY(QString moreIcon READ moreIcon CONSTANT) + Q_PROPERTY(QString moreHoverIcon READ moreHoverIcon CONSTANT) + Q_PROPERTY(QString avatarIcon READ avatarIcon CONSTANT) + Q_PROPERTY(QString plusIcon READ plusIcon CONSTANT) + Q_PROPERTY(QString lightPlusIcon READ lightPlusIcon CONSTANT) + Q_PROPERTY(QString quitIcon READ quitIcon CONSTANT) + Q_PROPERTY(QString resumeIcon READ resumeIcon CONSTANT) + Q_PROPERTY(QString pauseIcon READ pauseIcon CONSTANT) + Q_PROPERTY(QString settingsIcon READ settingsIcon CONSTANT) + Q_PROPERTY(QString logoutIcon READ logoutIcon CONSTANT) + Q_PROPERTY(QString deleteIcon READ deleteIcon CONSTANT) + Q_PROPERTY(QString clipboardIcon READ clipboardIcon CONSTANT) + Q_PROPERTY(QString lightClipboardIcon READ lightClipboardIcon CONSTANT) + Q_PROPERTY(QString chevronIcon READ chevronIcon CONSTANT) + Q_PROPERTY(QString syncSuccessIcon READ syncSuccessIcon CONSTANT) + Q_PROPERTY(QString syncErrorIcon READ syncErrorIcon CONSTANT) + Q_PROPERTY(QString syncOfflineIcon READ syncOfflineIcon CONSTANT) + Q_PROPERTY(QString snackbarErrorIcon READ snackbarErrorIcon CONSTANT) + Q_PROPERTY(QString activityIcon READ activityIcon CONSTANT) + +public: + + virtual ~BaseTheme() = default; + + virtual QString themePrefix(QString context = "qml") const { + if (context == "qml") { + return QString("qrc:///client/theme/"); + } + return QString(Theme::themePrefix); + } + + virtual QString additionalThemePrefix() const { return QStringLiteral(""); } + + virtual QString avatarIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-settingsAvatar.svg"); + } + + virtual QString roundAvatarIcon() const { + return QString(Theme::themePrefix) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-settingsAvatarRound.svg"); + } + + virtual QString folderIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-folderIcon.svg"); + } + + virtual QString syncArrows() const { + return QString(Theme::themePrefix) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncArrows.svg"); + } + + virtual QString questionCircleIcon() const { + return QString(Theme::themePrefix) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-questionMark.svg"); + } + + virtual QString liveBackupPlusIcon() const { + return QString(Theme::themePrefix) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-addlivebackup.svg"); + } + + virtual QString websiteIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-website.svg"); + } + + virtual QString moreIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-more.svg"); + } + + virtual QString moreHoverIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-more-hover.svg"); + } + + virtual QString plusIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-darkPlus.svg"); + } + + virtual QString lightPlusIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-lightPlus.svg"); + } + + virtual QString quitIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-accountQuit.svg"); + } + + virtual QString resumeIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-accountResume.svg"); + } + + virtual QString pauseIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-accountPause.svg"); + } + + virtual QString settingsIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-settings.svg"); + } + + virtual QString logoutIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-accountLogout.svg"); + } + + virtual QString sesHeaderLogoIcon() const = 0; + + virtual QString deleteIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-accountDelete.svg"); + } + + virtual QString activityDeleteIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-activityDelete.svg"); + } + + virtual QString refreshIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-refresh.svg"); + } + + virtual QString infoIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-info.svg"); + } + + virtual QString clipboardIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-clipboard.svg"); + } + + virtual QString lightClipboardIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-lightClipboard.svg"); + } + + virtual QString chevronIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-chevron.svg"); + } + + virtual QString syncSuccessIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); + } + + virtual QString syncErrorIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); + } + + virtual QString syncOfflineIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-state-offline.svg"); + } + + virtual QString snackbarErrorIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-snackbar-error.svg"); + } + + virtual QString activityIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-activity.svg"); + } + + virtual int treeViewIconSize() const { + return 32; + } + + //Control Configuration: Sizes + virtual QString toolbarActionBorderRadius() const { + return "8px"; + } + + virtual QString toolbarSideMargin() const { + return "10px"; + } + + virtual int toolbarIconSize() const { + return 24; + } + + virtual QString buttonRadius() const { + return "4px"; + } + + virtual int buttonRadiusInt() const { + return 4; + } + + virtual QString buttonPadding() const { + return "10px"; + } + + virtual QString smallMargin() const { + return "8"; + } + + virtual int minimalSettingsDialogWidth() const { + return 740; + } + + virtual int wizardFixedWidth() const { + return 576; + } + + virtual int wizardFixedHeight() const { + return 704; + } + + virtual int LoginPageSpacer() const { + return 45; + } + + //Font Configuration + virtual QString settingsFont() const { + return "Segoe UI"; + } + + virtual QString contextMenuFont() const { + //TODO + return ":/client/fonts/OpenSans-Regular.ttf"; + } + + virtual QString settingsSmallTextSize() const { + return "14px"; + } + + virtual int settingsTextPixel() const { + return 16; + } + + virtual QString settingsTextSize() const { + return QString::number(settingsTextPixel()) + "px"; + } + + virtual int settingsTitlePixel() const { + return 20; + } + + virtual QString settingsTitleSize() const { + return QString::number(settingsTitlePixel()) + "px"; + } + + virtual int settingsBigTitlePixel() const { + return 24; + } + + virtual QString settingsBigTitleSize() const { + return QString::number(settingsBigTitlePixel()) + "px"; + } + + virtual QString onboardingTitle() const { + return "28px"; + } + + virtual QString settingsTextWeight() const { + return "400"; + } + + virtual QString settingsTitleWeight400() const { + return "400"; + } + + virtual QString settingsTitleWeight500() const { + return "500"; + } + + virtual QString settingsTitleWeight600() const { + return "600"; + } + + virtual QFont::Weight settingsTitleWeightDemiBold() const { + return QFont::DemiBold; + } + + virtual QFont::Weight settingsTitleWeightNormal() const { + return QFont::Normal; + } + + virtual QFont settingsFontDefault() const { + QFont defaultFont(settingsFont()); + defaultFont.setPixelSize(settingsTextPixel()); + defaultFont.setWeight(settingsTitleWeightNormal()); + return defaultFont; + } + + virtual QString titleColor() const { + return "#000000"; + } + + virtual QString folderWizardSubtitleColor() const { + return "#104996"; + } + + virtual QString folderWizardPathColor() const { + return "#97A3B4"; + } + + virtual QString loginWizardFontGrey() const { + return "#616161"; + } + + virtual QString loginWizardFontLightGrey() const { + return "#BDBDBD"; + } + + virtual QString trayFontColor() const { + return "#001B41"; + } + + virtual QString trayBorderColor() const { + return "#D7D7D7"; + } + + virtual QString trayInputFieldBorderColor() const { + return "#718095"; + } + + virtual QString fontConfigurationCss(QString font, QString size, QString weight, QString color) const { + return QString("font-family: %1; font-size: %2; font-weight: %3; color: %4; ").arg( + font, + size, + weight, + color); + } + + //Colors + virtual QString settingsLinkColor() const { + return "#02306A"; + } + + virtual QString quotaProgressColor() const { + return "#308cc6"; + } + + virtual QString syncProgressColor() const { + return "#359ada"; + } + + virtual QString buttonPrimaryColor() const { + return "#0F6CBD"; + } + + virtual QString buttonSecondaryColor() const { + return "#FFFFFF"; + } + + virtual QString buttonSecondaryBorderColor() const { + return "#D1D1D1"; + } + + virtual QString buttonDisabledColor() const { + return "#F0F0F0"; + } + + virtual QString buttonPrimaryHoverColor() const { + return "#115EA3"; + } + + virtual QString buttonSecondaryHoverColor() const { + return "#F5F5F5"; + } + + virtual QString buttonPrimaryPressedColor() const { + return "#0C3B5E"; + } + + virtual QString buttonSecondaryPressedColor() const { + return "#E0E0E0"; + } + + virtual QString buttonPrimaryFocusedBorderColor() const { + return "#000000"; + } + + virtual QString buttonSecondaryFocusedBorderColor() const { + return "#000000"; + } + + virtual QString buttonDisabledFontColor() const { + return "#BDBDBD"; + } + + virtual QString pillButtonPrimaryColor() const { + return "#0B2A63"; + } + + virtual QString pillButtonSecondaryColor() const { + return "#FFFFFF"; + } + + virtual QString pillButtonBorderColor() const { + return "#0B2A63"; + } + + virtual QString clipboardBackgroundColor() const { + return "#FFFFFF"; + } + + virtual QString white() const { + return "#FFFFFF"; + } + + virtual QString black() const { + return "#000000"; + } + + virtual QString dialogBackgroundColor() const { + return "#FAFAFA"; + } + + virtual QString trayBackgroundColor() const { + return "#FFFFFF"; + } + + virtual QString menuBorderColor() const { + return "#2E4360"; + } + + virtual QString menuTextColor() const { + return "#001B41"; + } + + virtual QString menuPressedTextColor() const { + return "#001B41"; + } + + virtual QString iconDarkColor() const { + return "#001B41"; + } + + virtual QString menuSelectedItemColor() const { + return "#F4F7FA"; + } + + virtual QString menuPressedItemColor() const { + return "#F4F7FA"; + } + + virtual QString menuBorderRadius() const { + return "16px"; + } + + virtual QString buttonIconColor() const { + return "#1474C4"; + } + + virtual QString buttonIconHoverColor() const { + return "#FFFFFF"; + } + + virtual QString buttonPressedColor() const { + return "#0B2A63"; + } + + virtual QString buttonHoveredColor() const { + return "#1474C4"; + } + + virtual QString toolButtonHoveredColor() const { + return "#DBEDF8"; + } + + virtual QString toolButtonPressedColor() const { + return "#95CAEB"; + } + + virtual QString errorColor() const { + return "#FDF3F4"; + } + + virtual QString errorBorderColor() const { + return "#EEACB2"; + } + + virtual QString trayErrorBorderColor() const { + return "#F50C00"; + } + + virtual QString trayErrorTextColor() const { + return "#C80A00"; + } + + virtual QString warningBorderColor() const { + return "#F4BFAB"; + } + + virtual QString warningColor() const { + return "#FDF6F3"; + } + + virtual QString successBorderColor() const { + return "#9FD89F"; + } + + virtual QString successColor() const { + return "#F1FAF1"; + } + + virtual QString infoBorderColor() const { + return "#11C7E6"; + } + + virtual QString infoColor() const { + return "#E6F9FC"; + } + + private: + inline static const QString _sesFolder = QStringLiteral("ses/"); +}; +} +#endif // _BASETHEME_H \ No newline at end of file diff --git a/src/gui/buttonstyle.h b/src/gui/buttonstyle.h new file mode 100644 index 0000000000000..087db1560af04 --- /dev/null +++ b/src/gui/buttonstyle.h @@ -0,0 +1,339 @@ + +#ifndef _BUTTONSTYLE_H +#define _BUTTONSTYLE_H + +#include "whitelabeltheme.h" +#include +#include + +namespace OCC{ + +enum class ButtonStyleName { + Primary, + Secondary, + MoreOptions, +}; +OCSYNC_EXPORT Q_NAMESPACE; +Q_ENUM_NS(ButtonStyleName); +} +Q_DECLARE_METATYPE(OCC::ButtonStyleName); + +namespace OCC{ +class ButtonStyle +{ +protected: + ButtonStyle() + { + qRegisterMetaType("OCC::ButtonStyleName"); + } + ~ButtonStyle() {} + +public: + + // Default + virtual QString buttonDefaultColor() const = 0; + virtual QString buttonDefaultBorderColor() const = 0; + // Hover + virtual QString buttonHoverColor() const = 0; + virtual QString buttonHoverBorderColor() const = 0; + // Pressed + virtual QString buttonPressedColor() const = 0; + virtual QString buttonPressedBorderColor() const = 0; + // Disabled + virtual QString buttonDisabledColor() const = 0; + virtual QString buttonDisabledBorderColor() const = 0; + // Focused + virtual QString buttonFocusedColor() const = 0; + virtual QString buttonFocusedBorderColor() const = 0; + // Font + virtual QString buttonDisabledFontColor() const = 0; + virtual QString buttonFontColor() const = 0; + //Icon + virtual QString buttonIconDefaultColor() const = 0; + virtual QString buttonIconHoverColor() const = 0; +}; + +class PrimaryButtonStyle : public ButtonStyle { +private: + PrimaryButtonStyle() + { + } + ~PrimaryButtonStyle() {} +public: + + PrimaryButtonStyle(PrimaryButtonStyle &other) = delete; + void operator=(const PrimaryButtonStyle &) = delete; + + static PrimaryButtonStyle& GetInstance() { + static PrimaryButtonStyle instance; + return instance; + } + + // Default + QString buttonDefaultColor() const override + { + return OCC::WLTheme.buttonPrimaryColor(); + } + + QString buttonDefaultBorderColor() const override + { + return OCC::WLTheme.buttonPrimaryColor(); + } + + //Hover + QString buttonHoverColor() const override + { + return OCC::WLTheme.buttonPrimaryHoverColor(); + } + + QString buttonHoverBorderColor() const override + { + return OCC::WLTheme.buttonPrimaryHoverColor(); + } + + // Pressed + QString buttonPressedColor() const override + { + return OCC::WLTheme.buttonPrimaryPressedColor(); + } + + QString buttonPressedBorderColor() const override + { + return OCC::WLTheme.buttonPrimaryPressedColor(); + } + + // Disabled + QString buttonDisabledColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + QString buttonDisabledBorderColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + // Focused + QString buttonFocusedColor() const override + { + return OCC::WLTheme.buttonPrimaryColor(); + } + + QString buttonFocusedBorderColor() const override + { + return OCC::WLTheme.buttonPrimaryFocusedBorderColor(); + } + + // Font + QString buttonDisabledFontColor() const override + { + return OCC::WLTheme.buttonDisabledFontColor(); + } + + QString buttonFontColor() const override + { + return OCC::WLTheme.white(); + } + + // Icon (Three Dots) + QString buttonIconDefaultColor() const override + { + return OCC::WLTheme.white(); + } + + QString buttonIconHoverColor() const override + { + return OCC::WLTheme.white(); + } +}; + +class SecondaryButtonStyle : public ButtonStyle { +protected: + SecondaryButtonStyle() + { + } + ~SecondaryButtonStyle() {} +public: + + SecondaryButtonStyle(SecondaryButtonStyle &other) = delete; + void operator=(const SecondaryButtonStyle &) = delete; + + static SecondaryButtonStyle& GetInstance() { + static SecondaryButtonStyle instance; + return instance; + } + + // Default + QString buttonDefaultColor() const override + { + return OCC::WLTheme.buttonSecondaryColor(); + } + + QString buttonDefaultBorderColor() const override + { + return OCC::WLTheme.buttonSecondaryBorderColor(); + } + + // Hover + QString buttonHoverColor() const override + { + return OCC::WLTheme.buttonSecondaryHoverColor(); + } + + QString buttonHoverBorderColor() const override + { + return OCC::WLTheme.buttonSecondaryBorderColor(); + } + + // Pressed + QString buttonPressedColor() const override + { + return OCC::WLTheme.buttonSecondaryPressedColor(); + } + + QString buttonPressedBorderColor() const override + { + return OCC::WLTheme.buttonSecondaryBorderColor(); + } + + // Disabled + QString buttonDisabledColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + QString buttonDisabledBorderColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + // Focused + QString buttonFocusedColor() const override + { + return OCC::WLTheme.white(); + } + + QString buttonFocusedBorderColor() const override + { + return OCC::WLTheme.buttonSecondaryFocusedBorderColor(); + } + + // Font + QString buttonDisabledFontColor() const override + { + return OCC::WLTheme.buttonDisabledFontColor(); + } + + QString buttonFontColor() const override + { + return OCC::WLTheme.black(); + } + + // Icon (Three Dots) + QString buttonIconDefaultColor() const override + { + return OCC::WLTheme.white(); + } + + QString buttonIconHoverColor() const override + { + return OCC::WLTheme.white(); + } +}; + +class MoreOptionsButtonStyle : public ButtonStyle { +protected: + MoreOptionsButtonStyle() + { + } + ~MoreOptionsButtonStyle() {} +public: + + MoreOptionsButtonStyle(MoreOptionsButtonStyle &other) = delete; + void operator=(const MoreOptionsButtonStyle &) = delete; + + static MoreOptionsButtonStyle& GetInstance() { + static MoreOptionsButtonStyle instance; + return instance; + } + + // Default + QString buttonDefaultColor() const override + { + return OCC::WLTheme.white(); + } + + QString buttonDefaultBorderColor() const override + { + return OCC::WLTheme.white(); + } + + // Hover + QString buttonHoverColor() const override + { + return OCC::WLTheme.buttonHoveredColor(); + } + + QString buttonHoverBorderColor() const override + { + return OCC::WLTheme.buttonHoveredColor(); + } + + // Pressed + QString buttonPressedColor() const override + { + return OCC::WLTheme.buttonPressedColor(); + } + + QString buttonPressedBorderColor() const override + { + return OCC::WLTheme.buttonPressedColor(); + } + + // Disabled + QString buttonDisabledColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + QString buttonDisabledBorderColor() const override + { + return OCC::WLTheme.buttonDisabledColor(); + } + + // Focused + QString buttonFocusedColor() const override + { + return OCC::WLTheme.white(); + } + + QString buttonFocusedBorderColor() const override + { + return OCC::WLTheme.black(); + } + + // Font + QString buttonDisabledFontColor() const override + { + return OCC::WLTheme.buttonDisabledFontColor(); + } + + QString buttonFontColor() const override + { + return OCC::WLTheme.black(); + } + + // Icon (Three Dots) + QString buttonIconDefaultColor() const + { + return OCC::WLTheme.buttonIconColor(); + } + + QString buttonIconHoverColor() const + { + return OCC::WLTheme.buttonIconHoverColor(); + } +}; +} + +#endif // _BUTTONSTYLE_H diff --git a/src/gui/buttonstylestrategy.h b/src/gui/buttonstylestrategy.h new file mode 100644 index 0000000000000..c6a316d25d3de --- /dev/null +++ b/src/gui/buttonstylestrategy.h @@ -0,0 +1,60 @@ +#ifndef BUTTONSTYLESTRATEGY_H +#define BUTTONSTYLESTRATEGY_H + +#include "buttonstyle.h" +#include +#include + + +class ButtonStyleStrategy +{ +public: + virtual ~ButtonStyleStrategy() = default; + + static OCC::ButtonStyle& getButtonStyle(const QWidget *widget, const QStyleOptionButton *option) + { + OCC::ButtonStyleName buttonStyleName; + if(widget != nullptr) + { + buttonStyleName = determineButtonStyleName(widget, option); + } + else + { + buttonStyleName = OCC::ButtonStyleName::Secondary; + } + + switch (buttonStyleName) + { + case OCC::ButtonStyleName::MoreOptions: + return OCC::MoreOptionsButtonStyle::GetInstance(); + case OCC::ButtonStyleName::Primary: + return OCC::PrimaryButtonStyle::GetInstance(); + case OCC::ButtonStyleName::Secondary: + default: + return OCC::SecondaryButtonStyle::GetInstance(); + } + } + + static OCC::ButtonStyleName determineButtonStyleName(const QWidget *widget, const QStyleOptionButton *option) + { + QVariant propertyValue = widget->property("buttonStyle"); + if(propertyValue.isValid()){ + + return propertyValue.value(); + } + + return getButtonStyleNameByObjectName(widget); + } + + static OCC::ButtonStyleName getButtonStyleNameByObjectName(const QWidget *widget) + { + static const QMap buttonStyleMap = { + {"qt_wizard_finish", OCC::ButtonStyleName::Primary} + }; + + QString buttonName = widget->objectName(); + return buttonStyleMap.value(buttonName, OCC::ButtonStyleName::Secondary); + } +}; + +#endif // BUTTONSTYLESTRATEGY_H \ No newline at end of file diff --git a/src/gui/caseclashfilenamedialog.cpp b/src/gui/caseclashfilenamedialog.cpp index 59599330ae80d..66e683eb329b2 100644 --- a/src/gui/caseclashfilenamedialog.cpp +++ b/src/gui/caseclashfilenamedialog.cpp @@ -8,6 +8,7 @@ #include "account.h" #include "folder.h" +#include "buttonstyle.h" #include "common/filesystembase.h" #include "common/utility.h" @@ -74,6 +75,8 @@ CaseClashFilenameDialog::CaseClashFilenameDialog(AccountPtr account, Q_ASSERT(_account); Q_ASSERT(_folder); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + const auto filePathFileInfo = QFileInfo(_filePath); const auto conflictFileName = filePathFileInfo.fileName(); @@ -89,6 +92,7 @@ CaseClashFilenameDialog::CaseClashFilenameDialog(AccountPtr account, _ui->setupUi(this); _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); _ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Rename file")); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); _ui->descriptionLabel->setText(tr("The file \"%1\" could not be synced because of a case clash conflict with an existing file on this system.").arg(_originalFileName)); _ui->explanationLabel->setText(tr("%1 does not support equal file names with only letter casing differences.").arg(QSysInfo::prettyProductName())); @@ -140,10 +144,13 @@ CaseClashFilenameDialog::CaseClashFilenameDialog(AccountPtr account, _ui->buttonBox->setStandardButtons(_ui->buttonBox->standardButtons() &~ QDialogButtonBox::No); if (_conflictSolver.allowedToRename()) { _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + _ui->filenameLineEdit->setEnabled(true); _ui->filenameLineEdit->selectAll(); } else { _ui->buttonBox->setStandardButtons(_ui->buttonBox->standardButtons() | QDialogButtonBox::No); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); } }); @@ -157,6 +164,8 @@ CaseClashFilenameDialog::CaseClashFilenameDialog(AccountPtr account, }); checkIfAllowedToRename(); + + customizeStyle(); } CaseClashFilenameDialog::~CaseClashFilenameDialog() = default; @@ -276,5 +285,43 @@ void CaseClashFilenameDialog::onFilenameLineEditTextChanged(const QString &text) _ui->buttonBox->button(QDialogButtonBox::Ok) ->setEnabled(isTextValid); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + } + +void CaseClashFilenameDialog::customizeStyle() +{ + this->setStyleSheet( + QStringLiteral("QDialog {background-color: %1; color: %2;} QLabel{ %3;}").arg( + WLTheme.dialogBackgroundColor(), + WLTheme.black(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + + _ui->filenameLineEdit->setStyleSheet( + QStringLiteral( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ").arg( + WLTheme.folderWizardPathColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.buttonRadius(), + WLTheme.menuBorderColor(), + WLTheme.white() + ) + ); + + #ifdef Q_OS_MAC + _ui->buttonBox->layout()->setSpacing(24); + _ui->buttonBox->setLayoutDirection(Qt::LeftToRight); + #endif +} + } diff --git a/src/gui/caseclashfilenamedialog.h b/src/gui/caseclashfilenamedialog.h index 295c482f0fc9d..115fcb1052ace 100644 --- a/src/gui/caseclashfilenamedialog.h +++ b/src/gui/caseclashfilenamedialog.h @@ -68,5 +68,7 @@ private slots: QString _relativeFilePath; QString _originalFileName; QString _newFilename; + + void customizeStyle(); }; } diff --git a/src/gui/caseclashfilenamedialog.ui b/src/gui/caseclashfilenamedialog.ui index a5944fc709886..7477525cbe60a 100644 --- a/src/gui/caseclashfilenamedialog.ui +++ b/src/gui/caseclashfilenamedialog.ui @@ -120,6 +120,9 @@ Open existing file + + true + @@ -226,6 +229,9 @@ Open clashing file + + true + diff --git a/src/gui/clickablelabel.h b/src/gui/clickablelabel.h new file mode 100644 index 0000000000000..f0ae1628cb596 --- /dev/null +++ b/src/gui/clickablelabel.h @@ -0,0 +1,28 @@ +#ifndef CLICKABLELABEL_H +#define CLICKABLELABEL_H + +#include +#include +#include + +class ClickableLabel : public QLabel { + Q_OBJECT + +public: + explicit ClickableLabel(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) + : QLabel(parent, f) {} + explicit ClickableLabel(const QString &text, QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) + : QLabel(text, parent, f) {} +signals: + void clicked(); + +protected: + void mousePressEvent(QMouseEvent* event) override { + if (event->button() == Qt::LeftButton) { + emit clicked(); + } + QLabel::mousePressEvent(event); + } +}; + +#endif // CLICKABLELABEL_H \ No newline at end of file diff --git a/src/gui/cloudproviders/cloudproviderwrapper.cpp b/src/gui/cloudproviders/cloudproviderwrapper.cpp index 5d0dad7ff2feb..9acef0e4690b7 100644 --- a/src/gui/cloudproviders/cloudproviderwrapper.cpp +++ b/src/gui/cloudproviders/cloudproviderwrapper.cpp @@ -130,7 +130,7 @@ void CloudProviderWrapper::slotUpdateProgress(const QString &folder, const Progr qint64 currentFile = progress.currentFile(); qint64 totalFileCount = qMax(progress.totalFiles(), currentFile); if (progress.trustEta()) { - msg = tr("Syncing %1 of %2 (%3 left)") + msg = tr("Syncing %1 of %2 (%3 left)") .arg(currentFile) .arg(totalFileCount) .arg(Utility::durationToDescriptiveString2(progress.totalProgress().estimatedEta)); diff --git a/src/gui/conflictdialog.cpp b/src/gui/conflictdialog.cpp index 5b56c2987e768..122bd6f550670 100644 --- a/src/gui/conflictdialog.cpp +++ b/src/gui/conflictdialog.cpp @@ -8,6 +8,7 @@ #include "conflictsolver.h" #include "common/utility.h" +#include "buttonstyle.h" #include #include @@ -42,8 +43,10 @@ ConflictDialog::ConflictDialog(QWidget *parent) { _ui->setupUi(this); forceHeaderFont(_ui->conflictMessage); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); _ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Keep selected version")); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); _ui->conflictMessage->setTextFormat(Qt::PlainText); @@ -59,6 +62,8 @@ ConflictDialog::ConflictDialog(QWidget *parent) connect(_solver, &ConflictSolver::localVersionFilenameChanged, this, &ConflictDialog::updateWidgets); connect(_solver, &ConflictSolver::remoteVersionFilenameChanged, this, &ConflictDialog::updateWidgets); + + customizeStyle(); } QString ConflictDialog::baseFilename() const @@ -170,6 +175,37 @@ void ConflictDialog::updateButtonStates() : isRemotePicked ? tr("Keep server version") : tr("Keep selected version"); _ui->buttonBox->button(QDialogButtonBox::Ok)->setText(text); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + +} + +void ConflictDialog::customizeStyle() +{ + this->setStyleSheet( + QStringLiteral("QDialog {background-color: %1; color: %2;} QLabel{ %3;}").arg( + WLTheme.dialogBackgroundColor(), + WLTheme.black(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + + #ifdef Q_OS_MAC + _ui->buttonBox->layout()->setSpacing(24); + _ui->buttonBox->setLayoutDirection(Qt::LeftToRight); + + _ui->localVersionRadio->setStyleSheet( + QStringLiteral("QCheckBox {color: %1;}").arg(WLTheme.black()) + ); + + _ui->remoteVersionRadio->setStyleSheet( + QStringLiteral("QCheckBox {color: %1;}").arg(WLTheme.black()) + ); + #endif } } // namespace OCC diff --git a/src/gui/conflictdialog.h b/src/gui/conflictdialog.h index f17bcaa986b57..905e5c2da68f1 100644 --- a/src/gui/conflictdialog.h +++ b/src/gui/conflictdialog.h @@ -37,6 +37,7 @@ public slots: private: void updateWidgets(); void updateButtonStates(); + void customizeStyle(); QString _baseFilename; QScopedPointer _ui; diff --git a/src/gui/creds/webflowcredentials.cpp b/src/gui/creds/webflowcredentials.cpp index b293ff6828a11..5b42971c8b5a5 100644 --- a/src/gui/creds/webflowcredentials.cpp +++ b/src/gui/creds/webflowcredentials.cpp @@ -169,8 +169,8 @@ void WebFlowCredentials::askFromUser() { _askDialog->setUrl(url); } - QString msg = tr("You have been logged out of your account %1 at %2. Please login again.") - .arg(_account->prettyName(), _account->url().toDisplayString()); + QString msg = tr("You have been logged out of your account %1 at %2. Please login again.") + .arg(_account->eliedName(200), _account->url().toDisplayString()); _askDialog->setInfo(msg); _askDialog->show(); diff --git a/src/gui/creds/webflowcredentialsdialog.cpp b/src/gui/creds/webflowcredentialsdialog.cpp index e37f755e90bbc..01c4c76acd226 100644 --- a/src/gui/creds/webflowcredentialsdialog.cpp +++ b/src/gui/creds/webflowcredentialsdialog.cpp @@ -11,7 +11,7 @@ #include "application.h" #include "owncloudgui.h" #include "wizard/owncloudwizardcommon.h" - +#include "whitelabeltheme.h" #ifdef WITH_WEBENGINE #include "wizard/webview.h" #endif // WITH_WEBENGINE @@ -29,6 +29,11 @@ WebFlowCredentialsDialog::WebFlowCredentialsDialog(Account *account, bool useFlo { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + setStyleSheet(QStringLiteral("QDialog { background-color: %1; }").arg(WLTheme.dialogBackgroundColor())); + + setFixedWidth(646); + setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); + _layout = new QVBoxLayout(this); int spacing = _layout->spacing(); auto margin = _layout->contentsMargins(); @@ -40,12 +45,24 @@ WebFlowCredentialsDialog::WebFlowCredentialsDialog(Account *account, bool useFlo _containerLayout->setContentsMargins(margin); _infoLabel = new QLabel(); - _infoLabel->setTextFormat(Qt::PlainText); + _infoLabel->setTextFormat(Qt::RichText); _infoLabel->setAlignment(Qt::AlignCenter); + _infoLabel->setWordWrap(true); + _infoLabel->setContentsMargins(0, 32, 0, 0); + _infoLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor() + )); _containerLayout->addWidget(_infoLabel); + layout()->setSizeConstraint(QLayout::SetFixedSize); + if (_useFlow2) { _flow2AuthWidget = new Flow2AuthWidget(); + _flow2AuthWidget->shrinkTopMarginForText(); + _containerLayout->addWidget(_flow2AuthWidget); connect(_flow2AuthWidget, &Flow2AuthWidget::authResult, this, &WebFlowCredentialsDialog::slotFlow2AuthResult); @@ -122,7 +139,7 @@ void WebFlowCredentialsDialog::setError(const QString &error) { slotShowSettingsDialog(); if (_useFlow2 && _flow2AuthWidget) { - _flow2AuthWidget->setError(error); + _flow2AuthWidget->setError("Error", error); return; } diff --git a/src/gui/filedetails/FileActivityView.qml b/src/gui/filedetails/FileActivityView.qml index aa866baa9c599..938c6ebc95ce2 100644 --- a/src/gui/filedetails/FileActivityView.qml +++ b/src/gui/filedetails/FileActivityView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/FileDetailsPage.qml b/src/gui/filedetails/FileDetailsPage.qml index c061eff726883..9ea069205eb43 100644 --- a/src/gui/filedetails/FileDetailsPage.qml +++ b/src/gui/filedetails/FileDetailsPage.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" @@ -36,7 +36,12 @@ Page { localPath: root.localPath } - Connections { + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontNormalWeight + palette.windowText: Style.sesTrayFontColor + + Connections { target: Systray function onShowFileDetailsPage(fileLocalPath, page) { if (!root.fileDetails.sharingAvailable && page == Systray.FileDetailsPage.Sharing) { @@ -60,12 +65,11 @@ Page { bottomPadding: intendedPadding background: Rectangle { - color: palette.base - visible: root.backgroundsVisible + color: Style.sesBackgroundColor } header: ColumnLayout { - spacing: root.intendedPadding + spacing: Style.sesMediumMargin GridLayout { id: headerGridLayout @@ -99,7 +103,7 @@ Page { Layout.rowSpan: headerGridLayout.rows Layout.preferredWidth: Style.trayListItemIconSize - Layout.leftMargin: root.intendedPadding + Layout.leftMargin: Style.sesMediumMargin Layout.fillHeight: true verticalAlignment: Image.AlignVCenter @@ -114,26 +118,34 @@ Page { id: fileNameLabel Layout.fillWidth: true - Layout.rightMargin: headerGridLayout.textRightMargin + Layout.rightMargin: Style.sesFileDetailsHeaderModifier text: root.fileDetails.name - font.bold: true + + font.pixelSize: Style.sesFontPixelSizeTitle + font.weight: Style.sesFontBoldWeight + wrapMode: Text.Wrap } - Button { + IconButton { id: closeButton + customHoverEnabled: false + Layout.rowSpan: headerGridLayout.rows - Layout.preferredWidth: Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.preferredWidth: Style.iconButtonWidth + Layout.preferredHeight: width Layout.rightMargin: headerGridLayout.textRightMargin - icon.source: "image://svgimage-custom-color/clear.svg" + "/" + palette.buttonText - icon.width: Style.activityListButtonIconSize - icon.height: Style.activityListButtonIconSize + iconSource: Style.sesAccountQuit + toolTipText: qsTr("Dismiss") + + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontNormalWeight + visible: root.showCloseButton + onClicked: root.closeButtonClicked() } @@ -141,9 +153,13 @@ Page { id: fileDetailsLabel Layout.fillWidth: true - Layout.rightMargin: headerGridLayout.textRightMargin + Layout.rightMargin: Style.sesFileDetailsHeaderModifier + + text: `${root.fileDetails.sizeString}, ${root.fileDetails.lastChangedString}` + + font.pixelSize: Style.sesFontHintPixelSize + font.weight: Style.sesFontNormalWeight - text: `${root.fileDetails.sizeString} · ${root.fileDetails.lastChangedString}` wrapMode: Text.Wrap } @@ -154,8 +170,12 @@ Page { Layout.rightMargin: headerGridLayout.textRightMargin text: root.fileDetails.lockExpireString + color: palette.midlight wrapMode: Text.Wrap visible: headerGridLayout.showFileLockedString + + font.pixelSize: Style.sesFontHintPixelSize + font.weight: Style.sesFontNormalWeight } Row { @@ -199,37 +219,13 @@ Page { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: hoverHandler.hovered text: tagRepeater.fileTagModel.overflowTagsString + + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontNormalWeight } } } } - - TabBar { - id: viewBar - - Layout.leftMargin: root.intendedPadding - Layout.rightMargin: root.intendedPadding - - padding: 0 - background: null - - NCTabButton { - svgCustomColorSource: "image://svgimage-custom-color/activity.svg" - text: qsTr("Activity") - checked: swipeView.currentIndex === fileActivityView.swipeIndex - onClicked: swipeView.currentIndex = fileActivityView.swipeIndex - } - - NCTabButton { - width: visible ? implicitWidth : 0 - height: visible ? implicitHeight : 0 - svgCustomColorSource: "image://svgimage-custom-color/share.svg" - text: qsTr("Sharing") - checked: swipeView.currentIndex === shareViewLoader.swipeIndex - onClicked: swipeView.currentIndex = shareViewLoader.swipeIndex - visible: root.fileDetails.sharingAvailable - } - } } SwipeView { @@ -238,18 +234,6 @@ Page { anchors.fill: parent clip: true - FileActivityView { - id: fileActivityView - - readonly property int swipeIndex: SwipeView.index - - delegateHorizontalPadding: root.intendedPadding - - accountState: root.accountState - localPath: root.localPath - iconSize: root.iconSize - } - Loader { id: shareViewLoader diff --git a/src/gui/filedetails/FileDetailsView.qml b/src/gui/filedetails/FileDetailsView.qml index b3b8fe83bb36b..1c0e82c982bd9 100644 --- a/src/gui/filedetails/FileDetailsView.qml +++ b/src/gui/filedetails/FileDetailsView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style StackView { @@ -22,7 +22,7 @@ StackView { property bool backgroundsVisible: true background: Rectangle { - color: palette.base + color: palette.window visible: root.backgroundsVisible } diff --git a/src/gui/filedetails/FileDetailsWindow.qml b/src/gui/filedetails/FileDetailsWindow.qml index 915b9871be603..f6de351f7fea2 100644 --- a/src/gui/filedetails/FileDetailsWindow.qml +++ b/src/gui/filedetails/FileDetailsWindow.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style ApplicationWindow { @@ -17,9 +17,6 @@ ApplicationWindow { property var accountState property string localPath: "" - LayoutMirroring.enabled: Application.layoutDirection === Qt.RightToLeft - LayoutMirroring.childrenInherit: true - width: 400 height: 500 minimumWidth: 300 diff --git a/src/gui/filedetails/NCInputDateField.qml b/src/gui/filedetails/NCInputDateField.qml index e4be486a95a7e..c06702b866e60 100644 --- a/src/gui/filedetails/NCInputDateField.qml +++ b/src/gui/filedetails/NCInputDateField.qml @@ -5,7 +5,7 @@ import QtQuick import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient NCInputTextField { id: root diff --git a/src/gui/filedetails/NCInputTextArea.qml b/src/gui/filedetails/NCInputTextArea.qml index da1eb1ca8a413..b5ad9f742db49 100644 --- a/src/gui/filedetails/NCInputTextArea.qml +++ b/src/gui/filedetails/NCInputTextArea.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style TextArea { @@ -34,6 +34,11 @@ TextArea { width: height height: parent.height + + background: Rectangle { + radius: width / 2 + color: textFieldBorder.color + } flat: true icon.source: "image://svgimage-custom-color/confirm.svg" + "/" + root.secondaryColor diff --git a/src/gui/filedetails/NCInputTextField.qml b/src/gui/filedetails/NCInputTextField.qml index 45a06b6eb064f..55a728b53b7ac 100644 --- a/src/gui/filedetails/NCInputTextField.qml +++ b/src/gui/filedetails/NCInputTextField.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style TextField { @@ -23,6 +23,14 @@ TextField { rightPadding: submitButton.width selectByMouse: true + + background: Rectangle { + id: textFieldBorder + radius: Style.slightlyRoundedButtonRadius + border.width: Style.normalBorderWidth + border.color: root.activeFocus ? root.validInput ? root.accentColor : Style.errorBoxBackgroundColor : root.secondaryColor + color: palette.base + } Button { id: submitButton diff --git a/src/gui/filedetails/NCTabButton.qml b/src/gui/filedetails/NCTabButton.qml index c68cb91363ad8..542eca6953740 100644 --- a/src/gui/filedetails/NCTabButton.qml +++ b/src/gui/filedetails/NCTabButton.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/ShareDelegate.qml b/src/gui/filedetails/ShareDelegate.qml index 16407e5f323a9..a547906b41277 100644 --- a/src/gui/filedetails/ShareDelegate.qml +++ b/src/gui/filedetails/ShareDelegate.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import QtQuick.Controls import Qt5Compat.GraphicalEffects -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" import "../" @@ -40,7 +40,7 @@ GridLayout { property FileDetails fileDetails: FileDetails {} property StackView rootStackView: StackView {} property bool backgroundsVisible: true - property color accentColor: Style.ncBlue + property color accentColor: Style.sesIconColor property bool canCreateLinkShares: true property bool serverAllowsResharing: true @@ -130,6 +130,7 @@ GridLayout { Layout.column: 1 text: root.detailText + elide: Text.ElideRight visible: text !== "" } @@ -142,17 +143,19 @@ GridLayout { spacing: 0 - Button { + IconButton { id: createLinkButton Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight + Layout.preferredWidth: Style.iconButtonWidth + Layout.preferredHeight: width + + toolTipText: qsTr("Create a new share link") - icon.source: "image://svgimage-custom-color/add.svg/" + palette.buttonText - icon.width: Style.activityListButtonIconSize - icon.height: Style.activityListButtonIconSize - display: AbstractButton.IconOnly + iconSource: Style.sesDarkPlus + palette.buttonText + icon.width: Style.smallIconSize + icon.height: Style.smallIconSize + customHoverEnabled: false visible: (root.isPlaceholderLinkShare || root.isSecureFileDropPlaceholderLinkShare) && root.canCreateLinkShares enabled: visible @@ -160,7 +163,7 @@ GridLayout { onClicked: root.createNewLinkShare() } - Button { + SecondaryPillButton { id: copyLinkButton function copyShareLink() { @@ -175,18 +178,27 @@ GridLayout { property bool shareLinkCopied: false - Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter - Layout.preferredWidth: shareLinkCopied ? implicitWidth : Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight + removeBorder: true + + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: shareLinkCopied ? implicitWidth : Style.iconButtonWidth + Layout.preferredHeight: Style.iconButtonWidth + + toolTipText: qsTr("Copy share link location") text: shareLinkCopied ? qsTr("Copied!") : "" + textColor: Style.sesDarkGreen + backgroundColor: Style.clipboardBackgroundColor + + iconSource: shareLinkCopied ? Style.sesSyncSuccessIcon + Style.positiveColor : + Style.sesClipboard + palette.brightText + + icon.width: Style.smallIconSize + icon.height: Style.smallIconSize - icon.source: "image://svgimage-custom-color/copy.svg/" + palette.buttonText - icon.width: Style.activityListButtonIconSize - icon.height: Style.activityListButtonIconSize - display: shareLinkCopied ? AbstractButton.TextOnly : AbstractButton.IconOnly visible: root.isLinkShare || root.isInternalLinkShare enabled: visible + onClicked: copyShareLink() Behavior on Layout.preferredWidth { @@ -205,19 +217,26 @@ GridLayout { } } - Button { + IconButton { id: moreButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter - Layout.preferredWidth: Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight + property bool isHovered: moreButton.hovered || moreButton.visualFocus + property bool isActive: moreButton.pressed + + Layout.alignment: Qt.AlignCenter + Layout.preferredWidth: Style.iconButtonWidth + Layout.preferredHeight: width + + toolTipText: qsTr("Share options") + + iconSource: Style.sesMore + iconSourceHovered: Style.sesMoreHover + width: Style.smallIconSize + height: Style.smallIconSize - icon.source: "image://svgimage-custom-color/more.svg/" + palette.buttonText - icon.width: Style.activityListButtonIconSize - icon.height: Style.activityListButtonIconSize - display: AbstractButton.IconOnly visible: !root.isPlaceholderLinkShare && !root.isSecureFileDropPlaceholderLinkShare && !root.isInternalLinkShare enabled: visible + onClicked: root.rootStackView.push(shareDetailsPageComponent, {}, StackView.PushTransition) Component { diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 39fbae87a22cd..aaab19f69e0de 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -9,9 +9,10 @@ import QtQuick.Layouts import QtQuick.Controls import Qt5Compat.GraphicalEffects -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" +import "../SesComponents/" import "../" Page { @@ -34,6 +35,12 @@ Page { signal setPassword(string password) signal setNote(string note) + + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontNormalWeight + palette.windowText: Style.sesTrayFontColor + property bool backgroundsVisible: true property color accentColor: Style.ncBlue @@ -71,6 +78,7 @@ Page { readonly property bool isHideDownloadInProgress: shareModelData.isHideDownloadInProgress readonly property int currentPermissionMode: shareModelData.currentPermissionMode + readonly property bool isInternalShare: shareModelData.shareType === ShareModel.ShareTypeUser || shareModelData.shareType === ShareModel.ShareTypeGroup || shareModelData.shareType === ShareModel.ShareTypeCircle readonly property bool isLinkShare: shareModelData.shareType === ShareModel.ShareTypeLink readonly property bool isEmailShare: shareModelData.shareType === ShareModel.ShareTypeEmail readonly property bool shareSupportsPassword: isLinkShare || isEmailShare @@ -85,6 +93,16 @@ Page { property bool waitingForPasswordChange: false property bool waitingForNoteChange: false + readonly property int titlePixelSize: Style.sesFontPixelSizeTitle + readonly property int titleFontWeight: Style.sesFontNormalWeight + + readonly property int hintPixelSize: Style.sesFontHintPixelSize + readonly property int hintFontWeight: Style.sesFontNormalWeight + + + readonly property int pixelSize: Style.sesFontPixelSize + readonly property int fontWeight: Style.sesFontNormalWeight + function showPasswordSetError(message) { passwordErrorBoxLoader.message = message !== "" ? message : qsTr("An error occurred setting the share password."); @@ -96,8 +114,8 @@ Page { } function resetLinkShareLabelField() { - linkShareLabelTextField.text = linkShareLabel; - waitingForLinkShareLabelChange = false; + // linkShareLabelTextField.text = linkShareLabel; + // waitingForLinkShareLabelChange = false; } function resetPasswordField() { @@ -165,8 +183,7 @@ Page { padding: Style.standardSpacing * 2 background: Rectangle { - color: palette.base - visible: root.backgroundsVisible + color: Style.sesBackgroundColor } header: ColumnLayout { @@ -201,38 +218,45 @@ Page { } EnforcedPlainTextLabel { - id: headLabel + id: fileNameLabel Layout.fillWidth: true + Layout.rightMargin: headerGridLayout.textRightMargin - text: qsTr("Edit share") - font.bold: true - elide: Text.ElideRight + text: root.fileDetails.name + + font.pixelSize: titlePixelSize + font.weight: titleFontWeight + + wrapMode: Text.Wrap } - Button { - id: closeButton + IconButton { + id: placeholder + + customHoverEnabled: false Layout.rowSpan: headerGridLayout.rows - Layout.preferredWidth: Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.preferredWidth: Style.iconButtonWidth + Layout.preferredHeight: width Layout.rightMargin: root.padding - icon.source: "image://svgimage-custom-color/clear.svg" + "/" + palette.buttonText - icon.width: Style.activityListButtonIconSize - icon.height: Style.activityListButtonIconSize + iconSource: Style.sesAccountQuit + onClicked: root.closeShareDetails() } EnforcedPlainTextLabel { - id: secondaryLabel + id: fileDetailsLabel Layout.fillWidth: true - Layout.rightMargin: root.padding + Layout.rightMargin: headerGridLayout.textRightMargin - text: root.fileDetails.name + text: `${root.fileDetails.sizeString}, ${root.fileDetails.lastChangedString}` wrapMode: Text.Wrap + + font.pixelSize: hintPixelSize + font.weight: hintFontWeight } } } @@ -250,62 +274,255 @@ Page { readonly property int itemPadding: Style.smallSpacing width: parent.width - spacing: Style.smallSpacing - RowLayout { + + CheckBox { + id: passwordProtectEnabledMenuItem + Layout.fillWidth: true - height: visible ? implicitHeight : 0 + spacing: scrollContentsColumn.indicatorSpacing + padding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth + + checkable: true + checked: root.passwordProtectEnabled + text: qsTr("Password protection") + visible: root.shareSupportsPassword + enabled: visible && + !root.waitingForPasswordProtectEnabledChange && + !root.passwordEnforced + + onClicked: { + root.togglePasswordProtect(checked); + root.waitingForPasswordProtectEnabledChange = true; + } + } + + Loader { + id: passwordErrorBoxLoader + + property string message: "" + + Layout.fillWidth: true + height: message !== "" ? implicitHeight : 0 + + active: message !== "" + visible: active + + sourceComponent: Item { + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + // Artificially add vertical padding + implicitHeight: passwordErrorBox.implicitHeight + (Style.smallSpacing * 2) + + SesErrorBox { + id: passwordErrorBox + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + + text: passwordErrorBoxLoader.message + } + } + } + + TextEdit { + id: passwordTextEdit + visible: root.passwordProtectEnabled + Layout.fillWidth: true + Layout.leftMargin: 3 + Layout.rightMargin: 3 + height: visible ? 64 : 0 + wrapMode: TextEdit.Wrap + selectByMouse: true + text: root.password !== "" ? root.password : root.passwordPlaceholder + + font.family: root.font.family + font.pixelSize: pixelSize + font.weight: fontWeight + + padding: scrollContentsColumn.itemPadding + enabled: visible && + root.passwordProtectEnabled && + !root.waitingForPasswordChange && + !root.waitingForPasswordProtectEnabledChange + + onEditingFinished: if(text !== root.password && text !== root.passwordPlaceholder) { + passwordErrorBoxLoader.message = ""; + root.setPassword(text); + root.waitingForPasswordChange = true; + } + + Rectangle { + id: passwordTextBorder + anchors.fill: parent + radius: Style.slightlyRoundedButtonRadius + border.width: Style.thickBorderWidth + border.color: Style.sesTrayInputField + color: palette.base + z: -1 + } + } + + CheckBox { + id: expireDateEnabledMenuItem + + Layout.fillWidth: true + font.pixelSize: pixelSize + font.weight: fontWeight + + spacing: scrollContentsColumn.indicatorSpacing + padding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth + + checkable: true + checked: root.expireDateEnabled + text: qsTr("Set expiration date") + enabled: !root.waitingForExpireDateEnabledChange && !root.expireDateEnforced - visible: root.isLinkShare + onClicked: { + root.toggleExpirationDate(checked); + root.waitingForExpireDateEnabledChange = true; + } + } - Image { - Layout.preferredWidth: scrollContentsColumn.indicatorItemWidth - Layout.fillHeight: true + NCInputDateField { + id: expireDateField - verticalAlignment: Image.AlignVCenter - horizontalAlignment: Image.AlignHCenter - fillMode: Image.Pad + font.pixelSize: pixelSize + font.weight: fontWeight - source: "image://svgimage-custom-color/label.svg/" + palette.windowText - sourceSize.width: scrollContentsColumn.rowIconWidth - sourceSize.height: scrollContentsColumn.rowIconWidth + Layout.fillWidth: true + Layout.leftMargin: 3 + Layout.rightMargin: 3 + height: visible ? implicitHeight : 0 + leftPadding: 15 + + visible: root.expireDateEnabled + + selectByMouse: true + + dateInMs: root.expireDate + maximumDateMs: root.maximumExpireDate + minimumDateMs: { + const currentDate = new Date(); + const currentYear = currentDate.getFullYear(); + const currentMonth = currentDate.getMonth(); + const currentMonthDay = currentDate.getDate(); + // Start of day at 00:00:0000 UTC + return Date.UTC(currentYear, currentMonth, currentMonthDay + 1); } - NCInputTextField { - id: linkShareLabelTextField + enabled: root.expireDateEnabled && + !root.waitingForExpireDateChange && + !root.waitingForExpireDateEnabledChange + + onUserAcceptedDate: { + root.setExpireDate(dateInMs); + root.waitingForExpireDateChange = true; + } + + Rectangle { + id: dateTextBorder + anchors.fill: parent + radius: Style.slightlyRoundedButtonRadius + border.width: Style.thickBorderWidth + border.color: Style.sesTrayInputField + color: palette.base + z: -1 + } + } + + ColumnLayout { + Layout.fillWidth: true + height: visible ? implicitHeight : 0 + spacing: Style.extraSmallSpacing + + CheckBox { + id: noteEnabledMenuItem Layout.fillWidth: true - height: visible ? implicitHeight : 0 - text: root.linkShareLabel - placeholderText: qsTr("Share label") + font.pixelSize: pixelSize + font.weight: fontWeight + + + spacing: scrollContentsColumn.indicatorSpacing + padding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth + + checkable: true + checked: root.noteEnabled + text: qsTr("Note to recipient") + enabled: !root.waitingForNoteEnabledChange - enabled: root.isLinkShare && - !root.waitingForLinkShareLabelChange + onClicked: { + root.toggleNoteToRecipient(checked); + root.waitingForNoteEnabledChange = true; + } + } + + Text{ + text: qsTr("Enter the note to recipient") + color: Style.sesGray + padding: scrollContentsColumn.itemPadding + visible: root.noteEnabled + font.family: root.font.family + font.pixelSize: pixelSize + font.weight: fontWeight + } - onAccepted: if(text !== root.linkShareLabel) { - root.setLinkShareLabel(text); - root.waitingForLinkShareLabelChange = true; + TextEdit { + id: noteTextEdit + visible: root.noteEnabled + font.family: root.font.family + font.pixelSize: pixelSize + font.weight: fontWeight + color: Style.sesTrayFontColor + Layout.fillWidth: true + Layout.leftMargin: 3 + Layout.rightMargin: 3 + height: visible ? 64 : 0 + wrapMode: TextEdit.Wrap + selectByMouse: true + padding: scrollContentsColumn.itemPadding + enabled: root.noteEnabled && + !root.waitingForNoteChange && + !root.waitingForNoteEnabledChange + + onEditingFinished: if(text !== "") { + root.setNote(text); + root.waitingForNoteChange = true; } - NCBusyIndicator { + Rectangle { + id: noteTextBorder anchors.fill: parent - visible: root.waitingForLinkShareLabelChange - running: visible - z: 1 + radius: Style.slightlyRoundedButtonRadius + border.width: Style.thickBorderWidth + border.color: Style.sesTrayInputField + color: palette.base + z: -1 } } - } + } Loader { Layout.fillWidth: true active: !root.isFolderItem && !root.isEncryptedItem visible: active sourceComponent: CheckBox { + + font.pixelSize: pixelSize + font.weight: fontWeight + spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding + padding: scrollContentsColumn.itemPadding indicator.width: scrollContentsColumn.indicatorItemWidth indicator.height: scrollContentsColumn.indicatorItemWidth @@ -315,13 +532,6 @@ Page { enabled: !root.isSharePermissionChangeInProgress onClicked: root.toggleAllowEditing(checked) - - NCBusyIndicator { - anchors.fill: parent - visible: root.isSharePermissionChangeInProgress - running: visible - z: 1 - } } } @@ -331,82 +541,108 @@ Page { visible: active sourceComponent: ColumnLayout { id: permissionRadioButtonsLayout - spacing: Layout.smallSpacing + spacing: 0 width: parent.width ButtonGroup { id: permissionModeRadioButtonsGroup } - RadioButton { + CheckBox { + id: customPermissionsCheckBox + Layout.fillWidth: true + enabled: !root.isSharePermissionChangeInProgress + checkable: false + checked: true + text: qsTr("Custom Permissions") + spacing: scrollContentsColumn.indicatorSpacing + padding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth + onClicked: root.permissionModeChanged(permissionMode) + font.pixelSize: pixelSize + font.weight: fontWeight + } + + CheckBox { readonly property int permissionMode: ShareModel.ModeViewOnly Layout.fillWidth: true + Layout.leftMargin: 30 ButtonGroup.group: permissionModeRadioButtonsGroup enabled: !root.isSharePermissionChangeInProgress checked: root.currentPermissionMode === permissionMode text: qsTr("View only") + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding + padding: scrollContentsColumn.itemPadding onClicked: root.permissionModeChanged(permissionMode) + visible: customPermissionsCheckBox.checked + font.pixelSize: pixelSize + font.weight: fontWeight } - RadioButton { + CheckBox { readonly property int permissionMode: ShareModel.ModeUploadAndEditing Layout.fillWidth: true + Layout.leftMargin: 30 ButtonGroup.group: permissionModeRadioButtonsGroup enabled: !root.isSharePermissionChangeInProgress checked: root.currentPermissionMode === permissionMode text: qsTr("Allow upload and editing") + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding + padding: scrollContentsColumn.itemPadding onClicked: root.permissionModeChanged(permissionMode) + visible: customPermissionsCheckBox.checked + font.pixelSize: pixelSize + font.weight: fontWeight } - RadioButton { + CheckBox { readonly property int permissionMode: ShareModel.ModeFileDropOnly Layout.fillWidth: true + Layout.leftMargin: 30 ButtonGroup.group: permissionModeRadioButtonsGroup enabled: !root.isSharePermissionChangeInProgress checked: root.currentPermissionMode === permissionMode text: qsTr("File drop (upload only)") + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding + padding: scrollContentsColumn.itemPadding onClicked: root.permissionModeChanged(permissionMode) + visible: customPermissionsCheckBox.checked && !root.isInternalShare // Removed SES-307 + font.pixelSize: pixelSize + font.weight: fontWeight } + } + } - CheckBox { - id: allowResharingCheckBox + CheckBox { + id: allowResharingCheckBox - Layout.fillWidth: true + Layout.fillWidth: true - spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding - indicator.width: scrollContentsColumn.indicatorItemWidth - indicator.height: scrollContentsColumn.indicatorItemWidth + font.pixelSize: pixelSize + font.weight: fontWeight - checkable: true - checked: root.resharingAllowed - text: qsTr("Allow resharing") - enabled: !root.isSharePermissionChangeInProgress && root.serverAllowsResharing - visible: root.serverAllowsResharing - onClicked: root.toggleAllowResharing(checked); - - Connections { - target: root - onResharingAllowedChanged: allowResharingCheckBox.checked = root.resharingAllowed - } - } - } + spacing: scrollContentsColumn.indicatorSpacing + padding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth - NCBusyIndicator { - anchors.fill: parent - visible: root.isSharePermissionChangeInProgress - running: visible - z: 1 + checkable: true + checked: root.resharingAllowed + text: qsTr("Allow resharing") + enabled: !root.isSharePermissionChangeInProgress && root.serverAllowsResharing + visible: root.serverAllowsResharing + onClicked: root.toggleAllowResharing(checked); + + Connections { + target: root + onResharingAllowedChanged: allowResharingCheckBox.checked = root.resharingAllowed } } @@ -422,9 +658,11 @@ Page { anchors.left: parent.left anchors.right: parent.right + font.pixelSize: pixelSize + font.weight: fontWeight + spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding + padding: scrollContentsColumn.itemPadding indicator.width: scrollContentsColumn.indicatorItemWidth indicator.height: scrollContentsColumn.indicatorItemWidth @@ -432,320 +670,52 @@ Page { text: qsTr("Hide download") enabled: !root.isHideDownloadInProgress onClicked: root.toggleHideDownload(checked); - - NCBusyIndicator { - anchors.fill: parent - visible: root.isHideDownloadInProgress - running: visible - z: 1 - } } } } + } + } - CheckBox { - id: passwordProtectEnabledMenuItem - - Layout.fillWidth: true - - spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding - indicator.width: scrollContentsColumn.indicatorItemWidth - indicator.height: scrollContentsColumn.indicatorItemWidth - - checkable: true - checked: root.passwordProtectEnabled - text: qsTr("Password protection") - visible: root.shareSupportsPassword - enabled: visible && - !root.waitingForPasswordProtectEnabledChange && - !root.passwordEnforced - - onClicked: { - root.togglePasswordProtect(checked); - root.waitingForPasswordProtectEnabledChange = true; - } - - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForPasswordProtectEnabledChange - running: visible - z: 1 - } - } - - RowLayout { - Layout.fillWidth: true - - height: visible ? implicitHeight : 0 - spacing: scrollContentsColumn.indicatorSpacing - - visible: root.shareSupportsPassword && root.passwordProtectEnabled - - Image { - Layout.preferredWidth: scrollContentsColumn.indicatorItemWidth - Layout.fillHeight: true - - verticalAlignment: Image.AlignVCenter - horizontalAlignment: Image.AlignHCenter - fillMode: Image.Pad - - source: "image://svgimage-custom-color/lock-https.svg/" + palette.windowText - sourceSize.width: scrollContentsColumn.rowIconWidth - sourceSize.height: scrollContentsColumn.rowIconWidth - } - - NCInputTextField { - id: passwordTextField - - Layout.fillWidth: true - height: visible ? implicitHeight : 0 - - text: root.password !== "" ? root.password : root.passwordPlaceholder - enabled: visible && - root.passwordProtectEnabled && - !root.waitingForPasswordChange && - !root.waitingForPasswordProtectEnabledChange - - onAccepted: if(text !== root.password && text !== root.passwordPlaceholder) { - passwordErrorBoxLoader.message = ""; - root.setPassword(text); - root.waitingForPasswordChange = true; - } - - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForPasswordChange || - root.waitingForPasswordProtectEnabledChange - running: visible - z: 1 - } - } - } - - Loader { - id: passwordErrorBoxLoader - - property string message: "" - - Layout.fillWidth: true - height: message !== "" ? implicitHeight : 0 - - active: message !== "" - visible: active - - sourceComponent: Item { - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - // Artificially add vertical padding - implicitHeight: passwordErrorBox.implicitHeight + (Style.smallSpacing * 2) - - ErrorBox { - id: passwordErrorBox - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - - text: passwordErrorBoxLoader.message - } - } - } - - CheckBox { - id: expireDateEnabledMenuItem - - Layout.fillWidth: true - - spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding - indicator.width: scrollContentsColumn.indicatorItemWidth - indicator.height: scrollContentsColumn.indicatorItemWidth - - checkable: true - checked: root.expireDateEnabled - text: qsTr("Set expiration date") - enabled: !root.waitingForExpireDateEnabledChange && !root.expireDateEnforced - - onClicked: { - root.toggleExpirationDate(checked); - root.waitingForExpireDateEnabledChange = true; - } - - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForExpireDateEnabledChange - running: visible - z: 1 - } - } - - RowLayout { - Layout.fillWidth: true - height: visible ? implicitHeight : 0 - spacing: scrollContentsColumn.indicatorSpacing - - visible: root.expireDateEnabled - - Image { - Layout.preferredWidth: scrollContentsColumn.indicatorItemWidth - Layout.fillHeight: true - - verticalAlignment: Image.AlignVCenter - horizontalAlignment: Image.AlignHCenter - fillMode: Image.Pad - - source: "image://svgimage-custom-color/calendar.svg/" + palette.windowText - sourceSize.width: scrollContentsColumn.rowIconWidth - sourceSize.height: scrollContentsColumn.rowIconWidth - } - - NCInputDateField { - id: expireDateField - - Layout.fillWidth: true - height: visible ? implicitHeight : 0 - - dateInMs: root.expireDate - maximumDateMs: root.maximumExpireDate - minimumDateMs: { - const currentDate = new Date(); - const currentYear = currentDate.getFullYear(); - const currentMonth = currentDate.getMonth(); - const currentMonthDay = currentDate.getDate(); - // Start of day at 00:00:0000 UTC - return Date.UTC(currentYear, currentMonth, currentMonthDay + 1); - } - - enabled: root.expireDateEnabled && - !root.waitingForExpireDateChange && - !root.waitingForExpireDateEnabledChange - - onUserAcceptedDate: { - root.setExpireDate(dateInMs); - root.waitingForExpireDateChange = true; - } - - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForExpireDateEnabledChange || - root.waitingForExpireDateChange - running: visible - z: 1 - } - } - } - - CheckBox { - id: noteEnabledMenuItem - - Layout.fillWidth: true - - spacing: scrollContentsColumn.indicatorSpacing - leftPadding: scrollContentsColumn.itemPadding - rightPadding: scrollContentsColumn.itemPadding - indicator.width: scrollContentsColumn.indicatorItemWidth - indicator.height: scrollContentsColumn.indicatorItemWidth - - checkable: true - checked: root.noteEnabled - text: qsTr("Note to recipient") - enabled: !root.waitingForNoteChange - - onClicked: { - if (!checked && root.note !== "") { - root.setNote(""); - root.waitingForNoteChange = true; - } - } - - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForNoteChange && !noteEnabledMenuItem.checked - running: visible - z: 1 - } - } - - RowLayout { - Layout.fillWidth: true - height: visible ? implicitHeight : 0 - spacing: scrollContentsColumn.indicatorSpacing - - visible: noteEnabledMenuItem.checked + footer: GridLayout { + id: buttonGrid - Image { - Layout.preferredWidth: scrollContentsColumn.indicatorItemWidth - Layout.fillHeight: true + columns: 1 + rows: 2 - verticalAlignment: Image.AlignVCenter - horizontalAlignment: Image.AlignHCenter - fillMode: Image.Pad + PrimaryPillButton { + Layout.columnSpan: buttonGrid.columns - source: "image://svgimage-custom-color/comment.svg/" + palette.windowText - sourceSize.width: scrollContentsColumn.rowIconWidth - sourceSize.height: scrollContentsColumn.rowIconWidth - } + iconSource: Style.sesLightPlus - NCInputTextArea { - id: noteTextArea + font.pixelSize: pixelSize + font.weight: fontWeight + text: qsTr("Add another link") - Layout.fillWidth: true - // no height here -- let the textarea figure it out how much it needs - submitButton.height: Math.min(Style.talkReplyTextFieldPreferredHeight, height - 2) + visible: root.isLinkShare && root.canCreateLinkShares + enabled: visible - text: root.note - placeholderText: qsTr("Enter a note for the recipient") - enabled: noteEnabledMenuItem.checked && !root.waitingForNoteChange + Layout.leftMargin: 16 + Layout.bottomMargin: 16 + Layout.row: 0 - onEditingFinished: if (text !== "" && text !== root.note) { - root.setNote(text); - root.waitingForNoteChange = true; - } + onClicked: root.createNewLinkShare() + } - NCBusyIndicator { - anchors.fill: parent - visible: root.waitingForNoteChange && noteEnabledMenuItem.checked - running: visible - z: 1 - } - } - } + SecondaryPillButton { + id: unshareButton - Button { - height: Style.standardPrimaryButtonHeight - icon.source: "image://svgimage-custom-color/close.svg/" + palette.buttonText - icon.height: Style.extraSmallIconSize - text: qsTr("Unshare") - onClicked: root.deleteShare() - } + font.pixelSize: pixelSize + font.weight: fontWeight + text: qsTr("Unshare") - Button { - height: Style.standardPrimaryButtonHeight - icon.source: "image://svgimage-custom-color/add.svg/" + palette.buttonText - icon.height: Style.extraSmallIconSize - text: qsTr("Add another link") - visible: root.isLinkShare && root.canCreateLinkShares - enabled: visible - onClicked: root.createNewLinkShare() - } + Layout.bottomMargin: 16 + Layout.leftMargin: 16 + Layout.rightMargin: 60 + Layout.row: 1 + onClicked: root.deleteShare() } - } - footer: DialogButtonBox { - topPadding: 0 - bottomPadding: root.padding - rightPadding: root.padding - leftPadding: root.padding - alignment: Qt.AlignRight | Qt.AlignVCenter - contentWidth: (contentItem as ListView).contentWidth - visible: copyShareLinkButton.visible - - background: Rectangle { color: "transparent" } - - Button { + PrimaryPillButton { id: copyShareLinkButton function copyShareLink() { @@ -760,21 +730,20 @@ Page { property bool shareLinkCopied: false - height: Style.standardPrimaryButtonHeight - - Layout.preferredWidth: Style.activityListButtonWidth - Layout.preferredHeight: Style.activityListButtonHeight - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + iconSource: Style.sesLightClipboard - icon.source: "image://svgimage-custom-color/copy.svg/" + palette.brightText - icon.width: Style.smallIconSize - icon.height: Style.smallIconSize text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") + visible: root.isLinkShare enabled: visible onClicked: copyShareLink() + Layout.alignment: Qt.AlignRight + Layout.bottomMargin: 16 + Layout.rightMargin: 20 + Layout.row: 1 + Behavior on Layout.preferredWidth { SmoothedAnimation { duration: Style.shortAnimationDuration } } diff --git a/src/gui/filedetails/ShareView.qml b/src/gui/filedetails/ShareView.qml index 9d593b9d295b3..322a77410e551 100644 --- a/src/gui/filedetails/ShareView.qml +++ b/src/gui/filedetails/ShareView.qml @@ -8,9 +8,10 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" +import "../SesComponents" import "../" ColumnLayout { @@ -78,6 +79,10 @@ ColumnLayout { close(); } + background: Rectangle { + color: Style.sesBackgroundColor + } + anchors.centerIn: parent width: parent.width * 0.8 @@ -114,20 +119,14 @@ ColumnLayout { } } - ErrorBox { + SesErrorBox { id: errorBox Layout.fillWidth: true Layout.leftMargin: root.horizontalPadding Layout.rightMargin: root.horizontalPadding - showCloseButton: true visible: false - - onCloseButtonClicked: { - text = ""; - visible = false; - } } RowLayout { @@ -164,6 +163,7 @@ ColumnLayout { Layout.topMargin: Style.smallSpacing Layout.leftMargin: root.horizontalPadding Layout.rightMargin: root.horizontalPadding + Layout.preferredHeight: Style.sesSearchFieldHeight visible: root.userGroupSharingPossible enabled: visible && !root.loading && !root.shareModel.isShareDisabledEncryptedFolder && !shareeSearchField.isShareeFetchOngoing @@ -185,6 +185,7 @@ ColumnLayout { Layout.fillHeight: true Layout.leftMargin: root.horizontalPadding Layout.rightMargin: root.horizontalPadding + Layout.topMargin: Style.sesMediumMargin active: root.sharingPossible @@ -206,7 +207,9 @@ ColumnLayout { sourceModel: root.shareModel } - delegate: ShareDelegate { + delegate: ColumnLayout{ + width: parent.width + ShareDelegate { id: shareDelegate Connections { @@ -236,7 +239,7 @@ ColumnLayout { fileDetails: root.fileDetails rootStackView: root.rootStackView backgroundsVisible: root.backgroundsVisible - accentColor: root.accentColor + accentColor: Style.sesIconColor canCreateLinkShares: root.publicLinkSharingPossible serverAllowsResharing: root.serverAllowsResharing @@ -260,6 +263,14 @@ ColumnLayout { onSetExpireDate: shareModel.setShareExpireDateFromQml(model.share, milliseconds) onSetPassword: shareModel.setSharePasswordFromQml(model.share, password) onSetNote: shareModel.setShareNoteFromQml(model.share, note) + width: parent.width + } + + Rectangle{ + height: Style.sesMediumMargin + color: "transparent" + width: parent.width + } } Loader { @@ -302,6 +313,7 @@ ColumnLayout { id: sharingDisabledLabel width: parent.width text: qsTr("Sharing is disabled") + color: palette.midlight wrapMode: Text.Wrap horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -309,6 +321,7 @@ ColumnLayout { EnforcedPlainTextLabel { width: parent.width text: qsTr("This item cannot be shared.") + color: palette.midlight wrapMode: Text.Wrap horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -317,6 +330,7 @@ ColumnLayout { EnforcedPlainTextLabel { width: parent.width text: qsTr("Sharing is disabled.") + color: palette.midlight wrapMode: Text.Wrap horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter diff --git a/src/gui/filedetails/ShareeDelegate.qml b/src/gui/filedetails/ShareeDelegate.qml index 52cf08ee6d423..a62ecefd47ea4 100644 --- a/src/gui/filedetails/ShareeDelegate.qml +++ b/src/gui/filedetails/ShareeDelegate.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import Style import "../tray" @@ -53,6 +53,9 @@ ItemDelegate { Layout.preferredHeight: unifiedSearchResultSkeletonItemDetails.iconWidth Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontNormalWeight + Layout.fillWidth: true horizontalAlignment: Text.AlignLeft diff --git a/src/gui/filedetails/ShareeSearchField.qml b/src/gui/filedetails/ShareeSearchField.qml index 8c82ed5abde50..57e1a0200732c 100644 --- a/src/gui/filedetails/ShareeSearchField.qml +++ b/src/gui/filedetails/ShareeSearchField.qml @@ -8,8 +8,9 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient +// TODO Check SES-459 +import com.ionos.hidrivenext.desktopclient as NC import Style import "../tray" @@ -30,6 +31,7 @@ TextField { } readonly property int horizontalPaddingOffset: Style.trayHorizontalMargin + readonly property color placeholderColor: Style.sesSearchFieldContent readonly property double iconsScaleFactor: 0.6 function triggerSuggestionsVisibility() { @@ -37,9 +39,11 @@ TextField { } placeholderText: enabled ? qsTr("Search for users or groups…") : qsTr("Sharing is not available for this folder") + placeholderTextColor: placeholderColor verticalAlignment: Qt.AlignVCenter implicitHeight: Math.max(Style.talkReplyTextFieldPreferredHeight, contentHeight) + onActiveFocusChanged: triggerSuggestionsVisibility() onTextChanged: triggerSuggestionsVisibility() Keys.onPressed: { @@ -79,8 +83,15 @@ TextField { } } - leftPadding: searchIcon.width + searchIcon.anchors.leftMargin + horizontalPaddingOffset - rightPadding: clearTextButton.width + clearTextButton.anchors.rightMargin + horizontalPaddingOffset + leftPadding: searchIcon.width + searchIcon.anchors.leftMargin + horizontalPaddingOffset - 5 + rightPadding: root.text ? clearTextButton.width + clearTextButton.anchors.rightMargin + horizontalPaddingOffset : 5 + + background: Rectangle { + radius: 5 + border.color: Style.sesMenuBorder + border.width: 1 + + } Image { id: searchIcon @@ -99,7 +110,7 @@ TextField { fillMode: Image.PreserveAspectFit horizontalAlignment: Image.AlignLeft - source: "image://svgimage-custom-color/search.svg" + "/" + palette.placeholderText + source: "image://svgimage-custom-color/search.svg" + "/" + Style.sesSearchFieldContent sourceSize: Qt.size(parent.height * root.iconsScaleFactor, parent.height * root.iconsScaleFactor) visible: !root.shareeModel.fetchOngoing diff --git a/src/gui/filedetails/shareemodel.cpp b/src/gui/filedetails/shareemodel.cpp index 4693da29724d6..368b9f20c567b 100644 --- a/src/gui/filedetails/shareemodel.cpp +++ b/src/gui/filedetails/shareemodel.cpp @@ -14,7 +14,7 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcShareeModel, "com.nextcloud.shareemodel") +Q_LOGGING_CATEGORY(lcShareeModel, "com.hidrivenext.shareemodel") ShareeModel::ShareeModel(QObject *parent) : QAbstractListModel(parent) diff --git a/src/gui/filedetails/sharemodel.cpp b/src/gui/filedetails/sharemodel.cpp index 06d1cb0246843..afea2c9c9c401 100644 --- a/src/gui/filedetails/sharemodel.cpp +++ b/src/gui/filedetails/sharemodel.cpp @@ -28,7 +28,7 @@ static const auto secureFileDropPlaceholderLinkShareId = QStringLiteral("__secur namespace OCC { -Q_LOGGING_CATEGORY(lcShareModel, "com.nextcloud.sharemodel") +Q_LOGGING_CATEGORY(lcShareModel, "com.hidrivenext.sharemodel") ShareModel::ShareModel(QObject *parent) : QAbstractListModel(parent) @@ -773,7 +773,7 @@ QString ShareModel::iconUrlForShare(const SharePtr &share) const switch(share->getShareType()) { case Share::TypeInternalLink: - return QString(iconsPath + QStringLiteral("external.svg")); + return QString(iconsPath + QStringLiteral("public.svg")); case Share::TypePlaceholderLink: case Share::TypeSecureFileDropPlaceholderLink: case Share::TypeLink: diff --git a/src/gui/filedetails/sortedsharemodel.cpp b/src/gui/filedetails/sortedsharemodel.cpp index 14a06a837b0ab..5fffc1ca891c6 100644 --- a/src/gui/filedetails/sortedsharemodel.cpp +++ b/src/gui/filedetails/sortedsharemodel.cpp @@ -7,7 +7,7 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcSortedShareModel, "com.nextcloud.sortedsharemodel") +Q_LOGGING_CATEGORY(lcSortedShareModel, "com.hidrivenext.sortedsharemodel") SortedShareModel::SortedShareModel(QObject *parent) : QSortFilterProxyModel(parent) diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index 132390ea9fe80..589ec2b9883d9 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -1408,10 +1408,10 @@ void Folder::slotNewBigFolderDiscovered(const QString &newF, bool isExternal) journal->setSelectiveSyncList(SyncJournalDb::SelectiveSyncUndecidedList, undecidedList); emit newBigFolderDiscovered(newFolder); } - QString message = !isExternal ? (tr("A new folder larger than %1 MB has been added: %2.\n") + QString message = !isExternal ? QString(tr("A new folder larger than %1 MB has been added: %2.") + "\n") .arg(ConfigFile().newBigFolderSizeLimit().second) - .arg(newF)) - : (tr("A folder from an external storage has been added.\n")); + .arg(newF) + : (tr("A folder from an external storage has been added.") + "\n"); message += tr("Please go in the settings to select it if you wish to download it."); auto logger = Logger::instance(); @@ -1693,8 +1693,8 @@ void Folder::registerFolderWatcher() } connect(_folderWatcher.data(), &FolderWatcher::filesLockImposed, this, &Folder::slotFilesLockImposed, Qt::UniqueConnection); _folderWatcher->init(path()); - _folderWatcher->startNotificatonTest(path() + QLatin1String(".nextcloudsync.log")); - _folderWatcher->performSetPermissionsTest(path() + QLatin1String(".nextcloudpermissions.log")); + _folderWatcher->startNotificatonTest(path() + QLatin1String(".hidrivenextsync.log")); + _folderWatcher->performSetPermissionsTest(path() + QLatin1String(".hidrivenextpermissions.log")); connect(_engine.data(), &SyncEngine::lockFileDetected, _folderWatcher.data(), &FolderWatcher::slotLockFileDetectedExternally); } diff --git a/src/gui/foldercreationdialog.cpp b/src/gui/foldercreationdialog.cpp index 93e243842cf96..a956a8111e10a 100644 --- a/src/gui/foldercreationdialog.cpp +++ b/src/gui/foldercreationdialog.cpp @@ -4,6 +4,9 @@ */ #include "foldercreationdialog.h" + +#include "buttonstyle.h" +#include "whitelabeltheme.h" #include "ui_foldercreationdialog.h" #include @@ -11,6 +14,9 @@ #include #include #include +#include +#include +#include namespace OCC { @@ -22,10 +28,13 @@ FolderCreationDialog::FolderCreationDialog(const QString &destination, QWidget * , _destination(destination) { ui->setupUi(this); + setWindowTitle(tr("%1 Create new folder").arg(Theme::instance()->appNameGUI())); + customizeStyle(); - ui->labelErrorMessage->setVisible(false); + ui->errorSnackbar->setVisible(false); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + setWindowFlags(windowFlags() | Qt::Dialog | Qt::WindowMinMaxButtonsHint); connect(ui->newFolderNameEdit, &QLineEdit::textChanged, this, &FolderCreationDialog::slotNewFolderNameEditTextEdited); @@ -60,11 +69,6 @@ void FolderCreationDialog::accept() const auto fullPath = QString(_destination + "/" + ui->newFolderNameEdit->text()); - if (QDir(fullPath).exists()) { - ui->labelErrorMessage->setVisible(true); - return; - } - if (QDir(_destination).mkdir(ui->newFolderNameEdit->text())) { Q_EMIT folderCreated(fullPath); } else { @@ -77,10 +81,54 @@ void FolderCreationDialog::accept() void FolderCreationDialog::slotNewFolderNameEditTextEdited() { if (!ui->newFolderNameEdit->text().isEmpty() && QDir(_destination + "/" + ui->newFolderNameEdit->text()).exists()) { - ui->labelErrorMessage->setVisible(true); + ui->errorSnackbar->setVisible(true); + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + sizeDialog(); + } else { - ui->labelErrorMessage->setVisible(false); + ui->errorSnackbar->setVisible(false); + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + sizeDialog(); } } +void FolderCreationDialog::sizeDialog(){ + adjustSize(); + setFixedWidth(626); + setFixedHeight(sizeHint().height()); +} + +void FolderCreationDialog::customizeStyle() +{ + ui->buttonBox->setLayoutDirection(Qt::RightToLeft); + + this->setAutoFillBackground(true); + setPalette(QPalette(QPalette::Window, WLTheme.dialogBackgroundColor())); + + QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok); + okButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + QHBoxLayout* buttonlayout = qobject_cast(ui->buttonBox->layout()); + buttonlayout->setSpacing(16); + + ui->newFolderNameEdit->setStyleSheet( + QStringLiteral( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ") + .arg(WLTheme.folderWizardPathColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.buttonRadius(), + WLTheme.menuBorderColor(), + WLTheme.white() + ) + ); + +#if defined(Q_OS_MAC) + buttonlayout->setSpacing(32); +#endif + + sizeDialog(); } +} \ No newline at end of file diff --git a/src/gui/foldercreationdialog.h b/src/gui/foldercreationdialog.h index d1c7ecb90a2d0..f618ecf14d6a2 100644 --- a/src/gui/foldercreationdialog.h +++ b/src/gui/foldercreationdialog.h @@ -34,6 +34,9 @@ private slots: Ui::FolderCreationDialog *ui; QString _destination; + + void customizeStyle(); + void sizeDialog(); }; } diff --git a/src/gui/foldercreationdialog.ui b/src/gui/foldercreationdialog.ui index 84d7c77e18654..de849b09215cd 100644 --- a/src/gui/foldercreationdialog.ui +++ b/src/gui/foldercreationdialog.ui @@ -1,100 +1,93 @@ - OCC::FolderCreationDialog - - - - 0 - 0 - 355 - 138 - - - - Create new folder - - - - - 0 - 90 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - 20 - 30 - 321 - 22 - - - - Enter folder name - - - - - true - - - - 20 - 60 - 321 - 16 - - - - color: rgb(255, 0, 0) - - - Folder already exists - - - - - - - buttonBox - accepted() - OCC::FolderCreationDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - OCC::FolderCreationDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - + OCC::FolderCreationDialog + + + Create new folder + + + + + + Enter folder name + + + Qt::NoContextMenu + + + + + + + Folder already exists + + + false + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + + + + buttonBox + accepted() + OCC::FolderCreationDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + OCC::FolderCreationDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + \ No newline at end of file diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index 0ba7b7e8fc189..e687b06c7bfc3 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -1456,12 +1456,12 @@ QString FolderMan::getBackupName(QString fullPathName) const if (fullPathName.isEmpty()) return QString(); - QString newName = fullPathName + tr(" (backup)"); + QString newName = fullPathName + " " + tr("(backup)"); QFileInfo fi(newName); int cnt = 2; do { if (fi.exists()) { - newName = fullPathName + tr(" (backup %1)").arg(cnt++); + newName = fullPathName + " " + tr("(backup %1)").arg(cnt++); fi.setFile(newName); } } while (fi.exists()); diff --git a/src/gui/folderstatusdelegate.cpp b/src/gui/folderstatusdelegate.cpp index b8453dc5cbb40..0b620b252a7e7 100644 --- a/src/gui/folderstatusdelegate.cpp +++ b/src/gui/folderstatusdelegate.cpp @@ -9,7 +9,11 @@ #include "folderstatusview.h" #include "folderman.h" #include "accountstate.h" +#include "sesstyle.h" +#include "buttonstyle.h" + #include +#include #include #include @@ -17,14 +21,7 @@ #include #include #include - -inline static QFont makeAliasFont(const QFont &normalFont) -{ - QFont aliasFont = normalFont; - aliasFont.setBold(true); - aliasFont.setPointSize(normalFont.pointSize() + 2); - return aliasFont; -} +#include namespace { #ifdef Q_OS_MACOS @@ -34,6 +31,14 @@ namespace { namespace OCC { +inline static QFont makeAliasFont(const QFont &normalFont) +{ + QFont aliasFont = normalFont; + aliasFont.setWeight(WLTheme.settingsTitleWeightDemiBold()); + aliasFont.setPixelSize(WLTheme.settingsBigTitlePixel()); + return aliasFont; +} + FolderStatusDelegate::FolderStatusDelegate() : QStyledItemDelegate() { @@ -42,15 +47,21 @@ FolderStatusDelegate::FolderStatusDelegate() QString FolderStatusDelegate::addFolderText() { - return tr("Add Folder Sync Connection"); + return tr("Add Folder Sync"); +} + +QString FolderStatusDelegate::addInfoText() +{ + return tr("Synchronize any other local folder with your %1").arg(Theme::instance()->appNameGUI()); } // allocate each item size in listview. QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { - QFont aliasFont = makeAliasFont(option.font); - QFont font = option.font; + QFont font = QFont(option.font); + font.setPixelSize(WLTheme.settingsTextPixel()); + QFont aliasFont = makeAliasFont(font); QFontMetrics fm(font); QFontMetrics aliasFm(aliasFont); @@ -61,7 +72,7 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem &option, QFontMetrics fm(qApp->font("QPushButton")); QStyleOptionButton opt; static_cast(opt) = option; - opt.text = addFolderText(); + opt.text = addInfoText(); return QApplication::style()->sizeFromContents( QStyle::CT_PushButton, &opt, fm.size(Qt::TextSingleLine, opt.text)) + QSize(0, margins); } @@ -101,22 +112,78 @@ int FolderStatusDelegate::rootFolderHeightWithoutErrors(const QFontMetrics &fm, return h; } +void FolderStatusDelegate::drawAddButton(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + QFont titleFont = option.font; + titleFont.setWeight(WLTheme.settingsTitleWeightDemiBold()); + titleFont.setPixelSize(WLTheme.settingsTitlePixel()); + QFontMetrics titleTextFm(titleFont); + const auto baseDistanceForCalculus = titleTextFm.height() / 2; + + QFont subtitleFont = option.font; + + QFontMetrics subtitleTextFm(subtitleFont); + const auto distanceToSubline = subtitleTextFm.height() / 4; + + auto iconBox = option.rect; + iconBox.setTop(iconBox.top() + baseDistanceForCalculus); + iconBox.setBottom(iconBox.top() + WLTheme.treeViewIconSize()); + iconBox.setLeft(iconBox.left() + baseDistanceForCalculus); + iconBox.setWidth(iconBox.height()); + + auto titleBox = option.rect; + titleBox.setTop(iconBox.top()); + titleBox.setBottom(iconBox.bottom() - distanceToSubline); + titleBox.setRight(titleBox.right() - baseDistanceForCalculus); + titleBox.setLeft(iconBox.right() + baseDistanceForCalculus); + + auto subtitleBox = option.rect; + subtitleBox.setTop(titleBox.bottom() + distanceToSubline); + subtitleBox.setBottom(subtitleBox.top() + 4 * distanceToSubline); + subtitleBox.setLeft(iconBox.right() + baseDistanceForCalculus); + subtitleBox.setRight(subtitleBox.right() - baseDistanceForCalculus); + + auto titleText = addFolderText(); + auto subtitleText = addInfoText(); + auto addIcon = QIcon(WLTheme.liveBackupPlusIcon()); + const auto addPixmap = addIcon.pixmap(iconBox.size(), QIcon::Normal); + + painter->save(); + painter->drawPixmap(QStyle::visualRect(option.direction, option.rect, iconBox).left(), iconBox.top(), addPixmap); + + drawElidedText(painter, option, titleTextFm, titleFont, titleText, titleBox); + + drawElidedText(painter, option, subtitleTextFm, subtitleFont, subtitleText, subtitleBox); + + painter->restore(); +} + +void FolderStatusDelegate::drawElidedText(QPainter *painter, QStyleOptionViewItem option, QFontMetrics fontMetric, QFont font, QString text, QRect rect) const{ + const auto elidedText = fontMetric.elidedText(text, Qt::ElideRight, rect.width()); + painter->setFont(font); + painter->drawText(QStyle::visualRect(option.direction, option.rect, rect), Qt::AlignLeft, elidedText); +} + void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { + QStyleOptionViewItem opt = option; + QFont font = opt.font; + font.setPixelSize(WLTheme.settingsTextPixel()); + opt.font = font; + + QStyledItemDelegate::paint(painter, opt, index); + if (index.data(AddButton).toBool()) { - const_cast(option).showDecorationSelected = false; + drawAddButton(painter, opt, index); + return; } - QStyledItemDelegate::paint(painter, option, index); - auto textAlign = Qt::AlignLeft; - const auto aliasFont = makeAliasFont(option.font); - const auto subFont = option.font; - const auto errorFont = subFont; - auto progressFont = subFont; + const auto aliasFont = makeAliasFont(opt.font); + const auto subFont = opt.font; - progressFont.setPointSize(subFont.pointSize() - 2); + const auto errorFont = subFont; QFontMetrics subFm(subFont); QFontMetrics aliasFm(aliasFont); @@ -124,23 +191,6 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & const auto aliasMargin = aliasFm.height() / 2; const auto margin = subFm.height() / 4; - if (index.data(AddButton).toBool()) { - QStyleOptionButton opt; - static_cast(opt) = option; - if (opt.state & QStyle::State_Enabled && opt.state & QStyle::State_MouseOver && index == _pressedIndex) { - opt.state |= QStyle::State_Sunken; - } else { - opt.state |= QStyle::State_Raised; - } - opt.text = addFolderText(); - opt.rect = addButtonRect(option.rect, option.direction); - painter->save(); - painter->setFont(qApp->font("QPushButton")); - QApplication::style()->drawControl(QStyle::CE_PushButton, &opt, painter, option.widget); - painter->restore(); - return; - } - if (dynamic_cast(index.model())->classify(index) != FolderStatusModel::RootFolder) { return; } @@ -153,7 +203,6 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & auto errorTexts = qvariant_cast(index.data(FolderErrorMsg)); auto infoTexts = qvariant_cast(index.data(FolderInfoMsg)); - auto overallPercent = qvariant_cast(index.data(SyncProgressOverallPercent)); auto overallString = qvariant_cast(index.data(SyncProgressOverallString)); auto itemString = qvariant_cast(index.data(SyncProgressItemString)); auto syncEnabled = qvariant_cast(index.data(FolderAccountConnected)); @@ -180,7 +229,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & localPathRect.setTop(remotePathRect.bottom() + margin); localPathRect.setBottom(localPathRect.top() + subFm.height()); - iconRect.setBottom(localPathRect.bottom()); + iconRect.setBottom(iconRect.top() + WLTheme.treeViewIconSize()); iconRect.setWidth(iconRect.height()); const auto nextToIcon = iconRect.right() + aliasMargin; @@ -188,7 +237,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & localPathRect.setLeft(nextToIcon); remotePathRect.setLeft(nextToIcon); - auto optionsButtonVisualRect = optionsButtonRect(option.rect, option.direction); + const auto iconSize = iconRect.width(); statusIcon.paint( painter, @@ -196,6 +245,10 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & Qt::AlignCenter, syncEnabled ? QIcon::Normal : QIcon::Disabled ); + + // TODO SES-459 Check if working + // const auto statusPixmap = statusIcon.pixmap(iconSize, iconSize, syncEnabled ? QIcon::Normal : QIcon::Disabled); + // painter->drawPixmap(QStyle::visualRect(option.direction, option.rect, iconRect).left(), iconRect.top(), statusPixmap); auto palette = option.palette; @@ -210,37 +263,32 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & painter->setPen(palette.color(colourGroup, QPalette::Text)); } - const auto elidedAlias = aliasFm.elidedText(aliasText, Qt::ElideRight, aliasRect.width()); - painter->setFont(aliasFont); - painter->drawText(QStyle::visualRect(option.direction, option.rect, aliasRect), textAlign, elidedAlias); + drawElidedText(painter, option, aliasFm, aliasFont, aliasText, aliasRect); const auto showProgess = !overallString.isEmpty() || !itemString.isEmpty(); if (!showProgess) { - painter->setFont(subFont); - const auto elidedRemotePathText = subFm.elidedText(syncText, Qt::ElideRight, remotePathRect.width()); - painter->drawText(QStyle::visualRect(option.direction, option.rect, remotePathRect), textAlign, elidedRemotePathText); + drawElidedText(painter, option, subFm, subFont, syncText, remotePathRect); - const auto elidedPathText = subFm.elidedText(pathText, Qt::ElideMiddle, localPathRect.width()); - painter->drawText(QStyle::visualRect(option.direction, option.rect, localPathRect), textAlign, elidedPathText); + drawElidedText(painter, option, subFm, subFont, pathText, localPathRect); } - auto textBoxTop = iconRect.bottom() + margin; + auto textBoxTop = qMax(localPathRect.bottom(), remotePathRect.bottom()) + margin; // paint an error overlay if there is an error string or conflict string - auto drawTextBox = [&](const QStringList &texts, QColor color) { + auto drawTextBox = [&](const QStringList &texts, QColor color, QColor borderColor) { auto rect = localPathRect; rect.setLeft(iconRect.left()); rect.setTop(textBoxTop); rect.setHeight(texts.count() * subFm.height() + 2 * margin); - rect.setRight(option.rect.right() - margin); + rect.setRight(option.rect.right() - aliasMargin); // save previous state to not mess up colours with the background (fixes issue: https://github.com/nextcloud/desktop/issues/1237) painter->save(); painter->setBrush(color); - painter->setPen(QColor(0xaa, 0xaa, 0xaa)); + painter->setPen(borderColor); painter->drawRoundedRect(QStyle::visualRect(option.direction, option.rect, rect), 4, 4); - painter->setPen(Qt::white); + painter->setPen(Qt::black); painter->setFont(errorFont); QRect textRect(rect.left() + margin, rect.top() + margin, @@ -258,73 +306,124 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & }; if (!conflictTexts.isEmpty()) { - drawTextBox(conflictTexts, QColor(0xba, 0xba, 0x4d)); + drawTextBox(conflictTexts, QColor(WLTheme.warningColor()), QColor(WLTheme.warningBorderColor())); } if (!errorTexts.isEmpty()) { - drawTextBox(errorTexts, QColor(0xbb, 0x4d, 0x4d)); + drawTextBox(errorTexts, QColor(WLTheme.errorColor()), QColor(WLTheme.errorBorderColor())); } if (!infoTexts.isEmpty()) { - drawTextBox(infoTexts, QColor(0x4d, 0x4d, 0xba)); + drawTextBox(infoTexts, QColor(WLTheme.infoColor()), QColor(WLTheme.infoBorderColor())); } // Sync File Progress Bar: Show it if syncFile is not empty. if (showProgess) { - const auto fileNameTextHeight = subFm.boundingRect(tr("File")).height(); - constexpr auto barHeight = 7; // same height as quota bar - const auto overallWidth = option.rect.right() - aliasMargin - optionsButtonVisualRect.width() - nextToIcon; + drawSyncProgressBar(painter, opt, index, subFm, aliasMargin, remotePathRect, margin, nextToIcon); + } - painter->save(); + drawMoreOptionsButton(painter, option, index); +} + +void FolderStatusDelegate::drawSyncProgressBar(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index, const QFontMetrics &subFm, const int aliasMargin, const QRect &remotePathRect, const int margin, const int nextToIcon) const +{ + auto overallPercent = qvariant_cast(index.data(SyncProgressOverallPercent)); + auto overallString = qvariant_cast(index.data(SyncProgressOverallString)); + auto optionsButtonVisualRect = optionsButtonRect(option.rect, option.direction); + + const auto fileNameTextHeight = subFm.boundingRect(tr("File")).height(); + constexpr auto barHeight = 7; // same height as quota bar + const auto overallWidth = option.rect.right() - aliasMargin - optionsButtonVisualRect.width() - nextToIcon; + + QFont progressFont(option.font); + progressFont.setPixelSize(WLTheme.settingsTextPixel()); + progressFont.setWeight(WLTheme.settingsTitleWeightNormal()); + painter->save(); // Overall Progress Bar. - const auto progressBarRect = QRect(nextToIcon, - remotePathRect.top(), - overallWidth - 2 * margin, - barHeight); - - QStyleOptionProgressBar progressBarOpt; - - progressBarOpt.state = option.state | QStyle::State_Horizontal; - progressBarOpt.minimum = 0; - progressBarOpt.maximum = 100; - progressBarOpt.progress = overallPercent; - progressBarOpt.state = QStyle::StateFlag::State_Horizontal; - progressBarOpt.rect = QStyle::visualRect(option.direction, option.rect, progressBarRect); + const auto progressBarRect = QRect(nextToIcon, + remotePathRect.top(), + overallWidth - 2 * margin, + barHeight); + + QStyleOptionProgressBar progressBarOpt; + + progressBarOpt.state = option.state | QStyle::State_Horizontal; + progressBarOpt.minimum = 0; + progressBarOpt.maximum = 100; + progressBarOpt.progress = overallPercent; + progressBarOpt.state = QStyle::StateFlag::State_Horizontal; + progressBarOpt.rect = QStyle::visualRect(option.direction, option.rect, progressBarRect); + QPalette paletteTmp = progressBarOpt.palette; + paletteTmp.setColor(QPalette::Base, WLTheme.white()); + paletteTmp.setColor(QPalette::Highlight, WLTheme.syncProgressColor()); + progressBarOpt.palette = paletteTmp; + #ifdef Q_OS_MACOS - backupStyle->drawControl(QStyle::CE_ProgressBar, &progressBarOpt, painter, option.widget); + backupStyle->drawControl(QStyle::CE_ProgressBar, &progressBarOpt, painter, option.widget); #else - QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOpt, painter, option.widget); + QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOpt, painter, option.widget); #endif - // itemString is e.g. Syncing fileName1, filename2 - // syncText is Synchronizing files in local folders or Synchronizing virtual files in local folder - const auto generalSyncStatus = !itemString.isEmpty() ? itemString : syncText; - QRect generalSyncStatusRect; - generalSyncStatusRect.setTop(progressBarRect.bottom() + margin); - generalSyncStatusRect.setHeight(fileNameTextHeight); - generalSyncStatusRect.setLeft(progressBarRect.left()); - generalSyncStatusRect.setWidth(progressBarRect.width()); - painter->setFont(progressFont); +// Overall Progress Text + QRect overallProgressRect; + overallProgressRect.setTop(progressBarRect.bottom() + margin); + overallProgressRect.setHeight(fileNameTextHeight); + overallProgressRect.setLeft(progressBarRect.left()); + overallProgressRect.setWidth(progressBarRect.width()); - painter->drawText(QStyle::visualRect(option.direction, option.rect, generalSyncStatusRect), Qt::AlignLeft | Qt::AlignVCenter, generalSyncStatus); + painter->setFont(progressFont); - painter->restore(); - } + painter->drawText(QStyle::visualRect(option.direction, option.rect, overallProgressRect), Qt::AlignLeft | Qt::AlignVCenter, overallString); + + // // itemString is e.g. Syncing fileName1, filename2 + // // syncText is Synchronizing files in local folders or Synchronizing virtual files in local folder + // const auto generalSyncStatus = !itemString.isEmpty() ? itemString : syncText; + // QRect generalSyncStatusRect; + // generalSyncStatusRect.setTop(progressBarRect.bottom() + margin); + // generalSyncStatusRect.setHeight(fileNameTextHeight); + // generalSyncStatusRect.setLeft(progressBarRect.left()); + // generalSyncStatusRect.setWidth(progressBarRect.width()); + // // painter->setFont(progressFont); + + // painter->drawText(QStyle::visualRect(option.direction, option.rect, generalSyncStatusRect), Qt::AlignLeft | Qt::AlignVCenter, generalSyncStatus); painter->restore(); +} + +void FolderStatusDelegate::drawMoreOptionsButton(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + auto optionsButtonVisualRect = optionsButtonRect(option.rect, option.direction); + + QStyleOptionButton btnOpt; + btnOpt.state = option.state; + btnOpt.state &= ~(QStyle::State_Selected | QStyle::State_HasFocus | QStyle::State_MouseOver); + btnOpt.state |= QStyle::State_Raised; + if(optionsButtonVisualRect.contains(MousePos) ) { - QStyleOptionToolButton btnOpt; - btnOpt.state = option.state; - btnOpt.state &= ~(QStyle::State_Selected | QStyle::State_HasFocus); + btnOpt.state |= QStyle::State_MouseOver; + } + + if (btnOpt.state & QStyle::State_Enabled && btnOpt.state & QStyle::State_MouseOver && index == _pressedIndex) { + btnOpt.state |= QStyle::State_Sunken; + } else { btnOpt.state |= QStyle::State_Raised; - btnOpt.arrowType = Qt::NoArrow; - btnOpt.subControls = QStyle::SC_ToolButton; - btnOpt.rect = optionsButtonVisualRect; - btnOpt.icon = _iconMore; - const auto buttonSize = QApplication::style()->pixelMetric(QStyle::PM_ButtonIconSize); - btnOpt.iconSize = QSize(buttonSize, buttonSize); - QApplication::style()->drawComplexControl(QStyle::CC_ToolButton, &btnOpt, painter); } + + btnOpt.rect = optionsButtonVisualRect; + btnOpt.icon = _iconMore; + const auto iconSize = optionsButtonIconSize(); + btnOpt.iconSize = QSize(iconSize, iconSize); + QWidget buttonWidget; + buttonWidget.setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::MoreOptions)); + + QApplication::style()-> + drawControl( + static_cast(sesStyle::CE_TreeViewMoreOptions), &btnOpt, painter, &buttonWidget); +} + +int FolderStatusDelegate::optionsButtonIconSize() { + // Using this calculation to use the DPI-Scaled values. The QStyleHelper::dpiScaled is not accessible from here. + return QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize) - QApplication::style()->pixelMetric(QStyle::PM_MenuScrollerHeight); } bool FolderStatusDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, @@ -335,12 +434,24 @@ bool FolderStatusDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, case QEvent::MouseMove: if (const auto *view = qobject_cast(option.widget)) { auto *me = dynamic_cast(event); - QModelIndex index; + QModelIndex pressedIndex; if (me->buttons()) { - index = view->indexAt(me->pos()); + pressedIndex = view->indexAt(me->pos()); } - if (_pressedIndex != index) { - _pressedIndex = index; + if (_pressedIndex != pressedIndex) { + _pressedIndex = pressedIndex; + view->viewport()->update(); + } + auto optionsButtonVisualRect = optionsButtonRect(option.rect, option.direction); + + MousePos = me->pos(); + if(optionsButtonVisualRect.contains(MousePos)) + { + _hoveredIndex = index; + view->viewport()->update(); + } else if(_hoveredIndex.isValid()) + { + _hoveredIndex = QModelIndex(); view->viewport()->update(); } } @@ -356,37 +467,29 @@ bool FolderStatusDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, QRect FolderStatusDelegate::optionsButtonRect(QRect within, Qt::LayoutDirection direction) { - QFont font = QFont(); + QFont font = QFont(WLTheme.settingsFont()); QFont aliasFont = makeAliasFont(font); QFontMetrics fm(font); QFontMetrics aliasFm(aliasFont); within.setHeight(FolderStatusDelegate::rootFolderHeightWithoutErrors(fm, aliasFm)); - QStyleOptionToolButton opt; - int e = QApplication::style()->pixelMetric(QStyle::PM_ButtonIconSize); - opt.rect.setSize(QSize(e,e)); - QSize size = QApplication::style()->sizeFromContents(QStyle::CT_ToolButton, &opt, opt.rect.size()); - - int margin = QApplication::style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); - QRect r(QPoint(within.right() - size.width() - margin, + QStyleOptionButton opt; + int iconSize = optionsButtonIconSize(); + opt.rect.setSize(QSize(iconSize,iconSize)); + QSize size = QApplication::style()->sizeFromContents( + static_cast(sesStyle::CT_TreeViewMoreOptions), &opt, opt.rect.size()); + + // Using PM_LargeIconSize as margin because it get DPI Scaled, which I canot access from here + int margin = QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize); + QRect r(QPoint(within.right() - size.width() - aliasFm.height() / 2, within.top() + within.height() / 2 - size.height() / 2), size); return QStyle::visualRect(direction, within, r); } -QRect FolderStatusDelegate::addButtonRect(QRect within, Qt::LayoutDirection direction) -{ - QFontMetrics fm(qApp->font("QPushButton")); - QStyleOptionButton opt; - opt.text = addFolderText(); - QSize size = QApplication::style()->sizeFromContents(QStyle::CT_PushButton, &opt, fm.size(Qt::TextSingleLine, opt.text)); - QRect r(QPoint(within.left(), within.top() + within.height() / 2 - size.height() / 2), size); - return QStyle::visualRect(direction, within, r); -} - QRect FolderStatusDelegate::errorsListRect(QRect within) { - QFont font = QFont(); + QFont font = QFont(WLTheme.settingsFont()); QFont aliasFont = makeAliasFont(font); QFontMetrics fm(font); QFontMetrics aliasFm(aliasFont); @@ -401,7 +504,7 @@ void FolderStatusDelegate::slotStyleChanged() void FolderStatusDelegate::customizeStyle() { - _iconMore = Theme::createColorAwareIcon(QLatin1String(":/client/theme/more.svg")); + _iconMore = Theme::createColorAwareIcon(QLatin1String(":/client/theme/ses/ses-more.svg"), QSize(128, 128)); } } // namespace OCC diff --git a/src/gui/folderstatusdelegate.h b/src/gui/folderstatusdelegate.h index 4bb2bfe0c0a0d..2eabbdcbb4c11 100644 --- a/src/gui/folderstatusdelegate.h +++ b/src/gui/folderstatusdelegate.h @@ -18,6 +18,7 @@ class FolderStatusDelegate : public QStyledItemDelegate Q_OBJECT public: FolderStatusDelegate(); + QPoint MousePos; enum datarole { FolderAliasRole = Qt::UserRole + 100, HeaderRole, @@ -48,8 +49,9 @@ class FolderStatusDelegate : public QStyledItemDelegate /** * return the position of the option button within the item */ + + static QRect optionsButtonRect(QRect within, Qt::LayoutDirection direction); - static QRect addButtonRect(QRect within, Qt::LayoutDirection direction); static QRect errorsListRect(QRect within); static int rootFolderHeightWithoutErrors(const QFontMetrics &fm, const QFontMetrics &aliasFm); @@ -58,9 +60,17 @@ public slots: private: void customizeStyle(); + void drawAddButton(QPainter *,const QStyleOptionViewItem &, const QModelIndex &) const; + void drawElidedText(QPainter *painter, QStyleOptionViewItem option, QFontMetrics fontMetric, QFont font, QString text, QRect rect) const; + void drawSyncProgressBar(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index, const QFontMetrics &subFm, const int aliasMargin, const QRect &remotePathRect, const int margin, const int nextToIcon) const; + void drawMoreOptionsButton(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; + + static int optionsButtonIconSize(); static QString addFolderText(); + static QString addInfoText(); QPersistentModelIndex _pressedIndex; + QPersistentModelIndex _hoveredIndex; QIcon _iconMore; }; diff --git a/src/gui/folderstatusview.cpp b/src/gui/folderstatusview.cpp index 86d16e6fc1238..05fe7cac5f59b 100644 --- a/src/gui/folderstatusview.cpp +++ b/src/gui/folderstatusview.cpp @@ -5,11 +5,15 @@ #include "folderstatusview.h" #include "folderstatusdelegate.h" +#include "whitelabeltheme.h" namespace OCC { FolderStatusView::FolderStatusView(QWidget *parent) : QTreeView(parent) { + #ifdef Q_OS_MAC + setPalette(QPalette(QPalette::ButtonText, WLTheme.white())); + #endif } QModelIndex FolderStatusView::indexAt(const QPoint &point) const @@ -23,11 +27,7 @@ QModelIndex FolderStatusView::indexAt(const QPoint &point) const QRect FolderStatusView::visualRect(const QModelIndex &index) const { - QRect rect = QTreeView::visualRect(index); - if (index.data(FolderStatusDelegate::AddButton).toBool()) { - return FolderStatusDelegate::addButtonRect(rect, layoutDirection()); - } - return rect; + return QTreeView::visualRect(index); } } // namespace OCC diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp index fae6d197a0649..178d2e62de828 100644 --- a/src/gui/folderwizard.cpp +++ b/src/gui/folderwizard.cpp @@ -12,7 +12,9 @@ #include "account.h" #include "selectivesyncdialog.h" #include "accountstate.h" +#include "buttonstyle.h" #include "creds/abstractcredentials.h" +#include "SesComponents/syncdirvalidation.h" #include "wizard/owncloudwizard.h" #include "common/asserts.h" @@ -22,11 +24,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -57,7 +61,7 @@ QString FormatWarningsWizardPage::formatWarnings(const QStringList &warnings) co if (warnings.count() == 1) { formattedWarning = Utility::escape(warnings.first()); } else if (warnings.count() > 1) { - formattedWarning = "

    "; + formattedWarning = "
      "; for (const auto &warning : warnings) { formattedWarning += QString::fromLatin1("
    • %1
    • ").arg(Utility::escape(warning)); } @@ -83,8 +87,10 @@ FolderWizardLocalPath::FolderWizardLocalPath(const AccountPtr &account) _ui.localFolderLineEdit->setText(QDir::toNativeSeparators(defaultPath)); _ui.localFolderLineEdit->setToolTip(tr("Enter the path to the local folder.")); - _ui.warnLabel->setTextFormat(Qt::RichText); - _ui.warnLabel->hide(); + _ui.sesSnackBar->setWordWrap(true); + _ui.sesSnackBar->hide(); + + _ui.localFolderChooseBtn->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); changeStyle(); } @@ -93,12 +99,12 @@ FolderWizardLocalPath::~FolderWizardLocalPath() = default; void FolderWizardLocalPath::initializePage() { - _ui.warnLabel->hide(); + _ui.sesSnackBar->hide(); } void FolderWizardLocalPath::cleanupPage() { - _ui.warnLabel->hide(); + _ui.sesSnackBar->hide(); } bool FolderWizardLocalPath::isComplete() const @@ -106,26 +112,28 @@ bool FolderWizardLocalPath::isComplete() const QUrl serverUrl = _account->url(); serverUrl.setUserName(_account->credentials()->user()); + SyncDirValidator syncDirValidator(_ui.localFolderLineEdit->text()); + if (!syncDirValidator.isValidDir()) { + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setError(syncDirValidator.message()); + return false; + } + const auto errorStr = FolderMan::instance()->checkPathValidityForNewFolder( QDir::fromNativeSeparators(_ui.localFolderLineEdit->text()), serverUrl).second; - - bool isOk = errorStr.isEmpty(); - QStringList warnStrings; - if (!isOk) { - warnStrings << errorStr; + if(errorStr.isEmpty()) + { + _ui.sesSnackBar->hide(); + _ui.sesSnackBar->clearMessage(); + return true; } - - _ui.warnLabel->setWordWrap(true); - if (isOk) { - _ui.warnLabel->hide(); - _ui.warnLabel->clear(); - } else { - _ui.warnLabel->show(); - QString warnings = formatWarnings(warnStrings); - _ui.warnLabel->setText(warnings); + else + { + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setWarning(formatWarnings(QStringList(errorStr))); + return false; } - return isOk; } void FolderWizardLocalPath::slotChooseLocalFolder() @@ -149,6 +157,15 @@ void FolderWizardLocalPath::slotChooseLocalFolder() // set the last directory component name as alias _ui.localFolderLineEdit->setText(QDir::toNativeSeparators(dir)); } + + SyncDirValidator syncDirValidator(_ui.localFolderLineEdit->text()); + if (!syncDirValidator.isValidDir() && !dir.isEmpty()) { + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setError(syncDirValidator.message()); + emit completeChanged(); + return; + } + emit completeChanged(); } @@ -171,8 +188,60 @@ void FolderWizardLocalPath::changeEvent(QEvent *e) void FolderWizardLocalPath::changeStyle() { - const auto yellowWarnPalette = yellowWarnWidgetPalette(_ui.warnLabel->palette()); - _ui.warnLabel->setPalette(yellowWarnPalette); + _ui.title->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsBigTitleSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor())); + + _ui.title->setProperty("text", tr("Add Folder Sync")); + + _ui.subTitle->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor())); + + _ui.subTitle->setProperty("text", tr("Step 1 of 3: Select local folder")); + + _ui.description->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor())); + + _ui.description->setProperty("text", + tr("Select a folder on your hard drive that should be permanetly connected to your %1. All files and " + "subfolders are automatically uploaded and synchronized").arg(Theme::instance()->appNameGUI())); + + _ui.localFolderLineEdit->setStyleSheet(QString( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ") + .arg(WLTheme.folderWizardPathColor()) + .arg(WLTheme.settingsFont()) + .arg(WLTheme.settingsTextSize()) + .arg(WLTheme.settingsTextWeight()) + .arg(WLTheme.buttonRadius()) + .arg(WLTheme.menuBorderColor()) + .arg(WLTheme.white()) + ); + + _ui.localFolderChooseBtn->setProperty("text", tr("Choose")); + + +#if defined(Q_OS_MAC) + _ui.localFolderChooseBtn->setStyleSheet( + QStringLiteral("QPushButton { margin-left: 5px; margin-top: 12px; height: 40px; width: 80px; %1} ").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight500(), + WLTheme.white() + ) + ) + ); +#endif + } // ================================================================================= @@ -181,7 +250,7 @@ FolderWizardRemotePath::FolderWizardRemotePath(const AccountPtr &account) , _account(account) { _ui.setupUi(this); - _ui.warnFrame->hide(); + _ui.sesSnackBar->hide(); _ui.folderTreeWidget->setSortingEnabled(true); _ui.folderTreeWidget->sortByColumn(0, Qt::AscendingOrder); @@ -192,11 +261,21 @@ FolderWizardRemotePath::FolderWizardRemotePath(const AccountPtr &account) connect(_ui.folderTreeWidget, &QTreeWidget::currentItemChanged, this, &FolderWizardRemotePath::slotCurrentItemChanged); connect(_ui.folderEntry, &QLineEdit::textEdited, this, &FolderWizardRemotePath::slotFolderEntryEdited); + _ui.refreshButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + _ui.addFolderButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + _ui.buttonLayout->setAlignment(Qt::AlignLeft); + _lscolTimer.setInterval(500); _lscolTimer.setSingleShot(true); connect(&_lscolTimer, &QTimer::timeout, this, &FolderWizardRemotePath::slotLsColFolderEntry); _ui.folderTreeWidget->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + +#ifdef Q_OS_MAC + _ui.folderTreeWidget->setPalette(QPalette(WLTheme.white())); +#endif + // Make sure that there will be a scrollbar when the contents is too wide _ui.folderTreeWidget->header()->setStretchLastSection(false); @@ -218,7 +297,56 @@ void FolderWizardRemotePath::slotAddRemoteFolder() dlg->setLabelText(tr("Enter the name of the new folder to be created below \"%1\":") .arg(parent)); dlg->open(this, SLOT(slotCreateRemoteFolder(QString))); + + QDialogButtonBox *buttonBox = dlg->findChild(); + buttonBox->setLayoutDirection(Qt::RightToLeft); + buttonBox->layout()->setSpacing(16); + buttonBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); + buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); dlg->setAttribute(Qt::WA_DeleteOnClose); + + dlg->setStyleSheet( + QStringLiteral("QDialog { %1; background-color: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.dialogBackgroundColor() + ) + ); + + dlg->findChild()->setStyleSheet( + QStringLiteral( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ").arg( + WLTheme.folderWizardPathColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.buttonRadius(), + WLTheme.menuBorderColor(), + WLTheme.white() + ) + ); + + dlg->findChild()->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor()) + ); + + #ifdef Q_OS_MAC + buttonBox->layout()->setSpacing(24); + + buttonBox->button(QDialogButtonBox::Ok)->setStyleSheet( + buttonBox->button(QDialogButtonBox::Ok)->styleSheet() + + QStringLiteral(" color: %1; ").arg(WLTheme.white()) + ); + #endif } void FolderWizardRemotePath::slotCreateRemoteFolder(const QString &folder) @@ -244,7 +372,7 @@ void FolderWizardRemotePath::slotCreateRemoteFolder(const QString &folder) void FolderWizardRemotePath::slotCreateRemoteFolderFinished() { qCDebug(lcWizard) << "webdav mkdir request finished"; - showWarn(tr("Folder was successfully created on %1.").arg(Theme::instance()->appNameGUI())); + showSuccess(tr("Folder was successfully created on %1.").arg(Theme::instance()->appNameGUI())); slotRefreshFolders(); _ui.folderEntry->setText(dynamic_cast(sender())->path()); slotLsColFolderEntry(); @@ -254,9 +382,9 @@ void FolderWizardRemotePath::slotHandleMkdirNetworkError(QNetworkReply *reply) { qCWarning(lcWizard) << "webdav mkdir request failed:" << reply->error(); if (!_account->credentials()->stillValid(reply)) { - showWarn(tr("Authentication failed accessing %1").arg(Theme::instance()->appNameGUI())); + showError(tr("Authentication failed accessing %1").arg(Theme::instance()->appNameGUI())); } else { - showWarn(tr("Failed to create the folder on %1. Please check manually.") + showError(tr("Failed to create the folder on %1. Please check manually.") .arg(Theme::instance()->appNameGUI())); } } @@ -274,7 +402,7 @@ void FolderWizardRemotePath::slotHandleLsColNetworkError(QNetworkReply *reply) } auto job = qobject_cast(sender()); ASSERT(job); - showWarn(tr("Failed to list a folder. Error: %1") + showError(tr("Failed to list a folder. Error: %1") .arg(job->errorStringParsingBody())); } @@ -529,12 +657,33 @@ void FolderWizardRemotePath::initializePage() void FolderWizardRemotePath::showWarn(const QString &msg) const { if (msg.isEmpty()) { - _ui.warnFrame->hide(); + _ui.sesSnackBar->hide(); + + } else { + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setWarning(msg); + } +} + +void FolderWizardRemotePath::showSuccess(const QString &msg) const +{ + if (msg.isEmpty()) { + _ui.sesSnackBar->hide(); } else { - _ui.warnFrame->show(); - _ui.infoLabel->hide(); - _ui.warnLabel->setText(msg); + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setSuccess(msg); + } +} + +void FolderWizardRemotePath::showError(const QString &msg) const +{ + if (msg.isEmpty()) { + _ui.sesSnackBar->hide(); + + } else { + _ui.sesSnackBar->show(); + _ui.sesSnackBar->setError(msg); } } @@ -556,32 +705,180 @@ void FolderWizardRemotePath::changeEvent(QEvent *e) void FolderWizardRemotePath::changeStyle() { - const auto yellowWarnPalette = yellowWarnWidgetPalette(_ui.warnLabel->palette()); - _ui.warnLabel->setPalette(yellowWarnPalette); + _ui.title->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsBigTitleSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor())); + + _ui.title->setProperty("text", tr("Add Folder Sync")); + + _ui.subTitle->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor())); + + _ui.subTitle->setProperty("text", tr("Step 2 of 3: Directory in your %1").arg(Theme::instance()->appNameGUI())); + + _ui.description1->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor())); + + _ui.description1->setProperty("text", + tr("Please now select or create a target folder in your %1 where the content should be uploaded and synchronized.").arg(Theme::instance()->appNameGUI())); + + _ui.description2->setProperty("text", + tr("Both folders are permanently linked and the respective contents are automatically synchronized and updated.")); + + _ui.description2->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor())); + + _ui.folderEntry->setStyleSheet( + QStringLiteral("color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px;") + .arg(WLTheme.folderWizardPathColor()) + .arg(WLTheme.settingsFont()) + .arg(WLTheme.settingsTextSize()) + .arg(WLTheme.settingsTextWeight()) + .arg(WLTheme.buttonRadius()) + .arg(WLTheme.menuBorderColor())); + + _ui.folderTreeWidget->setStyleSheet( + QStringLiteral(" %1; background: %2; ").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.white() + ) + ); + + _ui.folderTreeWidget->setStyleSheet( + _ui.folderTreeWidget->styleSheet() + QStringLiteral("QTreeWidget { background: %1; }").arg(WLTheme.white()) + ); + + _ui.refreshButton->setProperty("text", tr("Refresh")); + + _ui.addFolderButton->setProperty("text", tr("Create folder")); + +#if defined(Q_OS_MAC) + _ui.buttonLayout->setSpacing(24); +#endif } // ==================================================================================== FolderWizardSelectiveSync::FolderWizardSelectiveSync(const AccountPtr &account) { - auto *layout = new QVBoxLayout(this); + _uiSelectiveSync.setupUi(this); + auto *layout = _uiSelectiveSync.verticalLayout; _selectiveSync = new SelectiveSyncWidget(account, this); layout->addWidget(_selectiveSync); if (!Theme::instance()->disableVirtualFilesSyncFolder() && Theme::instance()->showVirtualFilesOption() && bestAvailableVfsMode() != Vfs::Off) { - _virtualFilesCheckBox = new QCheckBox(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); - connect(_virtualFilesCheckBox, &QCheckBox::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked); - connect(_virtualFilesCheckBox, &QCheckBox::checkStateChanged, this, [this](int state) { - _selectiveSync->setEnabled(state == Qt::Unchecked); - }); - _virtualFilesCheckBox->setChecked(bestAvailableVfsMode() == Vfs::WindowsCfApi); - layout->addWidget(_virtualFilesCheckBox); + + #ifdef IONOS_BUILD + setupVirtualFilesCheckbox(); + #else + _virtualFilesCheckBox = new QCheckBox(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); + + connect(_virtualFilesCheckBox, &QCheckBox::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked); + connect(_virtualFilesCheckBox, &QCheckBox::stateChanged, this, [this](int state) { + _selectiveSync->setEnabled(state == Qt::Unchecked); + }); + _virtualFilesCheckBox->setChecked(bestAvailableVfsMode() == Vfs::WindowsCfApi); + _virtualFilesCheckBox->setStyleSheet("margin-top: 5px;"); + + QFont f; + QFont::Weight w; + f.setFamily(WLTheme.settingsFont()); + f.setWeight( QFont::Weight::Normal); + f.setPixelSize(WLTheme.settingsTextPixel()); + _virtualFilesCheckBox->setFont(f); + #endif + + layout->addLayout(_virtualFilesHBox); } + + _selectiveSync->setStyleSheet(QStringLiteral(" %1; background: %2; ").arg(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor()), + WLTheme.white())); + + _uiSelectiveSync.title->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsBigTitleSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor())); + _uiSelectiveSync.title->setProperty("text", tr("Add Folder Sync")); + + _uiSelectiveSync.subTitle->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor())); + + _uiSelectiveSync.subTitle->setProperty("text", tr("Step 3 of 3: Selektive Synchronisation")); } FolderWizardSelectiveSync::~FolderWizardSelectiveSync() = default; +void FolderWizardSelectiveSync::setupVirtualFilesCheckbox(){ + + _virtualFilesHBox = new QHBoxLayout(); + _virtualFilesHBox->setSpacing(5); + _virtualFilesHBox->setAlignment(Qt::AlignLeft); + + _virtualFilesCheckBox = new QCheckBox(); + _virtualFilesCheckBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + + connect(_virtualFilesCheckBox, &QCheckBox::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked); + connect(_virtualFilesCheckBox, &QCheckBox::stateChanged, this, [this](int state) { + _selectiveSync->setEnabled(state == Qt::Unchecked); + }); + + _virtualFilesCheckBox->setChecked(bestAvailableVfsMode() == Vfs::WindowsCfApi); + + _virtualFilesCheckBoxLabel = new ClickableLabel(tr("Use virtual files instead of downloading content immediately %1") + .arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); + _virtualFilesCheckBoxLabel->setWordWrap(true); + _virtualFilesCheckBoxLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + + connect(_virtualFilesCheckBoxLabel, &ClickableLabel::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxLabelClicked); + connect(_virtualFilesCheckBoxLabel, &ClickableLabel::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked); + + _virtualFilesHBox->addWidget(_virtualFilesCheckBox, 0); + _virtualFilesHBox->addWidget(_virtualFilesCheckBoxLabel, 1); + + _virtualFilesHBox->setAlignment(_virtualFilesCheckBox, Qt::AlignVCenter); + + _virtualFilesCheckBoxLabel->setStyleSheet( + QStringLiteral("QLabel { %1; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); +} + +void FolderWizardSelectiveSync::virtualFilesCheckboxLabelClicked(){ + _virtualFilesCheckBox->setChecked(!_virtualFilesCheckBox->isChecked()); +} + void FolderWizardSelectiveSync::initializePage() { QString targetPath = wizard()->property("targetPath").toString(); @@ -602,11 +899,11 @@ void FolderWizardSelectiveSync::initializePage() if (Utility::isPathWindowsDrivePartitionRoot(wizard()->field(QStringLiteral("sourceFolder")).toString())) { _virtualFilesCheckBox->setChecked(false); _virtualFilesCheckBox->setEnabled(false); - _virtualFilesCheckBox->setText(tr("Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter.")); + _virtualFilesCheckBoxLabel->setText(tr("Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter.")); } else { _virtualFilesCheckBox->setChecked(bestAvailableVfsMode() == Vfs::WindowsCfApi); _virtualFilesCheckBox->setEnabled(true); - _virtualFilesCheckBox->setText(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); + _virtualFilesCheckBoxLabel->setText(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)"))); if (Theme::instance()->enforceVirtualFilesSyncFolder()) { _virtualFilesCheckBox->setChecked(true); @@ -675,7 +972,6 @@ FolderWizard::FolderWizard(AccountPtr account, QWidget *parent) , _folderWizardSourcePage(new FolderWizardLocalPath(account)) , _folderWizardSelectiveSyncPage(new FolderWizardSelectiveSync(account)) { - setWizardStyle(QWizard::ModernStyle); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); setPage(Page_Source, _folderWizardSourcePage); _folderWizardSourcePage->installEventFilter(this); @@ -687,8 +983,14 @@ FolderWizard::FolderWizard(AccountPtr account, QWidget *parent) setPage(Page_SelectiveSync, _folderWizardSelectiveSyncPage); setWindowTitle(tr("Add Folder Sync Connection")); + setButtonLayout({ QWizard::Stretch, QWizard::CancelButton, QWizard::NextButton, QWizard::FinishButton }); setOptions(QWizard::CancelButtonOnLeft); setButtonText(QWizard::FinishButton, tr("Add Sync Connection")); + button(QWizard::NextButton)->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + adjustWizardSize(); + setWizardStyle(QWizard::ClassicStyle); + customizeStyle(); } FolderWizard::~FolderWizard() = default; @@ -716,4 +1018,29 @@ void FolderWizard::resizeEvent(QResizeEvent *event) } } +void FolderWizard::customizeStyle() +{ + // HINT: Customize wizard's own style here, if necessary in the future (Dark-/Light-Mode switching) + + // Set background colors + auto wizardPalette = palette(); + const auto backgroundColor = QColor(WLTheme.dialogBackgroundColor()); + + // Set Color of upper part + wizardPalette.setColor(QPalette::Base, backgroundColor); + + // Set Color of lower part + wizardPalette.setColor(QPalette::Window, backgroundColor); + + // Set separator color + wizardPalette.setColor(QPalette::Mid, backgroundColor); + + setPalette(wizardPalette); +} + +void FolderWizard::adjustWizardSize() +{ + setFixedSize(QSize(WLTheme.wizardFixedWidth(), WLTheme.wizardFixedHeight())); +} + } // end namespace diff --git a/src/gui/folderwizard.h b/src/gui/folderwizard.h index 43d03e00250cc..ba64680ab6d5a 100644 --- a/src/gui/folderwizard.h +++ b/src/gui/folderwizard.h @@ -13,9 +13,11 @@ #include "folder.h" #include "accountfwd.h" +#include "clickablelabel.h" #include "ui_folderwizardsourcepage.h" #include "ui_folderwizardtargetpage.h" +#include "ui_folderwizardselectivesync.h" class QCheckBox; @@ -87,6 +89,8 @@ class FolderWizardRemotePath : public FormatWarningsWizardPage protected slots: void showWarn(const QString & = QString()) const; + void showSuccess(const QString & = QString()) const; + void showError(const QString & = QString()) const; void slotAddRemoteFolder(); void slotCreateRemoteFolder(const QString &); void slotCreateRemoteFolderFinished(); @@ -136,10 +140,16 @@ class FolderWizardSelectiveSync : public QWizardPage private slots: void virtualFilesCheckboxClicked(); + void virtualFilesCheckboxLabelClicked(); private: + void setupVirtualFilesCheckbox(); + + Ui_FolderWizardSelectiveSync _uiSelectiveSync{}; SelectiveSyncWidget *_selectiveSync; + QHBoxLayout *_virtualFilesHBox = nullptr; QCheckBox *_virtualFilesCheckBox = nullptr; + ClickableLabel *_virtualFilesCheckBoxLabel = nullptr; }; /** @@ -166,8 +176,10 @@ class FolderWizard : public QWizard FolderWizardLocalPath *_folderWizardSourcePage; FolderWizardRemotePath *_folderWizardTargetPage = nullptr; FolderWizardSelectiveSync *_folderWizardSelectiveSyncPage; -}; + void customizeStyle(); + void adjustWizardSize(); +}; } // namespace OCC diff --git a/src/gui/folderwizardselectivesync.ui b/src/gui/folderwizardselectivesync.ui new file mode 100644 index 0000000000000..29fd0b148e663 --- /dev/null +++ b/src/gui/folderwizardselectivesync.ui @@ -0,0 +1,85 @@ + + + FolderWizardSelectiveSync + + + + 0 + 0 + 639 + 460 + + + + Form + + + + + + 20 + + + 0 + + + 20 + + + 0 + + + + + font: 18pt bold; + + + Add Folder Sync + + + Qt::PlainText + + + false + + + + + + + color: rgb(16, 73, 150); font: bold; + + + Step 3 of 3: Selektive Synchronisation + + + Qt::PlainText + + + false + + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 349 + 360 + + + + + + + + + \ No newline at end of file diff --git a/src/gui/folderwizardsourcepage.ui b/src/gui/folderwizardsourcepage.ui index 94af3645a594f..7c738c058e209 100644 --- a/src/gui/folderwizardsourcepage.ui +++ b/src/gui/folderwizardsourcepage.ui @@ -1,76 +1,172 @@ - FolderWizardSourcePage - - - - 0 - 0 - 423 - 174 - - - - Form - - - - - - Qt::Vertical - - - - 349 - 0 - - - - - - - - Pick a local folder on your computer to sync - - - - - - - - - - - &Choose … - - - - - - + FolderWizardSourcePage + + + + 0 + 0 + 639 + 460 + + + + Form + + + + + + 20 + + + 0 + + + 20 + + + 0 + + + + + font: 18pt bold; + + + Add Folder Sync + + + Qt::PlainText + + + false + + + + + + + color: rgb(16, 73, 150); font: bold; + + + Step 1 of 3: Select local folder + + + Qt::PlainText + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Qt::PlainText + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 15 + + + + + + + + Qt::NoContextMenu + + + + + + + + + + &Choose + + + + + + + + 0 + 0 + + + + + + + + + + true + + + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 349 + 360 + + + + + - - - - - true - - - QFrame::StyledPanel - - - - - - Qt::RichText - - - 3 - - - - - - - - + + + \ No newline at end of file diff --git a/src/gui/folderwizardtargetpage.ui b/src/gui/folderwizardtargetpage.ui index 132bc60535fca..1d93d3c65d58d 100644 --- a/src/gui/folderwizardtargetpage.ui +++ b/src/gui/folderwizardtargetpage.ui @@ -1,135 +1,237 @@ - FolderWizardTargetPage - - - - 0 - 0 - 520 - 350 - - - - Form - - - - - - - - - true - - - QFrame::Shape::NoFrame - - - QFrame::Shadow::Raised - - - - - - - - TextLabel - - - true - - - - - - - true - - - QFrame::Shape::NoFrame - - - QFrame::Shadow::Plain - - - TextLabel - - - Qt::TextFormat::RichText - - - true - - - 3 - - - - - - - - - - - - Select a remote destination folder - - - true - - - false - - - - - - Create folder - - - - - - - Qt::Orientation::Vertical + FolderWizardTargetPage + + + + 0 + 0 + 639 + 460 + - - - 20 - 40 - + + Form - - - - - - Refresh - - - - - - - true - - - true - - - - Folders - - - - - + + + + + 20 + + + 0 + + + 20 + + + 0 + + + + + font: 18pt bold; + + + Add Folder Sync + + + Qt::PlainText + + + false + + + + + + + color: rgb(16,73, 150);font: bold; + + + Step 2 of 3: Directory in your %1 + + + Qt::PlainText + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Qt::PlainText + + + true + + + + + + + + 0 + 0 + + + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Qt::PlainText + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 12 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Qt::NoContextMenu + + + + + + + + 0 + 0 + + + + true + + + true + + + + Folders + + + + + + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 10 + + + + + + + + 16 + + + + + + 86 + 40 + + + + Refresh + + + + + + + + 167 + 40 + + + + Create folder + + + + + + + + - - - - - - + + + \ No newline at end of file diff --git a/src/gui/ga4/datacollectionwrapper.cpp b/src/gui/ga4/datacollectionwrapper.cpp new file mode 100644 index 0000000000000..b9df10731ff0b --- /dev/null +++ b/src/gui/ga4/datacollectionwrapper.cpp @@ -0,0 +1,66 @@ +#include "datacollectionwrapper.h" + +#ifdef BUILDTYPE_RELWITHDEBINFO + // const QString GA_MEASUREMENT_ID = "G-P9KD4TLW0V"; // Verwende diesen String nur wenn wir in Debug bauen + const QString GA_MEASUREMENT_ID = "G-5XHQT73DSV"; // Verwende diesen String nur wenn wir in Debug bauen +#else + #ifdef Q_OS_WIN + const QString GA_MEASUREMENT_ID = "G-270CYZ49V0"; // Verwende diesen String nur wenn wir in Release bauen + #elif defined(Q_OS_LINUX) + const QString GA_MEASUREMENT_ID = "G-5XHQT73DSV"; // Verwende diesen String nur wenn wir in Release bauen + #elif defined(Q_OS_MAC) + const QString GA_MEASUREMENT_ID = "G-270CYZ49V0"; // Verwende diesen String nur wenn wir in Release bauen + #endif +#endif + + +DataCollectionWrapper::DataCollectionWrapper(QObject *parent) : QObject(parent) { +} + +DataCollectionWrapper::~DataCollectionWrapper() { +} + +void DataCollectionWrapper::clicked(const TrackingPage trackingPage, const TrackingElement trackingButton){ + trackEvent( _trackingPageString[trackingPage], _trackingElementString[trackingButton]); +} + +void DataCollectionWrapper::opened(const TrackingPage trackingPage){ + trackEvent(_trackingEventString[TrackingEvent::Open], _trackingPageString[trackingPage]); +} + +void DataCollectionWrapper::login(){ + trackEvent(QString(), _trackingEventString[TrackingEvent::Login]); +} + +void DataCollectionWrapper::accountRemoved(){ + trackEventImmediately(QString(), _trackingEventString[TrackingEvent::Logout]); +} + +void DataCollectionWrapper::trackEvent(QString page, QString element) { + GAnalytics::getInstance().sendEvent(page, element); +} + +void DataCollectionWrapper::trackEventImmediately(QString page, QString element) +{ + GAnalytics::getInstance().sendEventImmediatley(page, element); +} + +void DataCollectionWrapper::setClientID(const QString clientId) { + GAnalytics::getInstance().setClientID(clientId); +} + +void DataCollectionWrapper::setSendData(const bool sendData) { + GAnalytics::getInstance().enable(sendData); +} + +void DataCollectionWrapper::setAccount(const OCC::AccountPtr account) { + GAnalytics::getInstance().setAccount(account); +} + +void DataCollectionWrapper::initDataCollection() { + GAnalytics* ga = &GAnalytics::getInstance(); + ga->setMeasurementId(GA_MEASUREMENT_ID); + ga->setSendInterval(3000); + ga->setLogLevel(GAnalytics::Debug); + ga->enableValidation(false); +} \ No newline at end of file diff --git a/src/gui/ga4/datacollectionwrapper.h b/src/gui/ga4/datacollectionwrapper.h new file mode 100644 index 0000000000000..f7e97bb01bbae --- /dev/null +++ b/src/gui/ga4/datacollectionwrapper.h @@ -0,0 +1,82 @@ +#ifndef DATACOLLECTIONWRAPPER_H +#define DATACOLLECTIONWRAPPER_H + +#include "ganalytics.h" +#include "account.h" + +class DataCollectionWrapper : public QObject { + + Q_OBJECT + Q_ENUMS(TrackingPage) + Q_ENUMS(TrackingEvent) + Q_ENUMS(TrackingElement) + + +public: + + enum TrackingEvent + { + Click, + Open, + Login, + Logout, + }; + + enum TrackingPage{ + GeneralSettings, + AccountSettings, + }; + + enum TrackingElement{ + PrivacyPolicy, + OpenSourceComponents, + LegalNotice, + MoreInformation, + ServerNotifications, + AutoStart, + ToogleSendData, + AutoCheckforUpdate + }; + + void setClientID(const QString clientId); + void setSendData(const bool sendData); + void setAccount(const OCC::AccountPtr account); + void initDataCollection(); + + DataCollectionWrapper(QObject *parent = 0); + ~DataCollectionWrapper(); + +public slots: + void login(); + void accountRemoved(); + void clicked(const TrackingPage trackingPage, const TrackingElement trackingButton); + void opened(const TrackingPage trackingPage); +private: + void trackEvent(QString page = QString(), QString element = QString()); + void trackEventImmediately(QString page = QString(), QString element = QString()); + + std::map _trackingPageString = { + { GeneralSettings, "GeneralSetting" }, + { AccountSettings, "AccountSettings" }, + }; + + std::map _trackingElementString = { + { PrivacyPolicy, "PrivacyPolicy" }, + { OpenSourceComponents, "OpenSourceComponents" }, + { LegalNotice, "LegalNotice" }, + { MoreInformation, "MoreInformation" }, + { ServerNotifications, "ServerNotifications" }, + { AutoStart, "AutoStart" }, + { ToogleSendData, "ToogleSendData" }, + { AutoCheckforUpdate, "AutoCheckforUpdate" }, + }; + + std::map _trackingEventString = { + { Click, "click" }, + { Open, "screen_view" }, + { Login, "login" }, + { Logout, "logout" }, + }; +}; + +#endif // DATACOLLECTIONWRAPPER_H \ No newline at end of file diff --git a/src/gui/ga4/ganalytics.cpp b/src/gui/ga4/ganalytics.cpp new file mode 100644 index 0000000000000..4f649d7ae28e0 --- /dev/null +++ b/src/gui/ga4/ganalytics.cpp @@ -0,0 +1,168 @@ +/* + * This file is part of Nextcloud Destop - Ionos HiDrive Next + * + * Modifications: + * - Changed the usage of Measurement Protocol to the GA4 API + * - Removed the construction of the json payload + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "ganalytics.h" +#include "ganalytics_worker.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "account.h" + + +GAnalytics::GAnalytics(QObject *parent) : QObject(parent) +{ + d = new GAnalyticsWorker(this); +} + +/** + * Destructor of class GAnalytics. + */ +GAnalytics::~GAnalytics() +{ + delete d; +} + +void GAnalytics::setLogLevel(GAnalytics::LogLevel logLevel) +{ + d->m_logLevel = logLevel; +} + +GAnalytics::LogLevel GAnalytics::logLevel() const +{ + return d->m_logLevel; +} + +void GAnalytics::setViewportSize(const QString &viewportSize) +{ + d->m_viewportSize = viewportSize; +} + +QString GAnalytics::viewportSize() const +{ + return d->m_viewportSize; +} + +void GAnalytics::setLanguage(const QString &language) +{ + d->m_language = language; +} + +QString GAnalytics::language() const +{ + return d->m_language; +} + +void GAnalytics::setAnonymizeIPs(bool anonymize) +{ + d->m_anonymizeIPs = anonymize; +} + +bool GAnalytics::anonymizeIPs() +{ + return d->m_anonymizeIPs; +} + +void GAnalytics::setSendInterval(int milliseconds) +{ + d->m_timer.setInterval(milliseconds); +} + +int GAnalytics::sendInterval() const +{ + return (d->m_timer.interval()); +} + +bool GAnalytics::isEnabled() +{ + return d->m_isEnabled; +} + +void GAnalytics::setMeasurementId(const QString &measurementId) +{ + d->m_measurementId = measurementId; +} + +void GAnalytics::setClientID(const QString &clientID) +{ + d->m_clientID = clientID; +} + +void GAnalytics::enable(bool state) +{ + d->enable(state); +} + +void GAnalytics::enableValidation(bool state) +{ + d->m_validation = state; +} + +void GAnalytics::setNetworkAccessManager(QNetworkAccessManager *networkAccessManager) +{ + if (d->networkManager != networkAccessManager) + { + // Delete the old network manager if it was our child + if (d->networkManager && d->networkManager->parent() == this) + { + d->networkManager->deleteLater(); + } + + d->networkManager = networkAccessManager; + } +} + +QNetworkAccessManager *GAnalytics::networkAccessManager() const +{ + return d->networkManager; +} + +void GAnalytics::setAccount(OCC::AccountPtr account) +{ + d->m_account = account; +} +/** + * This method is called whenever a button was pressed in the application. + * A query for a POST message will be created to report this event. The + * created query will be stored in a message queue. + */ +void GAnalytics::sendEvent(const QString &page, const QString &element) +{ + d->enqueQueryWithCurrentTime(element, page); +} + +void GAnalytics::sendEventImmediatley(const QString &page, const QString &element) +{ + d->enqueQueryWithCurrentTime(element, page); + d->postMessage(); +} diff --git a/src/gui/ga4/ganalytics.h b/src/gui/ga4/ganalytics.h new file mode 100644 index 0000000000000..1a15d130e82d1 --- /dev/null +++ b/src/gui/ga4/ganalytics.h @@ -0,0 +1,77 @@ +#pragma once + +#include +#include +#include "account.h" + +class QNetworkAccessManager; +class GAnalyticsWorker; +class DataCollectionWrapper; +class Account; + +// https://developers.google.com/analytics/devguides/collection/protocol/ga4/verify-implementation?client_type=gtag +class GAnalytics : public QObject +{ + Q_OBJECT + Q_ENUMS(LogLevel) + +public: + ~GAnalytics(); + + static GAnalytics& getInstance() + { + static GAnalytics instance; + return instance; + } + +public: + enum LogLevel + { + Debug, + Info, + Error + }; + + void setMeasurementId(const QString& measurementId); + void setClientID(const QString& clientID); + + void setLogLevel(LogLevel logLevel); + LogLevel logLevel() const; + + void setViewportSize(const QString &viewportSize); + QString viewportSize() const; + + void setLanguage(const QString &language); + QString language() const; + + void setAnonymizeIPs(bool anonymize); + bool anonymizeIPs(); + + void setSendInterval(int milliseconds); + int sendInterval() const; + + void enable(bool state = true); + bool isEnabled(); + + OCC::AccountPtr account; + void setAccount(OCC::AccountPtr account); + + void enableValidation(bool state); + + /// Get or set the network access manager. If none is set, the class creates its own on the first request + void setNetworkAccessManager(QNetworkAccessManager *networkAccessManager); + QNetworkAccessManager *networkAccessManager() const; + + +private: + void sendEvent(const QString &page = QString(), const QString &element = QString()); + void sendEventImmediatley(const QString &page, const QString &element); + explicit GAnalytics(QObject *parent = 0); + Q_DISABLE_COPY_MOVE(GAnalytics) + +private: + GAnalyticsWorker *d; + + friend class DataCollectionWrapper; +}; + diff --git a/src/gui/ga4/ganalytics_worker.cpp b/src/gui/ga4/ganalytics_worker.cpp new file mode 100644 index 0000000000000..2ac2a83fcb256 --- /dev/null +++ b/src/gui/ga4/ganalytics_worker.cpp @@ -0,0 +1,322 @@ +/* + * This file is part of Nextcloud Destop - Ionos HiDrive Next + * + * Modifications: + * - Changed the usage of Measurement Protocol to the GA4 API + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "ganalytics.h" +#include "ganalytics_worker.h" +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "logger.h" +#include "account.h" + +const QLatin1String GAnalyticsWorker::dateTimeFormat("yyyy,MM,dd-hh:mm::ss:zzz"); + +Q_LOGGING_CATEGORY(lcGAnalyticsWorker, "nextcloud.gui.ga4.ganalytics_worker", QtInfoMsg) + +GAnalyticsWorker::GAnalyticsWorker(GAnalytics *parent) + : QObject(parent), q(parent), m_logLevel(GAnalytics::Error) +{ + m_appName = QCoreApplication::instance()->applicationName(); + m_appVersion = QCoreApplication::instance()->applicationVersion(); + m_request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=utf-8"); + m_request.setHeader(QNetworkRequest::UserAgentHeader, getUserAgent()); + + m_language = QLocale::system().name().toLower().replace("_", "-"); + m_screenResolution = getScreenResolution(); + + m_timer.setInterval(m_timerInterval); + connect(&m_timer, &QTimer::timeout, this, &GAnalyticsWorker::postMessage); +} + +void GAnalyticsWorker::enable(bool state) +{ + // state change to the same is not valid. + if(m_isEnabled == state) + { + return; + } + + m_isEnabled = state; + if(m_isEnabled) + { + // enable -> start doing things :) + m_timer.start(); + } + else + { + // disable -> stop the timer + m_timer.stop(); + } +} + +void GAnalyticsWorker::logMessage(GAnalytics::LogLevel level, const QString &message) +{ + if (m_logLevel > level) + { + return; + } + if(level == GAnalytics::Error) + { + // log error message + qCCritical(lcGAnalyticsWorker) << "[Analytics]" << message; + } + else if(level == GAnalytics::Info) + { + // log info message + qCInfo(lcGAnalyticsWorker) << "[Analytics]" << message; + } + else if(level == GAnalytics::Debug) + { + // log debug message + qCDebug(lcGAnalyticsWorker) << "[Analytics]" << message; + } +} + +/** + * Get primary screen resolution. + * @return A QString like "800x600". + */ +QString GAnalyticsWorker::getScreenResolution() +{ + QScreen *screen = QGuiApplication::primaryScreen(); + QSize size = screen->size(); + + return QString("%1x%2").arg(size.width()).arg(size.height()); +} + +/** + * Try to gain information about the system where this application + * is running. It needs to get the name and version of the operating + * system, the language and screen resolution. + * All this information will be send in POST messages. + * @return agent A QString with all the information formatted for a POST message. + */ +QString GAnalyticsWorker::getUserAgent() +{ + QString osPart; + + #ifdef Q_OS_WIN + osPart = "Windows NT 10.0; Win64; x64"; + #elif defined(Q_OS_LINUX) + osPart = "X11; Linux x86_64"; + #elif defined(Q_OS_MAC) + osPart = "Macintosh; Intel Mac OS X 13_0"; + #endif + + return QString( + "Mozilla/5.0 (%1) AppleWebKit/537.36 " + "(KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 %2/%3" + ).arg(osPart, m_appName, m_appVersion); +} + + +/** + * Takes a QUrlQuery object and wrapp it together with + * a QTime object into a QueryBuffer struct. These struct + * will be stored in the message queue. + */ +void GAnalyticsWorker::enqueQueryWithCurrentTime(QString eventValue, QString screenNameValue) +{ + if(!m_isEnabled) + { + return; + } + QueryBuffer buffer; + buffer.eventValue = eventValue; + buffer.screenNameValue = screenNameValue; + buffer.time = QDateTime::currentDateTime(); + + m_messageQueue.enqueue(buffer); +} + +/** + * This function is called by a timer interval. + * The function tries to send a messages from the queue. + * If message was successfully send then this function + * will be called back to send next message. + * If message queue contains more than one message then + * the connection will kept open. + * The message POST is asyncroniously when the server + * answered a signal will be emitted. + */ +void GAnalyticsWorker::postMessage() +{ + if (m_messageQueue.isEmpty()) + { + // queue empty -> try sending later + m_timer.start(); + return; + } + else + { + // queue has messages -> stop timer and start sending + m_timer.stop(); + } + + if(m_account == nullptr) + { + logMessage(GAnalytics::Error, "account is not set!"); + return; + } + + QString connection = "close"; + if (m_messageQueue.count() > 1) + { + connection = "keep-alive"; + } + + QueryBuffer buffer = m_messageQueue.head(); + QDateTime sendTime = QDateTime::currentDateTime(); + qint64 timeDiff = buffer.time.msecsTo(sendTime); + + if (timeDiff > fourHours) + { + // too old. + m_messageQueue.dequeue(); + emit postMessage(); + return; + } + + m_request.setRawHeader("Connection", connection.toUtf8()); + m_request.setHeader(QNetworkRequest::ContentLengthHeader, 0); + + if (m_measurementId.isEmpty()) { + logMessage(GAnalytics::Error, "google analytics measurement id was not set!"); + m_messageQueue.dequeue(); + return; + } + if (m_clientID.isEmpty()) { + logMessage(GAnalytics::Error, "client id was not set!"); + m_messageQueue.dequeue(); + return; + } + + QUrl requestUrl; + requestUrl.setScheme("https"); + requestUrl.setHost("www.google-analytics.com"); + if(m_validation){ + requestUrl.setPath("/debug/g/collect"); + } + else { + requestUrl.setPath("/g/collect"); + } + + QUrlQuery query; + setStaticQueryValues(query); + setDynamicQueryValues(query, buffer.eventValue, buffer.screenNameValue); + + requestUrl.setQuery(query); + + m_request.setUrl(QUrl(requestUrl)); + + char message[512]; + snprintf(message, sizeof(message), "%s\n", requestUrl.toString().toStdString().c_str()); + logMessage(GAnalytics::Debug, message); + + QNetworkReply *reply = m_account->sendRawRequest("POST", m_request.url(), m_request, QByteArray()); + + connect(reply, SIGNAL(finished()), this, SLOT(postMessageFinished())); +} + +void GAnalyticsWorker::setDynamicQueryValues(QUrlQuery& query, const QString& eventValue, const QString& screenNameValue){ + query.addQueryItem(_ga4[GA4::Event], eventValue); + query.addQueryItem(_ga4[GA4::ScreenName], screenNameValue); +} + +void GAnalyticsWorker::setStaticQueryValues(QUrlQuery& query){ + + query.addQueryItem(_ga4[GA4::Version], "2"); + query.addQueryItem(_ga4[GA4::MeasurementID], m_measurementId); + query.addQueryItem(_ga4[GA4::ClientID], m_clientID); + + query.addQueryItem(_ga4[GA4::SessionID], "1"); + query.addQueryItem(_ga4[GA4::SessionSequence], "1"); + query.addQueryItem(_ga4[GA4::SessionCount], "1"); + query.addQueryItem(_ga4[GA4::UserID], m_userID); + query.addQueryItem(_ga4[GA4::Language], m_language); + query.addQueryItem(_ga4[GA4::ScreenResolution], m_screenResolution); + // TODO SES-169 + // query.addQueryItem(_ga4[GA4::AgentArch], "x86_64"); + query.addQueryItem(_ga4[GA4::AgentMobileBrand], "0"); + #ifdef Q_OS_WIN + query.addQueryItem(_ga4[GA4::AgentPlatform], "Windows"); + #endif + #ifdef Q_OS_LINUX + query.addQueryItem(_ga4[GA4::AgentPlatform], "Linux"); + #endif + #ifdef Q_OS_MAC + query.addQueryItem(_ga4[GA4::AgentPlatform], "MacOS"); + #endif + // TODO SES-169 + // query.addQueryItem(_ga4[GA4::AgentPlatformVersion], "10"); + query.addQueryItem(_ga4[GA4::EngagementTime], "100"); + + query.addQueryItem(_ga4[GA4::AppName], QUrl::toPercentEncoding(m_appName)); + query.addQueryItem(_ga4[GA4::AppVersion], m_appVersion); +} + + +/** + * NetworkAccsessManager has finished to POST a message. + * If POST message was successfully send then the message + * query should be removed from queue. + * SIGNAL "postMessage" will be emitted to send next message + * if there is any. + * If message couldn't be send then next try is when the + * timer emits its signal. + */ +void GAnalyticsWorker::postMessageFinished() +{ + QNetworkReply *reply = qobject_cast(sender()); + + int httpStausCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (httpStausCode < 200 || httpStausCode > 299) + { + logMessage(GAnalytics::Error, QString("Error posting message: %1").arg(reply->errorString())); + + // An error ocurred. Try sending later. + m_timer.start(); + return; + } + else + { + logMessage(GAnalytics::Debug, "Message sent"); + } + + if(m_validation) + { + QByteArray bytes = reply->readAll(); + QString str = QString::fromUtf8(bytes.data(), bytes.size()); + char message[256]; + snprintf(message, sizeof(message), "Status Code:%d\nReply: %s\n", httpStausCode, str.toStdString().c_str()); + logMessage(GAnalytics::Debug, message); + } + + m_messageQueue.dequeue(); + postMessage(); + reply->deleteLater(); +} \ No newline at end of file diff --git a/src/gui/ga4/ganalytics_worker.h b/src/gui/ga4/ganalytics_worker.h new file mode 100644 index 0000000000000..f922618c29274 --- /dev/null +++ b/src/gui/ga4/ganalytics_worker.h @@ -0,0 +1,122 @@ +#pragma once + +#include +#include +#include +#include +#include +#include "ganalytics.h" +#include "abstractnetworkjob.h" + +#include +#include +#include "account.h" + +Q_DECLARE_LOGGING_CATEGORY(lcGAnalyticsWorker) +struct QueryBuffer +{ + QString eventValue; + QString screenNameValue; + QDateTime time; +}; + +class GAnalyticsWorker : public QObject +{ + Q_OBJECT + + +public: + explicit GAnalyticsWorker(GAnalytics *parent = 0); + + GAnalytics *q; + + QNetworkAccessManager *networkManager = nullptr; + + QQueue m_messageQueue; + QTimer m_timer; + QNetworkRequest m_request; + GAnalytics::LogLevel m_logLevel; + + QString m_measurementId; + QString m_clientID; + QString m_userID; + QString m_appName; + QString m_appVersion; + QString m_language; + QString m_screenResolution; + QString m_viewportSize; + + OCC::AccountPtr m_account; + + bool m_anonymizeIPs = false; + bool m_isEnabled = false; + int m_timerInterval = 30000; + bool m_validation = false; + + const static int fourHours = 4 * 60 * 60 * 1000; + const static QLatin1String dateTimeFormat; + +public: + void logMessage(GAnalytics::LogLevel level, const QString &message); + + QString getScreenResolution(); + QString getUserAgent(); + + void enqueQueryWithCurrentTime(QString eventValue, QString screenNameValue); + void setIsSending(bool doSend); + void enable(bool state); + +public slots: + void postMessage(); + void postMessageFinished(); + +private: + void setStaticQueryValues(QUrlQuery& query); + void setDynamicQueryValues(QUrlQuery& query, const QString& eventValue, const QString& screenNameValue); + + enum GA4 + { + Version, + MeasurementID, + ClientID, + SessionID, + SessionSequence, + SessionCount, + UserID, + Language, + ScreenResolution, + AgentArch, + AgentMobileBrand, + AgentPlatform, + AgentPlatformVersion, + Event, + ScreenName, + AppName, + AppVersion, + EngagementTime, + }; + + std::map _ga4 = { + { Version, "v" }, + { MeasurementID, "tid" }, + { ClientID, "cid" }, + { SessionID, "sid" }, + { SessionSequence, "_s" }, + { SessionCount, "sct" }, + { UserID, "uid" }, + { Language, "ul" }, + { ScreenResolution, "sr" }, + { AgentArch, "ua" }, + { AgentMobileBrand, "uamb" }, + { AgentPlatform, "uap" }, + { AgentPlatformVersion, "uapv" }, + { Event, "en" }, + { ScreenName, "ep.screen_name" }, + { AppName, "ep.app_name" }, + { AppVersion, "ep.software_version" }, + { EngagementTime, "_et" }, + }; + + friend class GAnalytics; +}; + diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 7aedc1b8af5d2..c8e1b0140b6ba 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -8,11 +8,13 @@ #include "ui_generalsettings.h" #include "theme.h" +#include "whitelabeltheme.h" #include "configfile.h" #include "application.h" #include "owncloudsetupwizard.h" #include "accountmanager.h" #include "guiutility.h" +#include "linkbutton.h" #include "capabilities.h" #if defined(BUILD_UPDATER) @@ -43,6 +45,7 @@ #include #include #include +#include #include #include @@ -210,14 +213,18 @@ GeneralSettings::GeneralSettings(QWidget *parent) _ui->setupUi(this); updatePollIntervalVisibility(); + + connect(_ui->sendNecessaryData_checkbox, &QCheckBox::clicked, this, [this](){ + _ui->sendNecessaryData_checkbox->setChecked(true); + }); connect(_ui->serverNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleOptionalServerNotifications); _ui->serverNotificationsCheckBox->setToolTip(tr("Server notifications that require attention.")); - connect(_ui->chatNotificationsCheckBox, &QAbstractButton::toggled, - this, &GeneralSettings::slotToggleChatNotifications); - _ui->chatNotificationsCheckBox->setToolTip(tr("Show chat notification dialogs.")); + // connect(_ui->chatNotificationsCheckBox, &QAbstractButton::toggled, + // this, &GeneralSettings::slotToggleChatNotifications); + // _ui->chatNotificationsCheckBox->setToolTip(tr("Show chat notification dialogs.")); connect(_ui->callNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleCallNotifications); @@ -250,7 +257,7 @@ GeneralSettings::GeneralSettings(QWidget *parent) _ui->infoAndUpdatesLabel->setOpenExternalLinks(true); // About legal notice - connect(_ui->legalNoticeButton, &QPushButton::clicked, this, &GeneralSettings::slotShowLegalNotice); + // connect(_ui->legalNoticeButton, &QPushButton::clicked, this, &GeneralSettings::slotShowLegalNotice); connect(_ui->usageDocumentationButton, &QPushButton::clicked, this, []() { Utility::openBrowser(QUrl(Theme::instance()->helpUrl())); @@ -267,7 +274,7 @@ GeneralSettings::GeneralSettings(QWidget *parent) connect(_ui->newExternalStorage, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings); connect(_ui->moveFilesToTrashCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings); connect(_ui->remotePollIntervalSpinBox, &QSpinBox::valueChanged, this, &GeneralSettings::slotRemotePollIntervalChanged); - + connect(_ui->sendAnonymousData_checkbox, &QAbstractButton::toggled, this, &GeneralSettings::saveMiscSettings); // Hide on non-Windows, or WindowsVersion < 10. // The condition should match the default value of ConfigFile::showInExplorerNavigationPane. #ifdef Q_OS_WIN @@ -285,8 +292,8 @@ GeneralSettings::GeneralSettings(QWidget *parent) int m1 = 0; int m2 = 0; int m3 = 0; - _ui->horizontalLayout_3->getContentsMargins(&m0, &m1, &m2, &m3); - _ui->horizontalLayout_3->setContentsMargins(0, m1, m2, m3); + _ui->horizontalLayout_1->getContentsMargins(&m0, &m1, &m2, &m3); + _ui->horizontalLayout_1->setContentsMargins(0, m1, m2, m3); // OEM themes are not obliged to ship mono icons, so there // is no point in offering an option @@ -297,11 +304,17 @@ GeneralSettings::GeneralSettings(QWidget *parent) // accountAdded means the wizard was finished and the wizard might change some options. connect(AccountManager::instance(), &AccountManager::accountAdded, this, &GeneralSettings::loadMiscSettings); - + connect(_ui->checkUpdateLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotUpdateCheckNow); + connect(_ui->moreInfoLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenMoreInformationLink); + connect(_ui->legalNoticeLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenLegalNoticeLink); + connect(_ui->openSourceLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenOpenSourceLink); + connect(_ui->privacyLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenPrivacyLink); + connect(_ui->sendAnonymousData_checkbox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleSendData); #if defined(BUILD_UPDATER) loadUpdateChannelsList(); #endif + connectToTracking(); customizeStyle(); } @@ -310,11 +323,76 @@ GeneralSettings::~GeneralSettings() delete _ui; } +void GeneralSettings::connectToTracking() +{ + // DataCollectionWrapper dcw; + + connect(_ui->autoCheckForUpdatesCheckBox, &QAbstractButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::AutoCheckforUpdate); + }); + + connect(_ui->autostartCheckBox, &QAbstractButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::AutoStart); + }); + + connect(_ui->serverNotificationsCheckBox, &QAbstractButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::ServerNotifications); + }); + + connect(_ui->moreInfoLinkButton, &OCC::LinkButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::MoreInformation); + }); + + connect(_ui->legalNoticeLinkButton, &OCC::LinkButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::LegalNotice); + }); + + connect(_ui->openSourceLinkButton, &OCC::LinkButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::OpenSourceComponents); + }); + + connect(_ui->privacyLinkButton, &OCC::LinkButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings + , DataCollectionWrapper::TrackingElement::PrivacyPolicy); + }); + + connect(_ui->sendAnonymousData_checkbox, &QAbstractButton::clicked, this, [this](){ + _dcw.clicked(DataCollectionWrapper::TrackingPage::GeneralSettings, + DataCollectionWrapper::TrackingElement::ToogleSendData); + }); +} + +void GeneralSettings::slotOpenMoreInformationLink() +{ + QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0007"))); +} + +void GeneralSettings::slotOpenLegalNoticeLink() +{ + QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0004"))); +} + +void GeneralSettings::slotOpenOpenSourceLink() +{ + QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0006"))); +} + +void GeneralSettings::slotOpenPrivacyLink() +{ + QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0005"))); +} + QSize GeneralSettings::sizeHint() const { return { ownCloudGui::settingsDialogSize().width(), - QWidget::sizeHint().height() + ownCloudGui::settingsDialogSize().height() }; } @@ -325,8 +403,8 @@ void GeneralSettings::loadMiscSettings() _ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons()); _ui->serverNotificationsCheckBox->setChecked(cfgFile.optionalServerNotifications()); - _ui->chatNotificationsCheckBox->setEnabled(cfgFile.optionalServerNotifications()); - _ui->chatNotificationsCheckBox->setChecked(cfgFile.showChatNotifications()); + // _ui->chatNotificationsCheckBox->setEnabled(cfgFile.optionalServerNotifications()); + // _ui->chatNotificationsCheckBox->setChecked(cfgFile.showChatNotifications()); _ui->callNotificationsCheckBox->setEnabled(cfgFile.optionalServerNotifications()); _ui->callNotificationsCheckBox->setChecked(cfgFile.showCallNotifications()); _ui->quotaWarningNotificationsCheckBox->setEnabled(cfgFile.optionalServerNotifications()); @@ -335,6 +413,7 @@ void GeneralSettings::loadMiscSettings() _ui->newExternalStorage->setChecked(cfgFile.confirmExternalStorage()); _ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons()); _ui->moveFilesToTrashCheckBox->setChecked(cfgFile.moveToTrash()); + _ui->sendAnonymousData_checkbox->setChecked(cfgFile.sendData()); auto newFolderLimit = cfgFile.newBigFolderSizeLimit(); _ui->newFolderLimitCheckBox->setChecked(newFolderLimit.first); @@ -346,9 +425,11 @@ void GeneralSettings::loadMiscSettings() _ui->newExternalStorage->setChecked(cfgFile.confirmExternalStorage()); _ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons()); - const auto interval = cfgFile.remotePollInterval(); - _ui->remotePollIntervalSpinBox->setValue(static_cast(interval.count() / 1000)); + const auto interval = cfgFile.remotePollInterval(); +#ifndef IONOS_BUILD + _ui->remotePollIntervalSpinBox->setValue(static_cast(interval.count() / 1000)); updatePollIntervalVisibility(); +#endif } #if defined(BUILD_UPDATER) @@ -413,6 +494,7 @@ void GeneralSettings::slotUpdateInfo() Utility::openBrowser(QUrl(link)); }); _ui->updateStateLabel->setText(status); + _ui->updateStateLabel->setVisible(true); _ui->restartButton->setVisible(ocupdater->downloadState() == OCUpdater::DownloadComplete); _ui->updateButton->setEnabled(ocupdater->downloadState() != OCUpdater::CheckingServer && ocupdater->downloadState() != OCUpdater::Downloading && @@ -544,6 +626,7 @@ void GeneralSettings::slotUpdateCheckNow() if (updater) { _ui->updateButton->setEnabled(false); + _ui->updateStateLabel->setVisible(false); updater->checkForUpdate(); } @@ -590,6 +673,7 @@ void GeneralSettings::saveMiscSettings() cfgFile.setConfirmExternalStorage(_ui->newExternalStorage->isChecked()); cfgFile.setNotifyExistingFoldersOverLimit(existingFolderLimitEnabled); cfgFile.setStopSyncingExistingFoldersOverLimit(stopSyncingExistingFoldersOverLimit); + cfgFile.setSendData(_ui->sendAnonymousData_checkbox->isChecked()); _ui->existingFolderLimitCheckBox->setEnabled(newFolderLimitEnabled); _ui->stopExistingFolderNowBigSyncCheckBox->setEnabled(existingFolderLimitEnabled); @@ -611,7 +695,7 @@ void GeneralSettings::slotToggleOptionalServerNotifications(bool enable) { ConfigFile cfgFile; cfgFile.setOptionalServerNotifications(enable); - _ui->chatNotificationsCheckBox->setEnabled(enable); + // _ui->chatNotificationsCheckBox->setEnabled(enable); _ui->callNotificationsCheckBox->setEnabled(enable); _ui->quotaWarningNotificationsCheckBox->setEnabled(enable); } @@ -686,6 +770,12 @@ void GeneralSettings::slotShowLegalNotice() delete notice; } +void GeneralSettings::slotToggleSendData() +{ + DataCollectionWrapper dcw; + dcw.setSendData(_ui->sendAnonymousData_checkbox->isChecked()); +} + void GeneralSettings::slotStyleChanged() { customizeStyle(); @@ -701,6 +791,103 @@ void GeneralSettings::customizeStyle() }(); _ui->infoAndUpdatesLabel->setText(aboutText); + this->setAutoFillBackground(true); + setPalette(QPalette(QPalette::Window, WLTheme.dialogBackgroundColor())); + + this->setStyleSheet( + QStringLiteral("QGroupBox { border: %1; font-size: %2; font-weight: %3; color: %4; }").arg( + Theme::instance()->systemPalette()["base"].value().name(), + WLTheme.settingsTitleSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.black() + ) + ); + + this->setStyleSheet( + this->styleSheet() + QStringLiteral("QCheckBox { font-size: %1; font-weight: %2; margin-left: %3 px; color: %4; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.smallMargin(), + WLTheme.black() + ) + ); + + this->setStyleSheet( + this->styleSheet() + QStringLiteral("QLabel { font-size: %1; font-weight: %2; color: %3; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight500(), + WLTheme.black() + ) + ); + + this->setStyleSheet( + this->styleSheet() + QStringLiteral("QFrame { font-size: %1; font-weight: %2; color: %3; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.black() + ) + ); + + _ui->sendNecessaryData_checkbox->setChecked(true); + _ui->sendNecessaryData_checkbox->setStyleSheet( + QStringLiteral("QCheckBox { font-size: %1; font-weight: %2; color: %3; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor() + ) + ); + + _ui->sendAnonymousData_checkbox->setStyleSheet( + QStringLiteral("QCheckBox { font-size: %1; font-weight: %2; color: %3; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor() + ) + ); + + _ui->necessaryDataLabel->setStyleSheet( + QStringLiteral("QLabel { font-size: %1; font-weight: %2; color: %3; margin-left: %4; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black(), + "24" + ) + ); + + + _ui->updateStateLabel->setStyleSheet( + QStringLiteral("QLabel { font-size: %1; font-weight: %2; color: %3; margin-left: %4; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black(), + "24" + ) + ); + + _ui->anonymousDataLabel->setStyleSheet( + QStringLiteral("QLabel { font-size: %1; font-weight: %2; color: %3; margin-left: %4; margin-bottom: %5; }").arg( + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black(), + "24", + "16" + + ) + ); + +#if defined(Q_OS_MAC) + // _ui->generalBoxLayout->setMargin(16); + // _ui->dataProtectionBoxLayout->setMargin(16); +#endif + +#ifdef IONOS_BUILD + // SES-4 removed + _ui->monoIconsCheckBox->hide(); + _ui->callNotificationsCheckBox->hide(); + _ui->advanced_groupBox->hide(); + _ui->updates_frame->hide(); +#endif + #if defined(BUILD_UPDATER) // updater info slotUpdateInfo(); @@ -733,8 +920,9 @@ void GeneralSettings::updatePollIntervalVisibility() } return accountPtr->capabilities().availablePushNotifications().testFlag(PushNotificationType::Files); }); - +#ifndef IONOS_BUILD _ui->horizontalLayoutWidget_remotePollInterval->setVisible(!pushAvailable); +#endif } } // namespace OCC diff --git a/src/gui/generalsettings.h b/src/gui/generalsettings.h index b62a7b3c07476..96ff5b7ab37e3 100644 --- a/src/gui/generalsettings.h +++ b/src/gui/generalsettings.h @@ -11,7 +11,7 @@ #include #include - +#include "ga4/datacollectionwrapper.h" namespace OCC { class IgnoreListEditor; class SyncLogDialog; @@ -56,6 +56,11 @@ private slots: void loadMiscSettings(); void slotShowLegalNotice(); void slotRemotePollIntervalChanged(int seconds); + void slotOpenMoreInformationLink(); + void slotOpenLegalNoticeLink(); + void slotOpenPrivacyLink(); + void slotOpenOpenSourceLink(); + void slotToggleSendData(); void updatePollIntervalVisibility(); #if defined(BUILD_UPDATER) void slotUpdateInfo(); @@ -66,8 +71,9 @@ private slots: #endif private: + void connectToTracking(); void customizeStyle(); - + DataCollectionWrapper _dcw; Ui::GeneralSettings *_ui; QPointer _ignoreEditor; bool _currentlyLoading = false; diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index b26f433ed2653..2a9b6810614df 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -1,526 +1,724 @@ - OCC::GeneralSettings - - - - 0 - 0 - 667 - 796 - - - - Form - - - - - - General Settings - - - - - - &Launch on System Startup + OCC::GeneralSettings + + + + 0 + 0 + 601 + 663 + - - - - - - Show Call Notifications + + Form - - - - - - For System Tray - - - Use &Monochrome Icons - - - - - - - Show Chat Notifications - - - - - - - Show Server &Notifications - - - - - - - Show &Quota Warning Notifications - - - - - - - - - - Advanced - - - - - - 0 - - - - - - - Ask for confirmation before synchronizing new folders larger than - - - true - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 10 - 20 - - - - - - - - 999999 + + + + 24 - - 99 + + 32 - - - - - - MB + + 24 - - - - - - - - - - Qt::Orientation::Horizontal + + 24 - - QSizePolicy::Policy::Fixed - - - - 20 - 20 - - - - - - - - Notify when synchronised folders grow larger than specified limit - - - - - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 40 - 20 - - - - - - - - Automatically disable synchronisation of folders that overcome limit - - - - - - - - - - - - - Ask for confirmation before synchronizing external storages - - - - - - - - - - - Move removed files to trash - - - - - - - - - - - Show sync folders in &Explorer's navigation pane - - - - - - - - - - - - Server poll interval - - - - - - - 5 - - - 999999 - - - 1 - - - - - - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - - - Qt::TextFormat::RichText - - - true - - - Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - Edit &Ignored Files - - - - - - - Create Debug Archive - - - - - - - Qt::Orientation::Horizontal - - - - 555 - 20 - - - - - - - - - - - - - Info - - - - 10 - - - - - - 0 - 0 - - - - Desktop client x.x.x - - - - - - - - 0 - - - 1 - - - - - - - - 0 - 0 - - - - Update channel - - - - - - - - 0 - 0 - - - - - - - - - - - true - - - true - - - - - - - - 0 - 0 - - - - &Restart && Update - - - - - - - - - - - - 0 - 0 - - - - &Automatically check for updates - - - true - - - - - - - - 0 - 0 - - - - Check Now - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - + + + + + + General Settings + + + + + + + + 250 + 0 + + + + + 32 + + + + + &Launch on System Startup + + + + + + + Show Server &Notifications + + + + + + + For System Tray + + + Use &monochrome icons + + + + + + + Show call notifications + + + + + + + + + + Qt::Horizontal + + + + 20 + 0 + + + + + + + + + Updates + + + + + + + + 32 + + + + + + 0 + 0 + + + + &Automatically check for updates + + + true + + + + + + + Check Now + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 5 + + + + + + + + + + + true + + + true + + + + + + + + Advanced + + + + + + 0 + + + + + + + Ask for confirmation before synchronizing new folders larger than + + + true + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + 999999 + + + 99 + + + + + + + MB + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Notify when synchronised folders grow larger than specified limit + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Automatically disable synchronisation of folders that overcome limit + + + + + + + + + + + + + Ask for confirmation before synchronizing external storages + + + + + + + + + + + Move removed files to trash + + + + + + + + + + + Show sync folders in &Explorer's navigation pane + + + + + + + + + + + + 0 + 0 + + + + S&how crash reporter + + + + + + + + + + + Edit &Ignored Files + + + + + + + Create Debug Archive + + + + + + + Qt::Horizontal + + + + 555 + 20 + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 16 + + + + QSizePolicy::Minimum + + + + + + + Data Protection + + + + 32 + + + + + + + Necessary data + + + true + + + + + + + Required to ensure that the software can be used as expected + + + true + + + + + + + + + + + Send anonymous use + + + true + + + + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + true + + + + + + + + + 12 + + + 5 + + + + + Legal Notice + + + + + + + Privacy Policy + + + + + + + Open Source Software + + + + + + + Qt::Horizontal + + + + 20 + 0 + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + 0 + 0 + + + + Update channel + + + + + + + + 0 + 0 + + + + + stable + + + + + beta + + + + + + + + + + + true + + + true + + + + + + + + 0 + 0 + + + + &Restart && Update + + + + + + + + + + + + 0 + 0 + + + + Check Now + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Usage Documentation + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + Desktop client x.x.x + + + + + + + More Information + + + + + + + Qt::Horizontal + + + + 20 + 0 + + + + + + + - - - - - - - - Usage Documentation - - - - - - - Legal Notice - - - - - - - false - - - Restore &Default - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 0 - - - - - - - - autostartCheckBox - serverNotificationsCheckBox - ignoredFilesButton - newFolderLimitCheckBox - newFolderLimitSpinBox - restartButton - - - - - newFolderLimitCheckBox - toggled(bool) - newFolderLimitSpinBox - setEnabled(bool) - - - 247 - 188 - - - 497 - 190 - - - - - + + autostartCheckBox + serverNotificationsCheckBox + monoIconsCheckBox + ignoredFilesButton + newFolderLimitCheckBox + newFolderLimitSpinBox + crashreporterCheckBox + restartButton + + + + + newFolderLimitCheckBox + toggled(bool) + newFolderLimitSpinBox + setEnabled(bool) + + + 247 + 188 + + + 497 + 190 + + + + + \ No newline at end of file diff --git a/src/gui/ignorelisttablewidget.cpp b/src/gui/ignorelisttablewidget.cpp index 047d8251f6e12..8cf994c9e8413 100644 --- a/src/gui/ignorelisttablewidget.cpp +++ b/src/gui/ignorelisttablewidget.cpp @@ -8,8 +8,10 @@ #include "folderman.h" +#include "buttonstyle.h" #include #include +#include #include #include @@ -31,18 +33,29 @@ IgnoreListTableWidget::IgnoreListTableWidget(QWidget *parent) setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); ui->setupUi(this); + customizeIgnoreListDialogStyle(); + ui->descriptionLabel->setText(tr("Files or folders matching a pattern will not be synchronized.\n\n" - "Items where deletion is allowed will be deleted if they prevent a " - "directory from being removed. " - "This is useful for meta data.")); + "Items where deletion is allowed will be deleted if they prevent a " + "directory from being removed. " + "This is useful for meta data.")); ui->removePushButton->setEnabled(false); - connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, + connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, this, &IgnoreListTableWidget::slotItemSelectionChanged); - connect(ui->removePushButton, &QAbstractButton::clicked, + + ui->removePushButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Secondary)); + ui->removePushButton->setMinimumSize(QSize(114, 40)); + connect(ui->removePushButton, &QAbstractButton::clicked, this, &IgnoreListTableWidget::slotRemoveCurrentItem); - connect(ui->addPushButton, &QAbstractButton::clicked, + + ui->addPushButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + ui->addPushButton->setMinimumSize(QSize(114, 40)); + connect(ui->addPushButton, &QAbstractButton::clicked, this, &IgnoreListTableWidget::slotAddPattern); + + ui->removeAllPushButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + ui->removeAllPushButton->setMinimumSize(QSize(114, 40)); connect(ui->removeAllPushButton, &QAbstractButton::clicked, this, &IgnoreListTableWidget::slotRemoveAllItems); @@ -126,13 +139,13 @@ void IgnoreListTableWidget::slotWriteIgnoreFile(const QString &file) void IgnoreListTableWidget::slotAddPattern() { - auto okClicked = false; - const auto pattern = QInputDialog::getText(this, - tr("Add Ignore Pattern"), - tr("Add a new ignore pattern:"), - QLineEdit::Normal, - {}, - &okClicked); + QInputDialog inputDialog(this); + + customizeAddIgnorePatternDialogStyle(inputDialog); + + bool okClicked = inputDialog.exec() == QDialog::Accepted; + + QString pattern = inputDialog.textValue(); if (!okClicked || pattern.isEmpty()) return; @@ -190,4 +203,108 @@ int IgnoreListTableWidget::addPattern(const QString &pattern, const bool deletab return newRow; } +void IgnoreListTableWidget::customizeIgnoreListDialogStyle(){ + + ui->tableWidget->setStyleSheet( + QStringLiteral("QTableWidget { background-color: %1; color: %2; } ").arg( + WLTheme.white(), + WLTheme.black() + ) + + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ); + + ui->descriptionLabel->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ); + + ui->tableWidget->horizontalHeader()->setStyleSheet( + QStringLiteral("QHeaderView::section { background-color: %1; color: %2; border-bottom: none; %3; }").arg( + WLTheme.white(), + WLTheme.black(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + + ui->tableWidget->setMinimumSize(374, 424); + +#if defined(Q_OS_MAC) + ui->verticalButtonLayout->setSpacing(30); + this->setFixedWidth(584); +#endif + +} + +void IgnoreListTableWidget::customizeAddIgnorePatternDialogStyle(QInputDialog &inputDialog){ + inputDialog.setWindowTitle(tr("Ignore Pattern")); + inputDialog.setLabelText(tr("Add a new ignore pattern:")); + inputDialog.setTextValue(QString()); + inputDialog.resize(626, 196); + inputDialog.setVisible(true); + inputDialog.setContentsMargins(12,0,12,12); + + inputDialog.setStyleSheet( QStringLiteral("QDialog { %1; background: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.dialogBackgroundColor() + ) + ); + + QLabel *label = inputDialog.findChild(); + label->setAlignment(Qt::AlignCenter); + label->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ); + + QLineEdit *lineEdit = inputDialog.findChild(); + lineEdit->setStyleSheet( + QStringLiteral( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ") + .arg(WLTheme.folderWizardPathColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.buttonRadius(), + WLTheme.menuBorderColor(), + WLTheme.white() + ) + ); + + QDialogButtonBox *buttonBox = inputDialog.findChild(); + buttonBox->setLayoutDirection(Qt::RightToLeft); + buttonBox->layout()->setSpacing(16); + buttonBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); + + QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); + okButton->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + +#if defined(Q_OS_MAC) + buttonBox->layout()->setSpacing(32); +#endif +} + } // namespace OCC diff --git a/src/gui/ignorelisttablewidget.h b/src/gui/ignorelisttablewidget.h index e0b1e0314ead1..06fb2b529f27b 100644 --- a/src/gui/ignorelisttablewidget.h +++ b/src/gui/ignorelisttablewidget.h @@ -6,6 +6,7 @@ #pragma once #include +#include class QAbstractButton; @@ -37,6 +38,9 @@ private slots: private: void setupTableReadOnlyItems(); + void customizeIgnoreListDialogStyle(); + void customizeAddIgnorePatternDialogStyle(QInputDialog &inputDialog); + QString readOnlyTooltip; Ui::IgnoreListTableWidget *ui; }; diff --git a/src/gui/ignorelisttablewidget.ui b/src/gui/ignorelisttablewidget.ui index 1ea59cd4fd844..08d4a771a3088 100644 --- a/src/gui/ignorelisttablewidget.ui +++ b/src/gui/ignorelisttablewidget.ui @@ -1,112 +1,111 @@ - OCC::IgnoreListTableWidget - - - - 0 - 0 - 342 - 378 - - - - IgnoreListTableWidget - - - - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - 2 - - - - Pattern - - - - - Allow Deletion - - + OCC::IgnoreListTableWidget + + + IgnoreListTableWidget + + + + 40 + + + + + 24 + + + 15 + + + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + 2 + + + + Pattern + + + + + Allow Deletion + + + + + + + + 15 + + + Qt::AlignTop + + + + + true + + + Add + + + + + + + true + + + Remove + + + + + + + Remove all + + + + + + + + + + + true + + + + 0 + 0 + + + + + + + Qt::PlainText + + + true + + + + - - - - - true - - - Add - - - - - - - true - - - Remove - - - - - - - Remove all - - - - - - - true - - - Qt::Vertical - - - - 20 - 322 - - - - - - - - true - - - - 0 - 0 - - - - - - - Qt::PlainText - - - true - - - - - - - - + + + \ No newline at end of file diff --git a/src/gui/invalidfilenamedialog.cpp b/src/gui/invalidfilenamedialog.cpp index ceffebaded741..ca0a623646f10 100644 --- a/src/gui/invalidfilenamedialog.cpp +++ b/src/gui/invalidfilenamedialog.cpp @@ -10,6 +10,8 @@ #include "ui_invalidfilenamedialog.h" #include "filesystem.h" +#include "whitelabeltheme.h" +#include "buttonstyle.h" #include #include @@ -70,6 +72,7 @@ InvalidFilenameDialog::InvalidFilenameDialog(AccountPtr account, { Q_ASSERT(_account); Q_ASSERT(_folder); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); const auto filePathFileInfo = QFileInfo(_filePath); _relativeFilePath = filePathFileInfo.path() + QStringLiteral("/"); @@ -127,6 +130,8 @@ InvalidFilenameDialog::InvalidFilenameDialog(AccountPtr account, tr("Checking rename permissions …")); _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); _ui->filenameLineEdit->setEnabled(false); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + connect(_ui->filenameLineEdit, &QLineEdit::textChanged, this, &InvalidFilenameDialog::onFilenameLineEditTextChanged); @@ -136,6 +141,8 @@ InvalidFilenameDialog::InvalidFilenameDialog(AccountPtr account, } else { checkIfAllowedToRename(); } + + customizeStyle(); } InvalidFilenameDialog::~InvalidFilenameDialog() = default; @@ -177,6 +184,7 @@ bool InvalidFilenameDialog::processLeadingOrTrailingSpacesError(const QString &f const auto hasTrailingSpaces = fileName.endsWith(QLatin1Char(' ')); _ui->buttonBox->setStandardButtons(_ui->buttonBox->standardButtons() &~ QDialogButtonBox::No); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); if (hasLeadingSpaces || hasTrailingSpaces) { if (hasLeadingSpaces && hasTrailingSpaces) { @@ -213,6 +221,8 @@ void InvalidFilenameDialog::onPropfindPermissionError(QNetworkReply *reply) void InvalidFilenameDialog::allowRenaming() { _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + _ui->filenameLineEdit->setEnabled(true); _ui->filenameLineEdit->selectAll(); _ui->errorLabel->setText({}); @@ -249,8 +259,9 @@ void InvalidFilenameDialog::onFilenameLineEditTextChanged(const QString &text) _ui->errorLabel->setText(tr("Filename contains illegal characters: %1").arg(illegalCharacterListToString(illegalContainedCharacters))); } - _ui->buttonBox->button(QDialogButtonBox::Ok) - ->setEnabled(isTextValid); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(isTextValid); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + } void InvalidFilenameDialog::onMoveJobFinished() @@ -272,6 +283,7 @@ void InvalidFilenameDialog::onRemoteDestinationFileAlreadyExists(const QVariantM _ui->errorLabel->setText(tr("Cannot rename file because a file with the same name does already exist on the server. Please pick another name.")); _ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + _ui->buttonBox->button(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); } void InvalidFilenameDialog::onRemoteDestinationFileDoesNotExist(QNetworkReply *reply) @@ -311,4 +323,36 @@ void InvalidFilenameDialog::onRemoteSourceFileDoesNotExist(QNetworkReply *reply) } QDialog::accept(); } + +void InvalidFilenameDialog::customizeStyle() +{ + this->setStyleSheet( + QStringLiteral("QDialog {background-color: %1; } QLabel{ font-family: %2; font-size: %3; font-weight: %4; }").arg( + WLTheme.dialogBackgroundColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight() + ) + ); + + _ui->filenameLineEdit->setStyleSheet( + QStringLiteral( + "color: %1; font-family: %2; font-size: %3; font-weight: %4; border-radius: %5; border: 1px " + "solid %6; padding: 0px 12px; text-align: left; vertical-align: middle; height: 40px; background: %7; ").arg( + WLTheme.folderWizardPathColor(), + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.buttonRadius(), + WLTheme.menuBorderColor(), + WLTheme.white() + ) + ); + + #ifdef Q_OS_MAC + _ui->buttonBox->layout()->setSpacing(24); + _ui->buttonBox->setLayoutDirection(Qt::LeftToRight); + #endif +} + } diff --git a/src/gui/invalidfilenamedialog.h b/src/gui/invalidfilenamedialog.h index af26d3cac8e93..da0ce046d9e49 100644 --- a/src/gui/invalidfilenamedialog.h +++ b/src/gui/invalidfilenamedialog.h @@ -72,6 +72,7 @@ class InvalidFilenameDialog : public QDialog void onPropfindPermissionSuccess(const QVariantMap &values); void onPropfindPermissionError(QNetworkReply *reply = nullptr); void allowRenaming(); + void customizeStyle(); private slots: void useInvalidName(); }; diff --git a/src/gui/invalidfilenamedialog.ui b/src/gui/invalidfilenamedialog.ui index 91ff3f7386bc5..6815f301c9ed8 100644 --- a/src/gui/invalidfilenamedialog.ui +++ b/src/gui/invalidfilenamedialog.ui @@ -70,6 +70,9 @@ New filename + + Qt::NoContextMenu + diff --git a/src/gui/ionostheme.h b/src/gui/ionostheme.h new file mode 100644 index 0000000000000..0f67a183e780a --- /dev/null +++ b/src/gui/ionostheme.h @@ -0,0 +1,22 @@ +#ifndef _IONOSTHEME_H +#define _IONOSTHEME_H + +#include +#include +#include "theme.h" +#include "basetheme.h" + +namespace OCC { + +class IonosTheme : public BaseTheme { +public: + IonosTheme() = default; + + QString additionalThemePrefix() const override { return QStringLiteral(""); } + + QString sesHeaderLogoIcon() const override { + return QStringLiteral("qrc:///client/theme/ses/ses-IONOS-logo.svg"); + } +}; +} +#endif // _IONOSTHEME_H \ No newline at end of file diff --git a/src/gui/legalnotice.cpp b/src/gui/legalnotice.cpp index 5fd527a088043..ada4c2591b06a 100644 --- a/src/gui/legalnotice.cpp +++ b/src/gui/legalnotice.cpp @@ -15,6 +15,7 @@ LegalNotice::LegalNotice(QDialog *parent) , _ui(new Ui::LegalNotice) { _ui->setupUi(this); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); connect(_ui->closeButton, &QPushButton::clicked, this, &LegalNotice::accept); diff --git a/src/gui/linkbutton.cpp b/src/gui/linkbutton.cpp new file mode 100644 index 0000000000000..a6a62f59e1ed9 --- /dev/null +++ b/src/gui/linkbutton.cpp @@ -0,0 +1,26 @@ +// linkbutton.cpp +#include "linkbutton.h" +#include "whitelabeltheme.h" +#include "theme.h" + +namespace OCC { + LinkButton::LinkButton(QWidget* parent) + : QLabel(parent) + { + setStyleSheet(QStringLiteral("QLabel { color: %1; text-decoration: underline; font-size: %2; font-weight: %3; }") + .arg(WLTheme.settingsLinkColor() + , WLTheme.settingsTextSize() + , WLTheme.settingsTitleWeight600() + )); + + setCursor(Qt::PointingHandCursor); + } + + void LinkButton::mousePressEvent(QMouseEvent* event) + { + if (event->button() == Qt::LeftButton) { + emit clicked(); + } + QLabel::mousePressEvent(event); + } +} \ No newline at end of file diff --git a/src/gui/linkbutton.h b/src/gui/linkbutton.h new file mode 100644 index 0000000000000..7dd0465e65142 --- /dev/null +++ b/src/gui/linkbutton.h @@ -0,0 +1,23 @@ +// linkbutton.h +#ifndef LINKBUTTON_H +#define LINKBUTTON_H + +#include +#include +#include +namespace OCC { + class LinkButton : public QLabel + { + Q_OBJECT + + public: + explicit LinkButton(QWidget* parent = nullptr); + + signals: + void clicked(); + + protected: + void mousePressEvent(QMouseEvent* event); + }; +} +#endif // LINKBUTTON_H diff --git a/src/gui/logbrowser.cpp b/src/gui/logbrowser.cpp index ff19e1df11998..c0eb6a6fdf806 100644 --- a/src/gui/logbrowser.cpp +++ b/src/gui/logbrowser.cpp @@ -110,7 +110,7 @@ void LogBrowser::togglePermanentLogging(bool enabled) if (enabled) { if (!logger->isLoggingToFile()) { logger->setupTemporaryFolderLogDir(); - logger->enterNextLogFile(QStringLiteral("nextcloud.log"), OCC::Logger::LogType::Log); + logger->enterNextLogFile(QStringLiteral("hidrivenext.log"), OCC::Logger::LogType::Log); } } else { logger->disableTemporaryFolderLogDir(); diff --git a/src/gui/macOS/fileprovider_mac.mm b/src/gui/macOS/fileprovider_mac.mm index 17cf2fe7edd3b..c2a0354abffcc 100644 --- a/src/gui/macOS/fileprovider_mac.mm +++ b/src/gui/macOS/fileprovider_mac.mm @@ -14,7 +14,7 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcMacFileProvider, "nextcloud.gui.macfileprovider", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacFileProvider, "hidrivenext.gui.macfileprovider", QtInfoMsg) namespace Mac { diff --git a/src/gui/macOS/fileproviderdomainmanager_mac.mm b/src/gui/macOS/fileproviderdomainmanager_mac.mm index fb78dcd0184eb..ffdfa06e03bb6 100644 --- a/src/gui/macOS/fileproviderdomainmanager_mac.mm +++ b/src/gui/macOS/fileproviderdomainmanager_mac.mm @@ -22,7 +22,8 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcMacFileProviderDomainManager, "nextcloud.gui.macfileproviderdomainmanager", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacFileProviderDomainManager, "hidrivenext.gui.macfileproviderdomainmanager", QtInfoMsg) + } @@ -180,6 +181,7 @@ inline QString accountIdFromDomain(NSFileProviderDomain * const domain) namespace OCC { + namespace Mac { class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::MacImplementation diff --git a/src/gui/macOS/fileproviderdomainsyncstatus_mac.mm b/src/gui/macOS/fileproviderdomainsyncstatus_mac.mm index affd83f3974d3..56f4d0d222caf 100644 --- a/src/gui/macOS/fileproviderdomainsyncstatus_mac.mm +++ b/src/gui/macOS/fileproviderdomainsyncstatus_mac.mm @@ -17,7 +17,7 @@ namespace OCC::Mac { -Q_LOGGING_CATEGORY(lcMacFileProviderDomainSyncStatus, "nextcloud.gui.macfileproviderdomainsyncstatus", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacFileProviderDomainSyncStatus, "hidrivenext.gui.macfileproviderdomainsyncstatus", QtInfoMsg) class FileProviderDomainSyncStatus::MacImplementation { diff --git a/src/gui/macOS/fileprovideritemmetadata_mac.mm b/src/gui/macOS/fileprovideritemmetadata_mac.mm index aa2e80432761c..9eaf0707c2e4e 100644 --- a/src/gui/macOS/fileprovideritemmetadata_mac.mm +++ b/src/gui/macOS/fileprovideritemmetadata_mac.mm @@ -42,7 +42,7 @@ QString nsNameComponentsToLocalisedQString(NSPersonNameComponents *const nameCom namespace Mac { -Q_LOGGING_CATEGORY(lcMacImplFileProviderItemMetadata, "nextcloud.gui.macfileprovideritemmetadatamacimpl", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacImplFileProviderItemMetadata, "hidrivenext.gui.macfileprovideritemmetadatamacimpl", QtInfoMsg) FileProviderItemMetadata FileProviderItemMetadata::fromNSFileProviderItem(const void *const nsFileProviderItem, const QString &domainIdentifier) { diff --git a/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm b/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm index 624b61b6bf536..299f635c9697b 100644 --- a/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm +++ b/src/gui/macOS/fileprovidermaterialiseditemsmodel_mac.mm @@ -17,7 +17,7 @@ namespace Mac { -Q_LOGGING_CATEGORY(lcMacImplFileProviderMaterialisedItemsModelMac, "nextcloud.gui.macfileprovidermaterialiseditemsmodelmac", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacImplFileProviderMaterialisedItemsModelMac, "hidrivenext.gui.macfileprovidermaterialiseditemsmodelmac", QtInfoMsg) void FileProviderMaterialisedItemsModel::evictItem(const QString &identifier, const QString &domainIdentifier) { diff --git a/src/gui/macOS/fileprovidersettingscontroller_mac.mm b/src/gui/macOS/fileprovidersettingscontroller_mac.mm index 71e0d429e8299..9e4468798739c 100644 --- a/src/gui/macOS/fileprovidersettingscontroller_mac.mm +++ b/src/gui/macOS/fileprovidersettingscontroller_mac.mm @@ -43,7 +43,7 @@ float gbFromBytesWithOneDecimal(const unsigned long long bytes) namespace Mac { -Q_LOGGING_CATEGORY(lcFileProviderSettingsController, "nextcloud.gui.mac.fileprovider.settingscontroller") +Q_LOGGING_CATEGORY(lcFileProviderSettingsController, "hidrivenext.gui.mac.fileprovider.settingscontroller") class FileProviderSettingsController::MacImplementation : public QObject { diff --git a/src/gui/macOS/fileproviderutils_mac.mm b/src/gui/macOS/fileproviderutils_mac.mm index 9ca8238a90b80..d6840a0f182be 100644 --- a/src/gui/macOS/fileproviderutils_mac.mm +++ b/src/gui/macOS/fileproviderutils_mac.mm @@ -21,7 +21,7 @@ namespace FileProviderUtils { -Q_LOGGING_CATEGORY(lcMacFileProviderUtils, "nextcloud.gui.macfileproviderutils", QtInfoMsg) +Q_LOGGING_CATEGORY(lcMacFileProviderUtils, "hidrivenext.gui.macfileproviderutils", QtInfoMsg) inline bool hasBundleExtension(const QString &domainId) { diff --git a/src/gui/macOS/fileproviderxpc_mac.mm b/src/gui/macOS/fileproviderxpc_mac.mm index 9dcd801cdf5f9..57e1df720f01d 100644 --- a/src/gui/macOS/fileproviderxpc_mac.mm +++ b/src/gui/macOS/fileproviderxpc_mac.mm @@ -26,7 +26,7 @@ namespace OCC::Mac { -Q_LOGGING_CATEGORY(lcFileProviderXPC, "nextcloud.gui.macos.fileprovider.xpc", QtInfoMsg) +Q_LOGGING_CATEGORY(lcFileProviderXPC, "hidrivenext.gui.macos.fileprovider.xpc", QtInfoMsg) FileProviderXPC::FileProviderXPC(QObject *parent) : QObject{parent} diff --git a/src/gui/macOS/fileproviderxpc_mac_utils.mm b/src/gui/macOS/fileproviderxpc_mac_utils.mm index 2e2edb71553df..14827e7b49eb0 100644 --- a/src/gui/macOS/fileproviderxpc_mac_utils.mm +++ b/src/gui/macOS/fileproviderxpc_mac_utils.mm @@ -10,13 +10,13 @@ #include "gui/accountmanager.h" namespace { -const char *const clientCommunicationServiceName = "com.nextcloud.desktopclient.ClientCommunicationService"; +const char *const clientCommunicationServiceName = "com.ionos.hidrivenext.desktopclient.ClientCommunicationService"; NSString *const nsClientCommunicationServiceName = [NSString stringWithUTF8String:clientCommunicationServiceName]; } namespace OCC::Mac::FileProviderXPCUtils { -Q_LOGGING_CATEGORY(lcFileProviderXPCUtils, "nextcloud.gui.macos.fileprovider.xpc.utils", QtInfoMsg) +Q_LOGGING_CATEGORY(lcFileProviderXPCUtils, "hidrivenext.gui.macos.fileprovider.xpc.utils", QtInfoMsg) NSArray *getDomainManagers() { diff --git a/src/gui/macOS/ui/FileProviderEvictionDialog.qml b/src/gui/macOS/ui/FileProviderEvictionDialog.qml index 1becc03016dfb..f7f9bd7f48333 100644 --- a/src/gui/macOS/ui/FileProviderEvictionDialog.qml +++ b/src/gui/macOS/ui/FileProviderEvictionDialog.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.nextcloud.desktopclient 1.0 +import com.ionos.hidrivenext.desktopclient ApplicationWindow { id: root @@ -24,8 +24,14 @@ ApplicationWindow { LayoutMirroring.enabled: Application.layoutDirection === Qt.RightToLeft LayoutMirroring.childrenInherit: true + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontBoldWeight + palette.base: Style.sesBackgroundColor + palette.windowText: Style.sesTrayFontColor + palette.buttonText: Style.sesTrayFontColor title: qsTr("Remove local copies") - color: palette.base + color: Style.sesBackgroundColor flags: Qt.Dialog | Qt.WindowStaysOnTopHint width: 640 height: 480 diff --git a/src/gui/macOS/ui/FileProviderFileDelegate.qml b/src/gui/macOS/ui/FileProviderFileDelegate.qml index 5c1bcb1dc3577..39e8769f3039f 100644 --- a/src/gui/macOS/ui/FileProviderFileDelegate.qml +++ b/src/gui/macOS/ui/FileProviderFileDelegate.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.nextcloud.desktopclient 1.0 +import com.ionos.hidrivenext.desktopclient Item { id: root diff --git a/src/gui/macOS/ui/FileProviderSettings.qml b/src/gui/macOS/ui/FileProviderSettings.qml index f364a96ce22bb..a5623092633da 100644 --- a/src/gui/macOS/ui/FileProviderSettings.qml +++ b/src/gui/macOS/ui/FileProviderSettings.qml @@ -11,8 +11,8 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.nextcloud.desktopclient 1.0 - +import com.ionos.hidrivenext.desktopclient + Page { id: root @@ -22,8 +22,15 @@ Page { title: qsTr("Virtual files settings") + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontBoldWeight + palette.base: Style.sesBackgroundColor + palette.windowText: Style.sesTrayFontColor + palette.buttonText: Style.sesTrayFontColor + background: Rectangle { - color: palette.base + color: Style.sesBackgroundColor border.width: root.showBorder ? Style.normalBorderWidth : 0 border.color: root.palette.dark } diff --git a/src/gui/macOS/ui/FileProviderStorageInfo.qml b/src/gui/macOS/ui/FileProviderStorageInfo.qml index 3c316d78f0d1a..5b81e0b28e338 100644 --- a/src/gui/macOS/ui/FileProviderStorageInfo.qml +++ b/src/gui/macOS/ui/FileProviderStorageInfo.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.nextcloud.desktopclient 1.0 +import com.ionos.hidrivenext.desktopclient GridLayout { id: root diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml index 523e7275ed56e..bb00f3ab79576 100644 --- a/src/gui/macOS/ui/FileProviderSyncStatus.qml +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.nextcloud.desktopclient 1.0 +import com.ionos.hidrivenext.desktopclient GridLayout { id: root @@ -44,9 +44,8 @@ GridLayout { Layout.column: 1 Layout.columnSpan: root.syncStatus.syncing ? 2 : 1 Layout.fillWidth: true - font.bold: true - font.pointSize: Style.headerFontPtSize text: root.syncStatus.syncing ? qsTr("Syncing") : qsTr("All synced!") + color: Style.sesTrayFontColor } NCProgressBar { diff --git a/src/gui/main.cpp b/src/gui/main.cpp index fe1089110940f..0717691425337 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -17,6 +17,7 @@ #include "application.h" #include "cocoainitializer.h" #include "theme.h" +#include "whitelabeltheme.h" #include "common/utility.h" #if defined(BUILD_UPDATER) @@ -32,6 +33,9 @@ #include #include #include +#include "sesstyle.h" +#include "ga4/ganalytics.h" +#include "ga4/datacollectionwrapper.h" using namespace OCC; @@ -87,6 +91,7 @@ int main(int argc, char **argv) if (const auto osVersion = QOperatingSystemVersion::current().version(); osVersion < QOperatingSystemVersion::Windows11.version()) { qmlStyle = QStringLiteral("Universal"); widgetsStyle = QStringLiteral("Fusion"); + #ifndef IONOS_BUILD if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_UNIVERSAL_THEME")) { // initialise theme with the light/dark mode setting from the OS qputenv("QT_QUICK_CONTROLS_UNIVERSAL_THEME", "System"); @@ -96,12 +101,21 @@ int main(int argc, char **argv) // for Windows Server 2016 to display text as expected, see #8064 qputenv("QT_QPA_PLATFORM", "windows:nodirectwrite"); } + #endif } else { qmlStyle = QStringLiteral("FluentWinUI3"); widgetsStyle = QStringLiteral("windows11"); } + QApplication::setFont(WLTheme.settingsFontDefault()); #endif +#ifdef IONOS_BUILD + OCC::Application app(argc, argv); + app.setStyle(new sesStyle(QStyleFactory::create("WindowsVista"))); + + QQuickStyle::setStyle(qmlStyle); + QQuickStyle::setFallbackStyle(QStringLiteral("Fusion")); +#elif QQuickStyle::setStyle(qmlStyle); OCC::Application app(argc, argv); @@ -109,6 +123,7 @@ int main(int argc, char **argv) if (!widgetsStyle.isEmpty()) { QApplication::setStyle(QStyleFactory::create(widgetsStyle)); } +#endif #ifndef Q_OS_WIN signal(SIGPIPE, SIG_IGN); @@ -209,5 +224,12 @@ int main(int argc, char **argv) } } + QString clientID; + if (clientID.isEmpty()) { + clientID = QUuid::createUuid().toString(); + } + + + return app.exec(); } diff --git a/src/gui/moreoptionsbuttonstylehelper.cpp b/src/gui/moreoptionsbuttonstylehelper.cpp new file mode 100644 index 0000000000000..ed1990cb338b2 --- /dev/null +++ b/src/gui/moreoptionsbuttonstylehelper.cpp @@ -0,0 +1,113 @@ +#include "moreoptionsbuttonstylehelper.h" + +#include "buttonstylestrategy.h" +#include "buttonstyle.h" +#include "whitelabeltheme.h" +#include +#include +#include + + +void MoreOptionsButtonStyleHelper::setupPainterForToolButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget) +{ + OCC::ButtonStyle& style = ButtonStyleStrategy::getButtonStyle(widget, option); + + // Disabled + if (!(option->state & QStyle::State_Enabled)) { + painter->setPen(QColor(style.buttonDisabledBorderColor())); + painter->setBrush(QColor(style.buttonDisabledColor())); + } + //Pressed + else if (option->state & QStyle::State_Sunken) + { + painter->setPen(QColor(style.buttonPressedBorderColor())); + painter->setBrush(QColor(style.buttonPressedColor())); + } + // Hover + else if(option->state & QStyle::State_MouseOver) + { + painter->setPen(QColor(style.buttonHoverBorderColor())); + painter->setBrush(QColor(style.buttonHoverColor())); + } + // Focused + else if (option->state & QStyle::State_HasFocus) { + painter->setPen(QColor(style.buttonFocusedBorderColor())); + painter->setBrush(QColor(style.buttonFocusedColor())); + } + // Else - Just beeing there + else { + painter->setPen(QColor(style.buttonDefaultBorderColor())); + painter->setBrush(QColor(style.buttonDefaultColor())); + } +} + +void MoreOptionsButtonStyleHelper::drawToolButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget) +{ + painter->save(); + painter->setRenderHints(QPainter::Antialiasing); + setupPainterForToolButtonShape(option, painter, widget); + const int radius = option->rect.height() / 2; + painter->drawRoundedRect(option->rect, radius,radius); + painter->restore(); +} + +QPixmap MoreOptionsButtonStyleHelper::tintPixmap(const QPixmap &src, const QColor &color) const{ + QPixmap result(src.size()); + result.fill(Qt::transparent); + + QPainter painter(&result); + painter.setCompositionMode(QPainter::CompositionMode_Source); + painter.drawPixmap(0, 0, src); + + painter.setCompositionMode(QPainter::CompositionMode_SourceIn); + painter.fillRect(result.rect(), color); + + painter.end(); + return result; +} + +QSize MoreOptionsButtonStyleHelper::getLargestIconSize(const QIcon &icon) const{ + QList availableSizes = icon.availableSizes(); + + if (availableSizes.isEmpty()) { + return QSize(); + } + + QSize largestSize; + int maxDimension = 0; + + for (const QSize &size : availableSizes) { + if (size.width() > maxDimension) { + maxDimension = size.width(); + largestSize = size; + } + } + + return largestSize; +} + +void MoreOptionsButtonStyleHelper::adjustIconColor(QStyleOptionButton *option, const QWidget *widget) +{ + QColor iconColor; + OCC::ButtonStyle& style = ButtonStyleStrategy::getButtonStyle(widget, option); + + if (!(option->state & QStyle::State_Enabled)) { + iconColor = style.buttonDisabledFontColor(); + } + else if(option->state & QStyle::State_MouseOver) + { + iconColor = QColor(style.buttonIconHoverColor()); + } + else + { + iconColor = QColor(style.buttonIconDefaultColor()); + } + + QIcon icon = option->icon; + QSize iconSize = getLargestIconSize(icon); + QPixmap pixmap = icon.pixmap(iconSize); + + QPixmap coloredPixmap = tintPixmap(pixmap, iconColor); + + option->icon = (QIcon(coloredPixmap)); +} \ No newline at end of file diff --git a/src/gui/moreoptionsbuttonstylehelper.h b/src/gui/moreoptionsbuttonstylehelper.h new file mode 100644 index 0000000000000..6ffc2d5f4060d --- /dev/null +++ b/src/gui/moreoptionsbuttonstylehelper.h @@ -0,0 +1,25 @@ +#ifndef MOREOPTIONSBUTTONSTYLEHELPER_H +#define MOREOPTIONSBUTTONSTYLEHELPER_H + +#include + +class QPainter; +class QStyleOptionButton; +class QWidget; +class QPixmap; +class QColor; +class QIcon; + +class MoreOptionsButtonStyleHelper +{ +public: + void setupPainterForToolButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget); + void drawToolButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget); + void adjustIconColor(QStyleOptionButton *option, const QWidget *widget); + +private: + QPixmap tintPixmap(const QPixmap &src, const QColor &color) const; + QSize getLargestIconSize(const QIcon &icon) const; + +}; +#endif // MOREOPTIONSBUTTONSTYLEHELPER_H \ No newline at end of file diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 1ab9ce9d5616f..a6f0cfe4e19e7 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -34,6 +34,7 @@ #include "tray/syncstatussummary.h" #include "tray/unifiedsearchresultslistmodel.h" #include "filesystem.h" +#include "whitelabeltheme.h" #ifdef WITH_LIBCLOUDPROVIDERS #include "cloudproviders/cloudprovidermanager.h" @@ -44,6 +45,7 @@ #include #include #include +#include #ifdef WITH_LIBCLOUDPROVIDERS #include #include @@ -68,7 +70,7 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcOwnCloudGui, "com.nextcloud.owncloudgui") +Q_LOGGING_CATEGORY(lcOwnCloudGui, "com.hidrivenext.owncloudgui") const char propertyAccountC[] = "oc_account"; @@ -85,7 +87,7 @@ ownCloudGui::ownCloudGui(Application *parent) _tray = Systray::instance(); _tray->setTrayEngine(new QQmlApplicationEngine(this)); // for the beginning, set the offline icon until the account was verified - _tray->setIcon(Theme::instance()->folderOfflineIcon(/*systray?*/ true)); + _tray->setIcon(QIcon(WLTheme.syncOfflineIcon())); _tray->show(); @@ -120,28 +122,29 @@ ownCloudGui::ownCloudGui(Application *parent) connect(Logger::instance(), &Logger::guiLog, this, &ownCloudGui::slotShowTrayMessage); connect(Logger::instance(), &Logger::guiMessage, this, &ownCloudGui::slotShowGuiMessage); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SyncStatusSummary"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "EmojiModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "UserStatusSelectorModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "ActivityListModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "FileActivityListModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SortedActivityListModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "WheelHandler"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "CallStateChecker"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "DateFieldBackend"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "FileDetails"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "ShareModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "ShareeModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SortedShareModel"); - qmlRegisterType("com.nextcloud.desktopclient", 1, 0, "SyncConflictsModel"); - - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "QAbstractItemModel", "QAbstractItemModel"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "activity", "Activity"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "talkNotificationData", "TalkNotificationData"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "userStatus", "Access to Status enum"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "sharee", "Access to Type enum"); - qmlRegisterUncreatableType("com.nextcloud.desktopclient", 1, 0, "ClientSideEncryptionTokenSelector", "Access to the certificate selector"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SyncStatusSummary"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "EmojiModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "UserStatusSelectorModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ActivityListModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "FileActivityListModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SortedActivityListModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "WheelHandler"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "CallStateChecker"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "DateFieldBackend"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "FileDetails"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ShareModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ShareeModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SortedShareModel"); + qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SyncConflictsModel"); + +// TODO SES-459 check casing / spelling + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "QAbstractItemModel", "QAbstractItemModel"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "Activity", "Activity"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "TalkNotificationData", "TalkNotificationData"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "UserStatus", "Access to Status enum"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "Sharee", "Access to Type enum"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "ClientSideEncryptionTokenSelector", "Access to the certificate selector"); qRegisterMetaType("ActivityListModel*"); qRegisterMetaType("UnifiedSearchResultsListModel*"); @@ -151,13 +154,14 @@ ownCloudGui::ownCloudGui(Application *parent) qRegisterMetaType("Sharee"); qRegisterMetaType("ActivityList"); - qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "UserModel", UserModel::instance()); - qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "UserAppsModel", UserAppsModel::instance()); - qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "Theme", Theme::instance()); - qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "Systray", Systray::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "UserModel", UserModel::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "UserAppsModel", UserAppsModel::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "Theme", Theme::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "Systray", Systray::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "WLTheme", &WLTheme); #ifdef BUILD_FILE_PROVIDER_MODULE - qmlRegisterSingletonInstance("com.nextcloud.desktopclient", 1, 0, "FileProviderSettingsController", Mac::FileProviderSettingsController::instance()); + qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "FileProviderSettingsController", Mac::FileProviderSettingsController::instance()); #endif } @@ -247,7 +251,7 @@ void ownCloudGui::slotSyncStateChange(Folder *folder) || result.status() == SyncResult::Problem || result.status() == SyncResult::SyncAbortRequested || result.status() == SyncResult::Error) { - Logger::instance()->enterNextLogFile(QStringLiteral("nextcloud.log"), OCC::Logger::LogType::Log); + Logger::instance()->enterNextLogFile(QStringLiteral("hidrivenext.log"), OCC::Logger::LogType::Log); } } @@ -617,6 +621,9 @@ void ownCloudGui::slotShowSettings() #ifdef Q_OS_MACOS auto *fgbg = new ForegroundBackground(); _settingsDialog->installEventFilter(fgbg); +#else + _settingsDialog->setStyleSheet(QStringLiteral("QDialog {background: %1}") + .arg(Theme::instance()->systemPalette()["base"].value().name())); #endif connect(_tray.data(), &Systray::hideSettingsDialog, diff --git a/src/gui/proxyauthdialog.cpp b/src/gui/proxyauthdialog.cpp index 9a5bad4d984bb..bbdbbf9c25b66 100644 --- a/src/gui/proxyauthdialog.cpp +++ b/src/gui/proxyauthdialog.cpp @@ -13,6 +13,7 @@ ProxyAuthDialog::ProxyAuthDialog(QWidget *parent) , ui(new Ui::ProxyAuthDialog) { ui->setupUi(this); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); } ProxyAuthDialog::~ProxyAuthDialog() diff --git a/src/gui/pushbuttonstylehelper.cpp b/src/gui/pushbuttonstylehelper.cpp new file mode 100644 index 0000000000000..efe06440db016 --- /dev/null +++ b/src/gui/pushbuttonstylehelper.cpp @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** This file is part of the Oxygen2 project. +** +** SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company +** +** SPDX-License-Identifier: MIT +** +****************************************************************************/ + +#include "pushbuttonstylehelper.h" + + +#include "buttonstyle.h" +#include "buttonstylestrategy.h" +#include "whitelabeltheme.h" +#include +#include +#include +#include +#include + +void PushButtonStyleHelper::setupPainterForShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget) +{ + OCC::ButtonStyle& style = ButtonStyleStrategy::getButtonStyle(widget, option); + + // Disabled + if (!(option->state & QStyle::State_Enabled)) { + painter->setPen(QColor(style.buttonDisabledBorderColor())); + painter->setBrush(QColor(style.buttonDisabledColor())); + } + //Pressed + else if (option->state & QStyle::State_Sunken) { + + painter->setPen(QColor(style.buttonPressedBorderColor())); + painter->setBrush(QColor(style.buttonPressedColor())); + } + // Hover + else if(option->state & QStyle::State_MouseOver) + { + painter->setPen(QColor(style.buttonHoverBorderColor())); + painter->setBrush(QColor(style.buttonHoverColor())); + } + // Focused + else if (option->state & QStyle::State_HasFocus) { + painter->setPen(QColor(style.buttonFocusedBorderColor())); + painter->setBrush(QColor(style.buttonFocusedColor())); + } + // Else - Just beeing there + else { + painter->setPen(QColor(style.buttonDefaultBorderColor())); + painter->setBrush(QColor(style.buttonDefaultColor())); + } +} + +void PushButtonStyleHelper::drawButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget) +{ + painter->save(); + painter->setRenderHints(QPainter::Antialiasing); + setupPainterForShape(option, painter, widget); + const int radius = OCC::WLTheme.buttonRadiusInt(); + painter->drawRoundedRect(option->rect, radius, radius); + painter->restore(); +} + +void PushButtonStyleHelper::setFont(QFont& font) const +{ + font.setWeight(OCC::WLTheme.settingsTitleWeightDemiBold()); + font.setPixelSize(OCC::WLTheme.settingsTextPixel()); +} + +void PushButtonStyleHelper::recalculateContentSize(QSize &contentsSize, const QWidget *widget) const +{ + QFont font = widget->font(); + setFont(font); + QFontMetrics fm(font); + + //Code aus qpushbutton.cpp - sizeHint + const QPushButton* pushButton = qobject_cast(widget); + int w = 0, h = 0; + QString s(pushButton->text()); + bool empty = s.isEmpty(); + if (empty) + s = QStringLiteral("XXXX"); + QSize sz = fm.size(Qt::TextShowMnemonic, s); + if (!empty || !w) + w += sz.width(); + if (!empty || !h) + h = qMax(h, sz.height()); + // -- end code + + contentsSize.setHeight(h); + contentsSize.setWidth(w); +} + +QSize PushButtonStyleHelper::sizeFromContents(const QStyleOptionButton *option, QSize contentsSize, const QWidget *widget, int margin) const +{ + Q_UNUSED(option) + Q_UNUSED(widget) + if(widget != nullptr) + { + recalculateContentSize(contentsSize, widget); + } + const int frameWidth = 2; // due to pen width 1 in drawButtonBevel, on each side + return QSize(qMax(80, contentsSize.width() + 2 * margin + frameWidth), qMin(40, contentsSize.height() + 2 * margin + frameWidth)); +} + +void PushButtonStyleHelper::adjustTextPalette(QStyleOptionButton *option, const QWidget *widget) const +{ + QColor textColor; + OCC::ButtonStyle& style = ButtonStyleStrategy::getButtonStyle(widget, option); + + // Disabled + if (!(option->state & QStyle::State_Enabled)) { + textColor = style.buttonDisabledFontColor(); + } + else + { + textColor = style.buttonFontColor(); + } + option->palette.setColor(QPalette::ButtonText, textColor); +} \ No newline at end of file diff --git a/src/gui/pushbuttonstylehelper.h b/src/gui/pushbuttonstylehelper.h new file mode 100644 index 0000000000000..cf9c23959599c --- /dev/null +++ b/src/gui/pushbuttonstylehelper.h @@ -0,0 +1,36 @@ +/**************************************************************************** +** +** This file is part of the Oxygen2 project. +** +** SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company +** +** SPDX-License-Identifier: MIT +** +****************************************************************************/ + +#ifndef PUSHBUTTONSTYLEHELPER_H +#define PUSHBUTTONSTYLEHELPER_H + +#include + +class QPainter; +class QPushButton; +class QStyleOptionButton; +class QWidget; +class QPixmap; +class QColor; +class QFont; + +class PushButtonStyleHelper +{ +public: + void setupPainterForShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget); + void drawButtonShape(const QStyleOptionButton *option, QPainter *painter, const QWidget *widget); + QSize sizeFromContents(const QStyleOptionButton *option, QSize contentsSize, const QWidget *widget, int margin) const; + void adjustTextPalette(QStyleOptionButton *option, const QWidget *widget) const; + void setFont(QFont& font) const; +private: + void recalculateContentSize(QSize &contentsSize, const QWidget *widget) const; + +}; +#endif // PUSHBUTTONSTYLEHELPER_H \ No newline at end of file diff --git a/src/gui/selectivesyncdialog.cpp b/src/gui/selectivesyncdialog.cpp index e9effaf461a3b..1353d0cb04a69 100644 --- a/src/gui/selectivesyncdialog.cpp +++ b/src/gui/selectivesyncdialog.cpp @@ -6,12 +6,14 @@ #include "selectivesyncdialog.h" #include "account.h" +#include "buttonstyle.h" #include "common/utility.h" #include "configfile.h" #include "folder.h" #include "folderman.h" #include "networkjobs.h" #include "theme.h" +#include "whitelabeltheme.h" #include #include #include @@ -65,11 +67,19 @@ SelectiveSyncWidget::SelectiveSyncWidget(AccountPtr account, QWidget *parent) _loading = new QLabel(tr("Loading …"), _folderTree); auto layout = new QVBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); + layout->setContentsMargins(1, 2, 1, 1); auto header = new QLabel(this); header->setText(tr("Deselect remote folders you do not wish to synchronize.")); header->setWordWrap(true); + header->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor()) + + QStringLiteral("background-color: %1;").arg(WLTheme.dialogBackgroundColor()) + ); layout->addWidget(header); layout->addWidget(_folderTree); @@ -87,6 +97,42 @@ SelectiveSyncWidget::SelectiveSyncWidget(AccountPtr account, QWidget *parent) _folderTree->headerItem()->setText(0, tr("Name")); _folderTree->headerItem()->setText(1, tr("Size")); + +#ifdef Q_OS_MAC + _folderTree->header()->setStyleSheet( + "QHeaderView::section {" + " background-color: white;" // Set the background color + " border: 1px solid #e6e6e6;" // Optional: add a border + " padding-left: 4px;" + + QString(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor())) + + + "}" + ); +#else + _folderTree->header()->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); +#endif + + _folderTree->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); + +#ifdef Q_OS_MAC + _folderTree->setPalette(QPalette(WLTheme.white())); +#endif + ConfigFile::setupDefaultExcludeFilePaths(_excludedFiles); _excludedFiles.reloadExcludeFiles(); } @@ -470,6 +516,7 @@ SelectiveSyncDialog::SelectiveSyncDialog(AccountPtr account, Folder *folder, QWi , _folder(folder) { bool ok = false; + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); init(account); QStringList selectiveSyncList = _folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, &ok); if (ok) { @@ -487,6 +534,7 @@ SelectiveSyncDialog::SelectiveSyncDialog(AccountPtr account, const QString &fold , _folder(nullptr) { init(account); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); _selectiveSync->setFolderInfo(folder, folder, blacklist); } @@ -497,12 +545,60 @@ void SelectiveSyncDialog::init(const AccountPtr &account) _selectiveSync = new SelectiveSyncWidget(account, this); layout->addWidget(_selectiveSync); auto *buttonBox = new QDialogButtonBox(Qt::Horizontal); + _okButton = buttonBox->addButton(QDialogButtonBox::Ok); + _okButton->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); connect(_okButton, &QPushButton::clicked, this, &SelectiveSyncDialog::accept); + QPushButton *button = nullptr; button = buttonBox->addButton(QDialogButtonBox::Cancel); + button->setStyleSheet( + button->styleSheet() + QStringLiteral("QPushButton { %1; } ").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black() + ) + ) + ); connect(button, &QAbstractButton::clicked, this, &QDialog::reject); + layout->addWidget(buttonBox); + customizeStyle(); +} + +void SelectiveSyncDialog::customizeStyle() +{ + this->setStyleSheet( + QStringLiteral("QWidget QTreeView{ background-color: %1; }").arg(WLTheme.dialogBackgroundColor()) + ); + + _okButton->setStyleSheet( + _okButton->styleSheet() + QStringLiteral("QPushButton { %1; } ").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight500(), + WLTheme.white() + ) + ) + ); + + // Set background colors + auto dialogPalette = palette(); + const auto backgroundColor = QColor(WLTheme.dialogBackgroundColor()); + + // Set Color of upper part + dialogPalette.setColor(QPalette::Base, backgroundColor); + + // Set Color of lower part + dialogPalette.setColor(QPalette::Window, backgroundColor); + + // Set separator color + dialogPalette.setColor(QPalette::Mid, backgroundColor); + + setPalette(dialogPalette); } void SelectiveSyncDialog::accept() diff --git a/src/gui/selectivesyncdialog.h b/src/gui/selectivesyncdialog.h index ecfc0f5837af6..12c6974096028 100644 --- a/src/gui/selectivesyncdialog.h +++ b/src/gui/selectivesyncdialog.h @@ -102,7 +102,7 @@ class SelectiveSyncDialog : public QDialog private: void init(const AccountPtr &account); - + void customizeStyle(); SelectiveSyncWidget *_selectiveSync = nullptr; Folder *_folder; diff --git a/src/gui/sesFileIconProvider.cpp b/src/gui/sesFileIconProvider.cpp new file mode 100644 index 0000000000000..f8647e821e717 --- /dev/null +++ b/src/gui/sesFileIconProvider.cpp @@ -0,0 +1,23 @@ +#include "sesFileIconProvider.h" +#include "whitelabeltheme.h" + +#include +#include + +QIcon SesFileIconProvider::icon(const QFileInfo &info) const +{ + QFileIconProvider provider; + + if (info.isDir()) + { + return QIcon(OCC::WLTheme.folderIcon("qtwidget")); + } + + if (info.suffix().isEmpty()) + { + return QIcon(":/client/theme/ses/ses-file.svg"); + } + + + return provider.icon(info); +}; \ No newline at end of file diff --git a/src/gui/sesFileIconProvider.h b/src/gui/sesFileIconProvider.h new file mode 100644 index 0000000000000..69d7454be7d3f --- /dev/null +++ b/src/gui/sesFileIconProvider.h @@ -0,0 +1,14 @@ +#ifndef SESFILEICONPROVIDER_H +#define SESFILEICONPROVIDER_H + +#include +#include +#include + +class SesFileIconProvider : public QFileIconProvider +{ +public: + QIcon icon(const QFileInfo &info) const override; +}; + +#endif // SESFILEICONPROVIDER_H \ No newline at end of file diff --git a/src/gui/sessnackbar.cpp b/src/gui/sessnackbar.cpp new file mode 100644 index 0000000000000..8a4bff564680f --- /dev/null +++ b/src/gui/sessnackbar.cpp @@ -0,0 +1,140 @@ +#include "sessnackbar.h" +#include "whitelabeltheme.h" +#include "theme.h" +#include +#include +#include + +namespace OCC { + + sesSnackBar::sesSnackBar(QWidget* parent) + : QFrame(parent) + { + setObjectName("sesSnackBar"); + setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + setContentsMargins(0, 0, 0, 0); + + auto policy = sizePolicy(); + policy.setRetainSizeWhenHidden(false); + setSizePolicy(policy); + + const auto layout = new QHBoxLayout(); + layout->setObjectName("sesSnackBarLayout"); + layout->setContentsMargins(16, 15, 16, 15); + layout->setSpacing(0); + + m_captionLabel.setObjectName("sesSnackBarCaption"); + m_captionLabel.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); + m_captionLabel.setText(m_caption); + + m_messageLabel.setObjectName("sesSnackBarMessage"); + m_messageLabel.setText(m_message); + m_messageLabel.setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); + m_messageLabel.setWordWrap(true); + + m_iconLabel.setObjectName("sesSnackBarIcon"); + m_iconLabel.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + m_iconLabel.setFixedSize(24, 24); + + layout->addWidget(&m_captionLabel); + layout->addSpacerItem(new QSpacerItem(8, 0, QSizePolicy::Fixed, QSizePolicy::Fixed)); + layout->addWidget(&m_messageLabel); + layout->addSpacerItem(new QSpacerItem(8, 0, QSizePolicy::Fixed, QSizePolicy::Fixed)); + layout->addWidget(&m_iconLabel); + setLayout(layout); + + errorStyle(); + } + + void sesSnackBar::clearMessage(){ + m_captionLabel.clear(); + m_messageLabel.clear(); + } + + QString sesSnackBar::caption() const { return m_caption; } + QString sesSnackBar::message() const { return m_message; } + + + void sesSnackBar::setCaption(QString captionText) { + if (m_caption != captionText) { + m_caption = captionText; + m_captionLabel.setText(m_caption); + emit captionChanged(m_caption); + } + } + + void sesSnackBar::setError(QString errorMessage){ + errorStyle(); + setMessage(errorMessage); + setCaption(tr("Error")); + emit errorChanged(m_message); + } + + void sesSnackBar::setWarning(QString warningMessage){ + warningStyle(); + setMessage(warningMessage); + setCaption(tr("Warning")); + emit warningChanged(m_message); + } + + void sesSnackBar::setSuccess(QString successMessage){ + successStyle(); + setMessage(successMessage); + setCaption(tr("Success")); + emit successChanged(m_message); + } + + void sesSnackBar::setMessage(QString messageText) { + m_message = messageText; + m_messageLabel.setText(m_message); + } + + void sesSnackBar::setWordWrap(bool on) + { + m_messageLabel.setWordWrap(on); + } + + bool sesSnackBar::wordWrap() const + { + return m_messageLabel.wordWrap(); + } + + void sesSnackBar::successStyle() + { + const auto logoIconFileName = Theme::hidpiFileName(":/client/theme/ses/ses-snackbar-success.svg"); + m_iconLabel.setPixmap(logoIconFileName); + + updateStyleSheet(WLTheme.successBorderColor(), WLTheme.successColor(), WLTheme.black(), WLTheme.black()); + } + + void sesSnackBar::warningStyle() + { + const auto logoIconFileName = Theme::hidpiFileName(":/client/theme/ses/ses-snackbar-warning.svg"); + m_iconLabel.setPixmap(logoIconFileName); + + updateStyleSheet(WLTheme.warningBorderColor(), WLTheme.warningColor(), WLTheme.black(), WLTheme.black()); + } + + void sesSnackBar::errorStyle() + { + const auto logoIconFileName = Theme::hidpiFileName(":/client/theme/ses/ses-snackbar-error.svg"); + m_iconLabel.setPixmap(logoIconFileName); + + updateStyleSheet(WLTheme.errorBorderColor(), WLTheme.errorColor(), WLTheme.black(), WLTheme.black()); + } + + void sesSnackBar::updateStyleSheet(QColor frameBorderColor, QColor frameBackgroundColor, QColor frameColor, QColor labelColor) + { + QString style = QString::fromLatin1("QFrame {border: 1px solid %1; border-radius: 4px;" + "background-color: %2; color: %3;}" + "QLabel {border: 0px none; padding 0px; background-color: transparent; color: %4;}" + "QLabel#sesSnackBarCaption {font-weight: bold;}" + ).arg(frameBorderColor.name() + , frameBackgroundColor.name() + , frameColor.name() + , labelColor.name()); + + setStyleSheet(style); + + } +} \ No newline at end of file diff --git a/src/gui/sessnackbar.h b/src/gui/sessnackbar.h new file mode 100644 index 0000000000000..cb215e996838c --- /dev/null +++ b/src/gui/sessnackbar.h @@ -0,0 +1,62 @@ +#ifndef SESSNACKBAR_H +#define SESSNACKBAR_H + +#include +#include +#include +#include +#include +#include +#include + +namespace OCC { + + class sesSnackBar : public QFrame + { + Q_OBJECT + Q_PROPERTY(QString caption READ caption WRITE setCaption NOTIFY captionChanged) + Q_PROPERTY(QString message READ message) + Q_PROPERTY(QString error WRITE setError NOTIFY errorChanged) + Q_PROPERTY(QString warning WRITE setWarning NOTIFY warningChanged) + Q_PROPERTY(QString success WRITE setSuccess NOTIFY successChanged) + Q_PROPERTY(bool wordWrap READ wordWrap WRITE setWordWrap) + + public: + explicit sesSnackBar(QWidget* parent = nullptr); + QString caption() const; + QString message() const; + bool wordWrap() const; + void clearMessage(); + + public slots: + void setCaption(QString captionText); + void setError(QString errorMessage); + void setWarning(QString warningMessage); + void setSuccess(QString successMessage); + + void setWordWrap(bool on); + + signals: + void captionChanged(QString captionText); + void errorChanged(QString errorText); + void warningChanged(QString warningText); + void successChanged(QString successText); + + private: + QString m_caption; + QString m_message; + + QLabel m_messageLabel; + QLabel m_captionLabel; + QLabel m_iconLabel; + + void updateStyleSheet(QColor frameBorderColor, QColor frameBackgroundColor, QColor frameColor, QColor labelColor); + void setMessage(QString messageText); + + void errorStyle(); + void warningStyle(); + void successStyle(); + + }; +} +#endif // SESSNACKBAR_H diff --git a/src/gui/sesstyle.cpp b/src/gui/sesstyle.cpp new file mode 100644 index 0000000000000..f0dc452ba8467 --- /dev/null +++ b/src/gui/sesstyle.cpp @@ -0,0 +1,217 @@ +/**************************************************************************** +** +** This file is part of the Oxygen2 project. +** +** SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company +** +** SPDX-License-Identifier: MIT +** +****************************************************************************/ + +/************************************************************************* + * + * Copyright (c) 2013-2019, Klaralvdalens Datakonsult AB (KDAB) + * All rights reserved. + * + * See the LICENSE.txt file shipped along with this file for the license. + * + *************************************************************************/ + +#include "sesstyle.h" +#include "whitelabeltheme.h" + +#include "pushbuttonstylehelper.h" +#include "moreoptionsbuttonstylehelper.h" + +#include +#include +#include +#include +#include + +sesStyle::sesStyle(QStyle* baseStyle) + : super(baseStyle) + , mPushButtonStyleHelper(new PushButtonStyleHelper) + , mMoreOptionsButtonStyleHelper(new MoreOptionsButtonStyleHelper) +{ +} + +void sesStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + switch (pe) { + case PE_FrameFocusRect: + // nothing, we don't want focus rects + break; + #ifdef Q_OS_MAC + case PE_IndicatorBranch: + { + + QStyleOption optCopy = *option; + int originalWidth = optCopy.rect.width(); + int originalHeight = optCopy.rect.height(); + optCopy.rect.setWidth(static_cast(originalWidth * 0.5)); + optCopy.rect.setHeight(static_cast(originalHeight * 0.5)); + optCopy.rect.translate(5, 5); + + if (!(option->state & State_Children)) + break; + if (option->state & State_Open) + drawPrimitive(PE_IndicatorArrowDown, &optCopy, painter, widget); + else { + const bool reverse = (option->direction == Qt::RightToLeft); + drawPrimitive(reverse ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight, &optCopy, painter, widget); + } + break; + } + #endif + default: + super::drawPrimitive(pe, option, painter, widget); + break; + } +} + +int sesStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const +{ + switch (metric) { + case PM_ButtonShiftHorizontal: + case PM_ButtonShiftVertical: + return 0; // no shift + case PM_ButtonMargin: + return 16; + default: + return super::pixelMetric(metric, option, widget); + } +} + +void sesStyle::drawButton(const QStyleOptionButton *btn, QPainter *painter, const QWidget *widget) const { + proxy()->drawControl(CE_PushButtonBevel, btn, painter, widget); + QStyleOptionButton subopt = *btn; + subopt.rect = subElementRect(SE_PushButtonContents, btn, widget); + proxy()->drawControl(CE_PushButtonLabel, &subopt, painter, widget); + if (btn->state & State_HasFocus) { + QStyleOptionFocusRect fropt; + fropt.QStyleOption::operator=(*btn); + fropt.rect = subElementRect(SE_PushButtonFocusRect, btn, widget); + proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget); + } +} + + +void sesStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + switch (element) { + case CE_TreeViewMoreOptions: + { + if (const auto *btn = qstyleoption_cast(option)) + { + // Bevel + mMoreOptionsButtonStyleHelper->drawToolButtonShape(btn, painter, widget); + + // Label / Icon + QStyleOptionButton subopt = *btn; + subopt.rect = subElementRect(SE_PushButtonContents, btn, widget); + mMoreOptionsButtonStyleHelper->adjustIconColor(&subopt, widget); + QCommonStyle::drawControl(CE_PushButtonLabel, &subopt, painter, widget); + } + return; + } + case CE_PushButton: + { + if (const auto *btn = qstyleoption_cast(option)) + { + drawButton(btn, painter, widget); + } + return; + } + case CE_PushButtonBevel: + if (const auto *optionButton = qstyleoption_cast(option)) + { + mPushButtonStyleHelper->drawButtonShape(optionButton, painter, widget); + } + return; + case CE_PushButtonLabel: + if (const auto *optionButton = qstyleoption_cast(option)) + { + QStyleOptionButton customStyleCopy = *optionButton; + mPushButtonStyleHelper->adjustTextPalette(&customStyleCopy, widget); + + painter->save(); + QFont font = painter->font(); + mPushButtonStyleHelper->setFont(font); + painter->setFont(font); + + QCommonStyle::drawControl(element, &customStyleCopy, painter, widget); + painter->restore(); + } + return; + default: + super::drawControl(element, option, painter, widget); + } +} + +void sesStyle::polish(QWidget *w) +{ + if (qobject_cast(w) || qobject_cast(w)) { + w->setAttribute(Qt::WA_Hover); + } + super::polish(w); +} + +bool sesStyle::eventFilter(QObject *obj, QEvent *event) +{ + return super::eventFilter(obj, event); +} + +PushButtonStyleHelper *sesStyle::pushButtonStyleHelper() const +{ + return mPushButtonStyleHelper.get(); +} + +int sesStyle::styleHint(StyleHint stylehint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const +{ + switch (stylehint) { + case SH_DialogButtonBox_ButtonsHaveIcons: + return 0; + default: + break; + } + + return super::styleHint(stylehint, option, widget, returnData); +} + +QSize sesStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget) const +{ + switch (type) { + case CT_PushButton: + if (const auto *buttonOption = qstyleoption_cast(option)) { + return mPushButtonStyleHelper->sizeFromContents(buttonOption, contentsSize, widget, pixelMetric(PM_ButtonMargin, buttonOption, widget)); + } + break; + case CT_TreeViewMoreOptions: + { + if (const auto *buttonOption = qstyleoption_cast(option)) { + return super::sizeFromContents(CT_ToolButton, option, contentsSize, widget); + } + break; + } + default: + break; + } + return super::sizeFromContents(type, option, contentsSize, widget); +} + +QRect sesStyle::subElementRect(SubElement subElement, const QStyleOption *option, const QWidget *widget) const +{ + switch (subElement) { + default: + return super::subElementRect(subElement, option, widget); + } +} + +void sesStyle::drawComplexControl(ComplexControl complexControl, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const +{ + switch (complexControl) { + default: + super::drawComplexControl(complexControl, option, painter, widget); + } +} \ No newline at end of file diff --git a/src/gui/sesstyle.h b/src/gui/sesstyle.h new file mode 100644 index 0000000000000..4ac43bc3fd1fa --- /dev/null +++ b/src/gui/sesstyle.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** This file is part of the Oxygen2 project. +** +** SPDX-FileCopyrightText: 2022 Klarälvdalens Datakonsult AB, a KDAB Group company +** +** SPDX-License-Identifier: MIT +** +****************************************************************************/ + +/************************************************************************* + * + * Copyright (c) 2013-2019, Klaralvdalens Datakonsult AB (KDAB) + * All rights reserved. + * + * See the LICENSE.txt file shipped along with this file for the license. + * + *************************************************************************/ +#pragma once + +#include +#include +#include + +class PushButtonStyleHelper; + +// QProxyStyle to see all widgets in an application (even if it means mixing with the default style) +// QCommonStyle to only see what we have styled, no bad interactions from the default style, but the other widgets won't be usable +using super = QProxyStyle; + +class sesStyle : public super +{ +public: + sesStyle(QStyle* baseStyle); + + enum CustomControlElement { + CE_TreeViewMoreOptions = QStyle::CE_CustomBase + 1, // Custom element for a button + }; + + enum CustomContentsType { + CT_TreeViewMoreOptions = QStyle::CT_CustomBase + 1, // Custom element for a button + }; + + sesStyle(); + + void drawPrimitive(PrimitiveElement pe, const QStyleOption *option, QPainter *painter, + const QWidget *widget = nullptr) const override; + + int pixelMetric(PixelMetric pm, const QStyleOption *option = nullptr, + const QWidget *widget = nullptr) const override; + + void drawButton(const QStyleOptionButton *btn, QPainter *painter, const QWidget *widget) const; + + void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, + const QWidget *widget = nullptr) const override; + + void drawComplexControl(ComplexControl complexControl, const QStyleOptionComplex *opt, QPainter *painter, + const QWidget *widget = nullptr) const override; + + int styleHint(StyleHint stylehint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const override; + + QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget) const override; + + QRect subElementRect(SubElement subElement, const QStyleOption *option, const QWidget *widget) const override; + + void polish(QWidget *w) override; + + bool eventFilter(QObject *obj, QEvent *event) override; + + + PushButtonStyleHelper* pushButtonStyleHelper() const; + +private: + std::unique_ptr mPushButtonStyleHelper; + std::unique_ptr mMoreOptionsButtonStyleHelper; + +}; \ No newline at end of file diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index dc6ab9cb802ca..94600e186d6a8 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -9,6 +9,7 @@ #include "folderman.h" #include "theme.h" +#include "whitelabeltheme.h" #include "generalsettings.h" #include "networksettings.h" #include "accountsettings.h" @@ -37,10 +38,25 @@ namespace { const QString TOOLBAR_CSS() { +#ifdef IONOS_BUILD + return QStringLiteral("QToolBar { background: %1; border: none; border-bottom: 1px solid %2; } " + "QToolBar QToolButton { background: %1; border: none; margin: 2px 0px 7px 12px; padding: 10px 4px 4px 4px; border-radius: %5; %8; } " + "QToolBar QToolButton:checked { background: %7; color: %4; }" + "QToolBar QToolButton:hover { background: %3; }" + "QToolBar QToolButton:pressed { background: %6; color: %4; }" + "QToolBar::separator { height: 100%; width: 1px; background: %2; margin-left: 12px; } " // Style for the separator + "QToolBarExtension#qt_toolbar_ext_button {margin: 0 0 7px 0; padding: 0;}" // Style overflow button + "QMenu { background: %1; color: %4; }" // Style overflow menu + "QMenu::item::checked { background: %7; color: %4; }" + "QMenu::item::selected { background: %3; color: %4; }" + "QMenu::item::pressed { background: %6; color: %4; }" + ); +#else return QStringLiteral("QToolBar { background: %1; margin: 0; padding: 0; border: none; border-bottom: 1px solid %2; spacing: 0; } " - "QToolBar QToolButton { background: %1; border: none; border-bottom: 1px solid %2; margin: 0; padding: 5px; } " - "QToolBar QToolBarExtension { padding:0; } " - "QToolBar QToolButton:checked { background: %3; color: %4; }"); + "QToolBar QToolButton { background: %1; border: none; border-bottom: 1px solid %2; margin: 0; padding: 5px; } " + "QToolBar QToolBarExtension { padding:0; } " + "QToolBar QToolButton:checked { background: %3; color: %4; }"); +#endif } const float buttonSizeRatio = 1.618f; // golden ratio @@ -62,7 +78,7 @@ QString shortDisplayNameForSettings(OCC::Account *account, int width) QFont f; QFontMetrics fm(f); host = fm.elidedText(host, Qt::ElideMiddle, width); - user = fm.elidedText(user, Qt::ElideRight, width); + user = fm.elidedText(user, Qt::ElideMiddle, width); } return QStringLiteral("%1\n%2").arg(user, host); } @@ -80,8 +96,9 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) _ui->setupUi(this); _toolBar = new QToolBar; - _toolBar->setIconSize(QSize(32, 32)); + _toolBar->setIconSize(QSize(WLTheme.toolbarIconSize(), WLTheme.toolbarIconSize())); _toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + _toolBar->setFixedHeight(94); layout()->setMenuBar(_toolBar); // People perceive this as a Window, so also make Ctrl+W work @@ -105,13 +122,20 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) _actionGroup->setExclusive(true); connect(_actionGroup, &QActionGroup::triggered, this, &SettingsDialog::slotSwitchPage); + QAction *newAccountAction = createColorAwareAction(WLTheme.plusIcon("qtwidget"), tr("New account")); + _actionGroup->addAction(newAccountAction); + _toolBar->addAction(newAccountAction); + connect(newAccountAction, &QAction::triggered, _gui, &ownCloudGui::slotNewAccountWizard); + +#ifndef IONOS_BUILD // Adds space between users + activities and general + network actions auto *spacer = new QWidget(); spacer->setMinimumWidth(10); spacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); _toolBar->addWidget(spacer); +#endif - QAction *generalAction = createColorAwareAction(QLatin1String(":/client/theme/settings.svg"), tr("General")); + QAction *generalAction = createColorAwareAction(WLTheme.settingsIcon("qtwidget"), tr("General")); _actionGroup->addAction(generalAction); _toolBar->addAction(generalAction); auto *generalSettings = new GeneralSettings; @@ -127,6 +151,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) #endif _actionGroupWidgets.insert(generalAction, generalSettings); + _toolBar->addSeparator(); const auto accountsList = AccountManager::instance()->accounts(); for (const auto &account : accountsList) { @@ -151,6 +176,10 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint & Qt::Window); cfg.restoreGeometry(this); + resize(width() > WLTheme.minimalSettingsDialogWidth() + 50 ? width(): WLTheme.minimalSettingsDialogWidth() + 50, + (height() > generalSettings->sizeHint().height() + 75 ? height(): generalSettings->sizeHint().height()) + 75); + setMinimumSize(WLTheme.minimalSettingsDialogWidth() + 50, generalSettings->sizeHint().height() + 75); + } SettingsDialog::~SettingsDialog() @@ -209,7 +238,7 @@ void SettingsDialog::showFirstPage() { QList actions = _toolBar->actions(); if (!actions.empty()) { - actions.first()->trigger(); + actions.at(1)->trigger(); } } @@ -227,14 +256,14 @@ void SettingsDialog::accountAdded(AccountState *s) bool brandingSingleAccount = !Theme::instance()->multiAccount(); const auto actionText = brandingSingleAccount ? tr("Account") : s->account()->displayName(); - const auto accountAction = createColorAwareAction(QLatin1String(":/client/theme/account.svg"), actionText); + const auto accountAction = createColorAwareAction(WLTheme.avatarIcon("qtwidget"), actionText); if (!brandingSingleAccount) { accountAction->setToolTip(s->account()->displayName()); accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), static_cast(height * buttonSizeRatio))); } - _toolBar->insertAction(_toolBar->actions().at(0), accountAction); + _toolBar->addAction(accountAction); auto accountSettings = new AccountSettings(s, this); QString objectName = QLatin1String("accountSettings_"); objectName += s->account()->displayName(); @@ -268,6 +297,7 @@ void SettingsDialog::accountAdded(AccountState *s) void SettingsDialog::slotAccountAvatarChanged() { +#ifndef IONOS_BUILD auto *account = dynamic_cast(sender()); if (account && _actionForAccount.contains(account)) { QAction *action = _actionForAccount[account]; @@ -278,6 +308,7 @@ void SettingsDialog::slotAccountAvatarChanged() } } } +#endif } void SettingsDialog::slotAccountDisplayNameChanged() @@ -327,6 +358,51 @@ void SettingsDialog::accountRemoved(AccountState *s) } } +#ifdef IONOS_BUILD + +void SettingsDialog::customizeStyle() +{ + QVariantMap palette = Theme::instance()->systemPalette(); + + QString white(palette["window"].value().name()); + QString hoverColor(WLTheme.toolButtonHoveredColor()); + QString pressedColor(WLTheme.toolButtonPressedColor()); + QString selectedColor(WLTheme.menuSelectedItemColor()); + + QString borderColor(palette["shadow"].value().name()); + QString highlightTextColor(palette["highlightedText"].value().name()); + + QString toolbarActionBorderRadius(WLTheme.toolbarActionBorderRadius()); + QString toolbarSideMargin (WLTheme.toolbarSideMargin()); + QString toolButtonFont ( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.menuTextColor() + ) + ); + + _toolBar->setStyleSheet( + TOOLBAR_CSS().arg(white, borderColor, hoverColor, highlightTextColor, toolbarActionBorderRadius, pressedColor, selectedColor, toolButtonFont) + ); + + for (const auto a : _actionGroup->actions()) { + QIcon icon = Theme::createColorAwareIcon(a->property("iconPath").toString(), this->palette()); + a->setIcon(icon); + auto *btn = qobject_cast(_toolBar->widgetForAction(a)); + if (btn) { + Q_FOREACH (auto ai, AccountManager::instance()->accounts()){ + if (a->text().contains(ai->account()->displayName())){ + btn->setFixedWidth(164); + } + } + + btn->setIcon(icon); + } + } +} +#else void SettingsDialog::customizeStyle() { QString highlightColor(palette().highlight().color().name()); @@ -344,6 +420,7 @@ void SettingsDialog::customizeStyle() btn->setIcon(icon); } } +#endif class ToolButtonAction : public QWidgetAction { @@ -368,10 +445,11 @@ class ToolButtonAction : public QWidgetAction QString objectName = QLatin1String("settingsdialog_toolbutton_"); objectName += text(); btn->setObjectName(objectName); - + btn->setFixedSize(158, 94); btn->setDefaultAction(this); btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - btn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); + + btn->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); return btn; } }; diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index b03e4c89c7933..dcd8940acdd8e 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -1324,9 +1324,11 @@ void SocketApi::command_GET_MENU_ITEMS(const QString &argument, OCC::SocketListe const QFileInfo fileInfo(fileData.localPath); sendLockFileInfoMenuEntries(fileInfo, syncFolder, fileData, listener, record); + #ifndef IONOS_BUILD if (!FileSystem::isDir(fileData.localPath)) { listener->sendMessage(QLatin1String("MENU_ITEM:ACTIVITY") + flagString + tr("Activity")); } + #endif DirectEditor* editor = getDirectEditorForLocalFile(fileData.localPath); if (editor) { diff --git a/src/gui/sslbutton.cpp b/src/gui/sslbutton.cpp index d1dcf96204120..7fb9ee5a7c55a 100644 --- a/src/gui/sslbutton.cpp +++ b/src/gui/sslbutton.cpp @@ -163,10 +163,10 @@ void SslButton::updateAccountState(AccountState *accountState) if (account->url().scheme() == QLatin1String("https")) { setIcon(QIcon(QLatin1String(":/client/theme/lock-https.svg"))); QSslCipher cipher = account->_sessionCipher; - setToolTip(tr("This connection is encrypted using %1 bit %2.\n").arg(cipher.usedBits()).arg(cipher.name())); + setToolTip(QString(tr("This connection is encrypted using %1 bit %2.") + "\n").arg(cipher.usedBits()).arg(cipher.name())); } else { setIcon(QIcon(QLatin1String(":/client/theme/lock-broken.svg"))); - setToolTip(tr("This connection is NOT secure as it is not encrypted.\n")); + setToolTip(tr("This connection is NOT secure as it is not encrypted.") + "\n"); } } diff --git a/src/gui/stratotheme.h b/src/gui/stratotheme.h new file mode 100644 index 0000000000000..e96ca822d2247 --- /dev/null +++ b/src/gui/stratotheme.h @@ -0,0 +1,170 @@ +#ifndef _STRATOTHEME_H +#define _STRATOTHEME_H + +#include +#include +#include "basetheme.h" +#include "theme.h" + +namespace OCC { + +class StratoTheme : public BaseTheme { +public: + StratoTheme() = default; + + QString additionalThemePrefix() const override { return QStringLiteral("strato/"); } + + QString dialogBackgroundColor() const override { + return "#F7F7F9"; + } + + QString trayFontColor() const override { + return "#2F2F70"; + } + + QString trayBorderColor() const override { + return "#8493B3"; + } + + QString trayInputFieldBorderColor() const override { + return "#8493B3"; + } + + QString trayBackgroundColor() const override { + return "#F7F7F9"; + } + + QString settingsLinkColor() const override { + return "#272CB2"; + } + + QString quotaProgressColor() const override { + return "#272CB2"; + } + + QString syncProgressColor() const override { + return "#009850"; + } + + QString buttonPrimaryColor() const override { + return "#272CB2"; + } + + QString buttonPrimaryHoverColor() const override { + return "#2944CC"; + } + + QString buttonPrimaryPressedColor() const override { + return "#272CB2"; + } + + QString buttonPrimaryFocusedBorderColor() const override { + return "#CDD5E3"; + } + + QString buttonSecondaryColor() const override { + return "#F7F7F9"; + } + + QString buttonSecondaryBorderColor() const override { + return "#CDD5E3"; + } + + QString buttonSecondaryHoverColor() const override { + return "#EDEEF3"; + } + + QString buttonSecondaryPressedColor() const override { + return "#D6D6E4"; + } + + QString buttonSecondaryFocusedBorderColor() const override { + return "#8493B3"; + } + + QString buttonDisabledColor() const override { + return "#EDEEF3"; + } + + QString pillButtonPrimaryColor() const override { + return "#272CB2"; + } + + QString pillButtonSecondaryColor() const override { + return "#E4E4ED"; + } + + QString pillButtonBorderColor() const override { + return "#FFFFFF"; + } + + QString clipboardBackgroundColor() const override { + return "#f7f7f9"; + } + + QString buttonIconColor() const override { + return "#2f2f70"; + } + + QString buttonIconHoverColor() const override { + return "#2f2f70"; + } + + QString buttonHoveredColor() const override { + return "#eeeff9"; + } + + QString buttonPressedColor() const override { + return "#D6D6E4"; + } + + QString toolButtonHoveredColor() const override { + return "#EDEEF3"; + } + + QString toolButtonPressedColor() const override { + return "#D6D6E4"; + } + + QString menuTextColor() const override { + return "#29294d"; + } + + QString menuSelectedItemColor() const override { + return "#D6D6E4"; + } + + QString menuPressedTextColor() const override { + return "#FFFFFF"; + } + + QString iconDarkColor() const override { + return "#2F2F70"; + } + + QString menuPressedItemColor() const override { + return "#5A6782"; + } + + QString errorColor() const override { + return "#FFE0ED"; + } + + QString errorBorderColor() const override { + return "#FF004C"; + } + + QString trayErrorBorderColor() const override { + return "#FF004C"; + } + + QString trayErrorTextColor() const override { + return "#CC0052"; + } + + QString sesHeaderLogoIcon() const override { + return QStringLiteral("qrc:///client/theme/ses/strato/ses-STRATO-logo.svg"); + } +}; +} +#endif // _STRATOTHEME_H \ No newline at end of file diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index 6def02ba21858..0fa0c0b7d93a1 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -7,6 +7,7 @@ #include "accountmanager.h" #include "systray.h" #include "theme.h" +#include "whitelabeltheme.h" #include "config.h" #include "common/utility.h" #include "tray/svgimageprovider.h" @@ -206,6 +207,12 @@ void Systray::setupContextMenu() resumeAction->setVisible(anyPaused); resumeAction->setEnabled(anyPaused); }); + + _contextMenu->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.menuTextColor())); } void Systray::destroyDialog(QQuickWindow *dialog) const diff --git a/src/gui/systray_mac_common.mm b/src/gui/systray_mac_common.mm index a6e7839886bc4..0c7d1a19682bd 100644 --- a/src/gui/systray_mac_common.mm +++ b/src/gui/systray_mac_common.mm @@ -9,7 +9,7 @@ #include "systray.h" -Q_LOGGING_CATEGORY(lcMacSystrayCommon, "nextcloud.gui.macsystraycommon") +Q_LOGGING_CATEGORY(lcMacSystrayCommon, "hidrivenext.gui.macsystraycommon") namespace OCC { diff --git a/src/gui/systray_mac_usernotifications.mm b/src/gui/systray_mac_usernotifications.mm index 76d6629c6d46b..311efd6ed5a01 100644 --- a/src/gui/systray_mac_usernotifications.mm +++ b/src/gui/systray_mac_usernotifications.mm @@ -17,7 +17,7 @@ #include "systray.h" #include "tray/talkreply.h" -Q_LOGGING_CATEGORY(lcMacSystrayUserNotifications, "nextcloud.gui.macsystrayusernotifications") +Q_LOGGING_CATEGORY(lcMacSystrayUserNotifications, "hidrivenext.gui.macsystrayusernotifications") /************************* Private utility functions *************************/ diff --git a/src/gui/tray/AccountMenuItem.qml b/src/gui/tray/AccountMenuItem.qml new file mode 100644 index 0000000000000..7be108628aa33 --- /dev/null +++ b/src/gui/tray/AccountMenuItem.qml @@ -0,0 +1,50 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 + +// Custom qml modules are in /theme (and included by resources.qrc) +import Style 1.0 +import com.ionos.hidrivenext.desktopclient + +MenuItem { + id: accountMenuItem + + property bool isHovered: accountMenuItem.hovered || accountMenuItem.visualFocus + property bool isActive: accountMenuItem.pressed + + font.pixelSize: Style.sesFontPixelSize + palette.text: Style.sesTrayFontColor + + hoverEnabled: true + leftPadding: Style.sesMediumMargin + topPadding: Style.sesAccountMenuItemPadding + bottomPadding: Style.sesAccountMenuItemPadding + spacing: Style.sesSmallMargin + + icon.height: Style.smallIconSize + icon.width: Style.smallIconSize + icon.color: Style.sesIconDarkColor + + Component.onCompleted: { + if (contentItem && contentItem.hasOwnProperty("color")) { + contentItem.color = accountMenuItem.palette.text + } + } + + + background: Item { + height: parent.height + width: parent.menu.width + Rectangle { + radius: 0 + anchors.fill: parent + anchors.margins: 1 + color: accountMenuItem.isActive ? Style.sesButtonPressed : accountMenuItem.isHovered ? Style.sesAccountMenuHover : "transparent" + } + } + + Accessible.role: Accessible.MenuItem + Accessible.name: text + Accessible.onPressAction: accountMenuItem.clicked() +} \ No newline at end of file diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml index 6af9ec3c16522..3b311a52e2224 100644 --- a/src/gui/tray/ActivityItem.qml +++ b/src/gui/tray/ActivityItem.qml @@ -8,11 +8,13 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient ItemDelegate { id: root + leftPadding: Style.sesActivityItemDistanceToFrame + rightPadding: Style.sesActivityItemDistanceToFrame property Flickable flickable property int iconSize: Style.trayListItemIconSize diff --git a/src/gui/tray/ActivityItemActions.qml b/src/gui/tray/ActivityItemActions.qml index 3997f9250f6e8..c12a06b6f9bbb 100644 --- a/src/gui/tray/ActivityItemActions.qml +++ b/src/gui/tray/ActivityItemActions.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient Repeater { id: root @@ -18,7 +18,7 @@ Repeater { property variant linksContextMenu: [] property bool displayActions: false - property color moreActionsButtonColor: palette.base + property color moreActionsButtonColor: "transparent" property int maxActionButtons: 0 @@ -31,7 +31,7 @@ Repeater { model: root.linksForActionButtons - Button { + PrimaryPillButton { id: activityActionButton property string verb: model.modelData.verb @@ -39,7 +39,7 @@ Repeater { Layout.alignment: Qt.AlignTop | Qt.AlignRight - hoverEnabled: true + hoverEnabled: false padding: Style.smallSpacing display: Button.TextOnly diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 2260ed8e6e296..2d694a3c83d2a 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -9,7 +9,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style import Qt5Compat.GraphicalEffects -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient RowLayout { id: root @@ -33,12 +33,12 @@ RowLayout { Item { id: thumbnailItem - readonly property int imageWidth: width * (1 - Style.thumbnailImageSizeReduction) - readonly property int imageHeight: height * (1 - Style.thumbnailImageSizeReduction) + readonly property int imageWidth: Style.sesIconSize + readonly property int imageHeight: Style.sesIconSize readonly property int thumbnailRadius: model.thumbnail && model.thumbnail.isUserAvatar ? width / 2 : 3 - implicitWidth: root.iconSize - implicitHeight: model.thumbnail && model.thumbnail.isMimeTypeIcon ? root.iconSize * 0.9 : root.iconSize + implicitWidth: Style.sesIconSize + implicitHeight: Style.sesIconSize Loader { id: thumbnailImageLoader @@ -52,8 +52,8 @@ RowLayout { Image { id: thumbnailImage - width: thumbnailItem.imageWidth - height: thumbnailItem.imageHeight + width: Style.sesIconSize + height: Style.sesIconSize anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left cache: true @@ -85,8 +85,9 @@ RowLayout { Image { id: activityIcon - width: model.thumbnail !== undefined ? parent.width * 0.4 : thumbnailItem.imageWidth - height: model.thumbnail !== undefined ? width : width * 0.9 + + width: model.thumbnail !== undefined ? Style.sesIconSize * 0.6 : Style.sesIconSize + height: model.thumbnail !== undefined ? Style.sesIconSize * 0.6 : Style.sesIconSize // Prevent bad access into unloaded item properties readonly property int thumbnailPaintedWidth: thumbnailImageLoader.item ? thumbnailImageLoader.item.paintedWidth : 0 @@ -123,8 +124,8 @@ RowLayout { Layout.fillHeight: true Layout.fillWidth: true - Layout.maximumWidth: root.width - Style.standardSpacing - root.iconSize - implicitWidth: root.width - Style.standardSpacing - root.iconSize + Layout.maximumWidth: root.width - Style.standardSpacing - root.iconSize + Style.sesActivityItemWidthModifier + implicitWidth: root.width - Style.standardSpacing - root.iconSize + Style.sesActivityItemWidthModifier spacing: Style.smallSpacing @@ -141,7 +142,7 @@ RowLayout { elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 - font.pixelSize: Style.topLinePixelSize + font: root.font visible: text !== "" color: root.adaptiveTextColor } @@ -158,7 +159,8 @@ RowLayout { height: (text === "") ? 0 : implicitHeight text: root.activityData.dateTime - font.pixelSize: Style.subLinePixelSize + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontHintPixelSize visible: text !== "" color: root.adaptiveTextColor } @@ -167,13 +169,21 @@ RowLayout { Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter spacing: Style.extraSmallSpacing - Button { - id: fileDetailsButton + IconButton { + id: fileDetailsButton + + property bool isHovered: fileDetailsButton.hovered || fileDetailsButton.visualFocus + property bool isActive: fileDetailsButton.pressed + + Layout.preferredWidth: Style.dismissButtonSize + Layout.preferredHeight: Style.dismissButtonSize + Layout.alignment: Qt.AlignTop | Qt.AlignRight width: Style.activityListButtonWidth height: Style.activityListButtonHeight - - icon.source: "image://svgimage-custom-color/more.svg/" + palette.buttonText + iconSource: Style.sesMore + iconSourceHovered: Style.sesMoreHover + icon.width: Style.activityListButtonIconSize icon.height: Style.activityListButtonIconSize @@ -183,14 +193,18 @@ RowLayout { visible: parent.hovered } - display: Button.IconOnly + leftPadding: 0 + rightPadding: 0 + visible: model.showFileDetails onClicked: Systray.presentShareViewInTray(model.openablePath) } - Button { + IconButton { id: dismissActionButton + customHoverEnabled: false + width: Style.activityListButtonWidth height: Style.activityListButtonHeight @@ -231,8 +245,9 @@ RowLayout { height: (text === "") ? 0 : implicitHeight elide: Text.ElideRight wrapMode: Text.Wrap - maximumLineCount: 2 - font.pixelSize: Style.subLinePixelSize + maximumLineCount: 10 + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontHintPixelSize visible: text !== "" color: root.adaptiveTextColor } @@ -253,7 +268,8 @@ RowLayout { elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 - font.pixelSize: Style.topLinePixelSize + font: root.font + color: Style.sesTrayFontColor visible: text !== "" color: root.adaptiveTextColor } diff --git a/src/gui/tray/ActivityList.qml b/src/gui/tray/ActivityList.qml index e2e43c3492707..3b62c5382d56c 100644 --- a/src/gui/tray/ActivityList.qml +++ b/src/gui/tray/ActivityList.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import Style -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient as NC ScrollView { id: controlRoot @@ -25,6 +25,10 @@ ScrollView { scrollingToTop = true } + background: Rectangle { + color: Style.sesBackgroundColor + } + signal openFile(string filePath) signal activityItemClicked(int index) @@ -77,7 +81,7 @@ ScrollView { highlight: Rectangle { id: activityHover anchors.fill: activityList.currentItem - color: palette.highlight + color: Style.sesHover radius: Style.mediumRoundedButtonRadius visible: activityList.activeFocus } @@ -94,7 +98,11 @@ ScrollView { } delegate: ActivityItem { - background: null + + background: Rectangle { + color: Style.sesBackgroundColor + } + width: activityList.contentItem.width isFileActivityList: controlRoot.isFileActivityList @@ -160,13 +168,15 @@ ScrollView { verticalAlignment: Image.AlignVCenter horizontalAlignment: Image.AlignHCenter fillMode: Image.PreserveAspectFit - source: "image://svgimage-custom-color/activity.svg/" + palette.windowText + source: Style.sesActivity + sourceSize.height: 32 + sourceSize.width: 22 } EnforcedPlainTextLabel { width: parent.width text: qsTr("No activities yet") - font.bold: true + color: Style.sesTrayFontColor wrapMode: Text.Wrap horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter diff --git a/src/gui/tray/CallNotificationDialog.qml b/src/gui/tray/CallNotificationDialog.qml index 208bc28b6b6dd..e8753b5dd3353 100644 --- a/src/gui/tray/CallNotificationDialog.qml +++ b/src/gui/tray/CallNotificationDialog.qml @@ -6,7 +6,7 @@ import QtQuick import QtQuick.Window import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import QtQuick.Layouts import QtMultimedia import QtQuick.Controls diff --git a/src/gui/tray/CurrentAccountHeaderButton.qml b/src/gui/tray/CurrentAccountHeaderButton.qml index 322dbaf0d1c2f..13e08d6135dc9 100644 --- a/src/gui/tray/CurrentAccountHeaderButton.qml +++ b/src/gui/tray/CurrentAccountHeaderButton.qml @@ -11,8 +11,8 @@ import "../" import "../filedetails/" import Style -import com.nextcloud.desktopclient -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient +// TODO SES-459 Button { id: root diff --git a/src/gui/tray/EditFileLocallyLoadingDialog.qml b/src/gui/tray/EditFileLocallyLoadingDialog.qml index 2e4a37e767f0b..f84eba40a9292 100644 --- a/src/gui/tray/EditFileLocallyLoadingDialog.qml +++ b/src/gui/tray/EditFileLocallyLoadingDialog.qml @@ -6,7 +6,7 @@ import QtQuick import QtQuick.Window import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient import QtQuick.Layouts import QtQuick.Controls diff --git a/src/gui/tray/EncryptionTokenDiscoveryDialog.qml b/src/gui/tray/EncryptionTokenDiscoveryDialog.qml index 9213c9da767d3..e2e67529b24f6 100644 --- a/src/gui/tray/EncryptionTokenDiscoveryDialog.qml +++ b/src/gui/tray/EncryptionTokenDiscoveryDialog.qml @@ -6,7 +6,7 @@ import QtQuick 2.15 import QtQuick.Window 2.15 import Style 1.0 -import com.nextcloud.desktopclient 1.0 +import com.ionos.hidrivenext.desktopclient 1.0 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 diff --git a/src/gui/tray/EnforcedPlainTextLabel.qml b/src/gui/tray/EnforcedPlainTextLabel.qml index f986589de1f73..dcf7326781f2c 100644 --- a/src/gui/tray/EnforcedPlainTextLabel.qml +++ b/src/gui/tray/EnforcedPlainTextLabel.qml @@ -13,7 +13,6 @@ Label { textFormat = Text.PlainText; } } - textFormat: Text.PlainText onTextFormatChanged: resetToPlainText() Component.onCompleted: resetToPlainText() diff --git a/src/gui/tray/HeaderButton.qml b/src/gui/tray/HeaderButton.qml index da920f5f3f088..6a9e4078e6b46 100644 --- a/src/gui/tray/HeaderButton.qml +++ b/src/gui/tray/HeaderButton.qml @@ -12,12 +12,12 @@ import QtQuick.Layouts // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient Button { id: root - display: AbstractButton.IconOnly + display: AbstractButton.TextUnderIcon flat: true hoverEnabled: Style.hoverEffectsEnabled @@ -33,6 +33,51 @@ Button { } Layout.alignment: Qt.AlignRight - Layout.preferredWidth: Style.trayWindowHeaderHeight - Layout.preferredHeight: Style.trayWindowHeaderHeight + Layout.preferredWidth: Style.sesHeaderButtonWidth + Layout.preferredHeight: Style.sesHeaderButtonHeight + + property bool isHovered: root.hovered || root.visualFocus + property bool isActive: root.pressed + + background: Rectangle { + width: Style.sesHeaderButtonWidth + height: Style.sesHeaderButtonHeight + color: root.isActive ? Style.sesButtonPressed : root.isHovered ? Style.sesAccountMenuHover : "transparent" + radius: Style.sesCornerRadius + } + + contentItem: Item { + id: rootContent + + Image { + id: buttonIcon + anchors.horizontalCenter: rootContent.horizontalCenter + anchors.top: rootContent.top + anchors.topMargin: 10 + + property int imageWidth: root.icon.width + property int imageHeight: root.icon.height + cache: true + + source: root.icon.source + sourceSize { + width: imageWidth + height: imageHeight + } + + width: imageWidth + height: imageHeight + + anchors.verticalCenter: parent + } + + Text { + anchors.horizontalCenter: buttonIcon.horizontalCenter + anchors.top: buttonIcon.bottom + anchors.topMargin: 5 + font: root.font + text: root.text + color: Style.sesTrayFontColor + } + } } diff --git a/src/gui/tray/HeaderLogo.qml b/src/gui/tray/HeaderLogo.qml new file mode 100644 index 0000000000000..918d14b342ecc --- /dev/null +++ b/src/gui/tray/HeaderLogo.qml @@ -0,0 +1,32 @@ +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform as NativeDialogs + + +// Custom qml modules are in /theme (and included by resources.qrc) +import Style + +import com.ionos.hidrivenext.desktopclient + +Rectangle { + Image{ + id: trayWindowLogo + cache: false + source: Style.sesHeaderLogoIcon + sourceSize: Qt.size(width, height) + fillMode: Image.PreserveAspectFit + anchors{ + top: parent.top + left: parent.left + bottom: parent.bottom + topMargin: Style.sesHeaderLogoTopMargin + leftMargin: Style.sesHeaderLogoTopMargin + bottomMargin: Style.sesHeaderLogoTopMargin + + } + } + + color: Style.sesSelectedColor +} \ No newline at end of file diff --git a/src/gui/tray/IconButton.qml b/src/gui/tray/IconButton.qml new file mode 100644 index 0000000000000..95d84055f40bc --- /dev/null +++ b/src/gui/tray/IconButton.qml @@ -0,0 +1,53 @@ +import QtQuick +import QtQuick.Controls +import com.ionos.hidrivenext.desktopclient + +import Style + +Button{ + id: root + property string iconSource + property string iconSourceHovered + + property bool isMouseOver: false + property bool isActive: root.pressed + property bool customHoverEnabled: true + property string toolTipText + + hoverEnabled: false // turn off default button hover + + Image { + id: icon + visible: true + source: root.isMouseOver ? root.iconSourceHovered : root.iconSource + anchors.centerIn: parent + fillMode: Image.PreserveAspectFit + width: Style.sesPillIconSize + height: Style.sesPillIconSize + } + + ToolTip { + text: root.toolTipText + visible: root.toolTipText && root.isMouseOver + } + + background: Rectangle { + anchors.centerIn: parent + color: root.isMouseOver ? root.pressed ? Style.sesActionPressed : Style.sesActionHover : "transparent" + opacity: 1.0 + radius: height / 2 + width: 24 + height: 24 + + Behavior on color { + ColorAnimation { duration: Style.shortAnimationDuration } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: root.customHoverEnabled + onExited: root.isMouseOver = false + onEntered: root.isMouseOver = true + } + } +} \ No newline at end of file diff --git a/src/gui/tray/MainWindow.qml b/src/gui/tray/MainWindow.qml index b2c954f4340ee..4879e6c9439c1 100644 --- a/src/gui/tray/MainWindow.qml +++ b/src/gui/tray/MainWindow.qml @@ -12,12 +12,14 @@ import Qt5Compat.GraphicalEffects import Qt.labs.platform as NativeDialogs import "../" +import "../tray" import "../filedetails/" +import "../SesComponents/" // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient ApplicationWindow { id: trayWindow @@ -27,10 +29,36 @@ ApplicationWindow { title: Systray.windowTitle // If the main dialog is displayed as a regular window we want it to be quadratic - width: Systray.useNormalWindow ? Style.trayWindowHeight : Style.trayWindowWidth + width: Systray.useNormalWindow ? Style.trayWindowHeight : Style.sesTrayWindowWidth height: Style.trayWindowHeight + color: "transparent" flags: Systray.useNormalWindow ? Qt.Window : Qt.Dialog | Qt.FramelessWindowHint - color: "transparent" + + font.family: Style.sesOpenSansRegular + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontBoldWeight + palette.base: Style.sesBackgroundColor + palette.windowText: Style.sesTrayFontColor + + // TODO: Rather than setting all these palette colours manually, + // create a custom style and do it for all components globally + // palette { + // text: Style.ncTextColor + // windowText: Style.ncTextColor + // buttonText: Style.ncTextColor + // brightText: Style.ncTextBrightColor + // highlight: Style.lightHover + // highlightedText: Style.ncTextColor + // light: Style.lightHover + // midlight: Style.ncSecondaryTextColor + // mid: Style.darkerHover + // dark: Style.menuBorder + // button: Style.buttonBackgroundColor + // window: Style.backgroundColor + // base: Style.backgroundColor + // toolTipBase: Style.backgroundColor + // toolTipText: Style.ncTextColor + // } readonly property int maxMenuHeight: Style.trayWindowHeight - Style.trayWindowHeaderHeight - 2 * Style.trayWindowBorderWidth @@ -46,25 +74,19 @@ ApplicationWindow { onClosing: Systray.isOpen = false - onVisibleChanged: { - // HACK: reload account Instantiator immediately by restting it - could be done better I guess - // see also id:trayWindowHeader.currentAccountHeaderButton.accountMenu below - trayWindowHeader.currentAccountHeaderButton.userLineInstantiator.active = false; - trayWindowHeader.currentAccountHeaderButton.userLineInstantiator.active = true; - syncStatus.model.load(); - } + onVisibleChanged: syncStatus.model.load() background: Rectangle { - radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius + radius: 0.0 border.width: Style.trayWindowBorderWidth border.color: palette.dark - color: palette.window + color: Style.sesBackgroundColor } Connections { target: UserModel function onCurrentUserChanged() { - trayWindowHeader.currentAccountHeaderButton.accountMenu.close(); + trayWindowHeaderBackground.currentAccountHeaderButton.accountMenu.close(); syncStatus.model.load(); } } @@ -90,9 +112,9 @@ ApplicationWindow { fileDetailsDrawer.close(); if (Systray.isOpen) { - trayWindowHeader.currentAccountHeaderButton.accountMenu.close(); - trayWindowHeader.appsMenu.close(); - trayWindowHeader.openLocalFolderButton.closeMenu() + trayWindowHeaderBackground.currentAccountHeaderButton.accountMenu.close(); + trayWindowHeaderBackground.appsMenu.close(); + trayWindowHeaderBackground.openLocalFolderButton.closeMenu() } } @@ -117,7 +139,7 @@ ApplicationWindow { maskSource: Rectangle { width: trayWindow.width height: trayWindow.height - radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius + radius: 0.0 } } @@ -180,7 +202,7 @@ ApplicationWindow { radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius border.width: Style.trayWindowBorderWidth border.color: palette.dark - color: Style.colorWithoutTransparency(palette.base) + color: palette.base } property var folderAccountState: ({}) @@ -215,7 +237,7 @@ ApplicationWindow { height: parent.height backgroundsVisible: false - accentColor: Style.accentColor + accentColor: Style.currentUserHeaderColor accountState: fileDetailsDrawer.folderAccountState localPath: fileDetailsDrawer.fileLocalPath showCloseButton: true @@ -239,7 +261,8 @@ ApplicationWindow { clip: true radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius - color: Style.colorWithoutTransparency(palette.base) + palette: trayWindow.palette + color: palette.base Accessible.role: Accessible.Grouping Accessible.name: qsTr("Main content") @@ -248,14 +271,26 @@ ApplicationWindow { anchors.fill: parent onClicked: forceActiveFocus() } - - TrayWindowHeader { - id: trayWindowHeader - - anchors.top: parent.top + + HeaderLogo { + id: trayWindowLogoHeaderBackground + height: Style.sesHeaderLogoHeigth + width: parent.width + } + + SesTrayHeader { + id: trayWindowHeaderBackground + anchors.left: trayWindowLogoHeaderBackground.left + anchors.right: trayWindowLogoHeaderBackground.right + anchors.top: trayWindowLogoHeaderBackground.bottom + } + + Rectangle { anchors.left: parent.left anchors.right: parent.right - height: Style.trayWindowHeaderHeight + anchors.top: trayWindowHeaderBackground.bottom + implicitHeight: 1 + color: Style.sesBorderColor } UnifiedSearchInputContainer { @@ -263,12 +298,18 @@ ApplicationWindow { property bool activateSearchFocus: activeFocus - anchors.top: trayWindowHeader.bottom - anchors.left: trayWindowMainItem.left - anchors.right: trayWindowMainItem.right - anchors.topMargin: Style.trayHorizontalMargin - anchors.leftMargin: Style.trayHorizontalMargin - anchors.rightMargin: Style.trayHorizontalMargin + height: 0 + visible: false //SES-4 removed + + anchors { + top: trayWindowHeaderBackground.bottom + left: trayWindowMainItem.left + right: trayWindowMainItem.right + + topMargin: Style.trayHorizontalMargin + controlRoot.padding + leftMargin: Style.trayHorizontalMargin + controlRoot.padding + rightMargin: Style.trayHorizontalMargin + controlRoot.padding + } text: UserModel.currentUser.unifiedSearchResultsListModel.searchTerm readOnly: !UserModel.currentUser.isConnected || UserModel.currentUser.unifiedSearchResultsListModel.currentFetchMoreInProgressProviderId @@ -279,45 +320,23 @@ ApplicationWindow { Keys.onEscapePressed: activateSearchFocus = false } - Rectangle { - id: bottomUnifiedSearchInputSeparator - - anchors.top: trayWindowUnifiedSearchInputContainer.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.topMargin: Style.trayHorizontalMargin - - height: 1 - color: palette.dark - visible: trayWindowMainItem.isUnifiedSearchActive - } - - ErrorBox { - id: unifiedSearchResultsErrorLabel - visible: UserModel.currentUser.unifiedSearchResultsListModel.errorString && !unifiedSearchResultsListView.visible && ! UserModel.currentUser.unifiedSearchResultsListModel.isSearchInProgress && ! UserModel.currentUser.unifiedSearchResultsListModel.currentFetchMoreInProgressProviderId - text: UserModel.currentUser.unifiedSearchResultsListModel.errorString - anchors.top: bottomUnifiedSearchInputSeparator.bottom - anchors.left: trayWindowMainItem.left - anchors.right: trayWindowMainItem.right - anchors.margins: Style.trayHorizontalMargin - } - - UnifiedSearchPlaceholderView { - id: unifiedSearchPlaceholderView - - anchors.top: bottomUnifiedSearchInputSeparator.bottom - anchors.left: trayWindowMainItem.left - anchors.right: trayWindowMainItem.right - anchors.bottom: trayWindowMainItem.bottom - anchors.topMargin: Style.trayHorizontalMargin - - visible: trayWindowUnifiedSearchInputContainer.activateSearchFocus && !UserModel.currentUser.unifiedSearchResultsListModel.searchTerm - } + SesErrorBox { + id: unifiedSearchResultsErrorLabel + visible: UserModel.currentUser.unifiedSearchResultsListModel.errorString && + !unifiedSearchResultsListView.visible && + !UserModel.currentUser.unifiedSearchResultsListModel.isSearchInProgress && + !UserModel.currentUser.unifiedSearchResultsListModel.currentFetchMoreInProgressProviderId + text: UserModel.currentUser.unifiedSearchResultsListModel.errorString + anchors.top: trayWindowUnifiedSearchInputContainer.bottom + anchors.left: trayWindowMainItem.left + anchors.right: trayWindowMainItem.right + anchors.margins: Style.trayHorizontalMargin + } UnifiedSearchResultNothingFound { id: unifiedSearchResultNothingFound - anchors.top: bottomUnifiedSearchInputSeparator.bottom + anchors.top: trayWindowUnifiedSearchInputContainer.bottom anchors.left: trayWindowMainItem.left anchors.right: trayWindowMainItem.right anchors.topMargin: Style.trayHorizontalMargin @@ -335,7 +354,7 @@ ApplicationWindow { Loader { id: unifiedSearchResultsListViewSkeletonLoader - anchors.top: bottomUnifiedSearchInputSeparator.bottom + anchors.top: trayWindowUnifiedSearchInputContainer.bottom anchors.left: trayWindowMainItem.left anchors.right: trayWindowMainItem.right anchors.bottom: trayWindowMainItem.bottom @@ -364,7 +383,7 @@ ApplicationWindow { } visible: unifiedSearchResultsListView.count > 0 - anchors.top: bottomUnifiedSearchInputSeparator.bottom + anchors.top: trayWindowUnifiedSearchInputContainer.bottom anchors.left: trayWindowMainItem.left anchors.right: trayWindowMainItem.right anchors.bottom: trayWindowMainItem.bottom @@ -404,7 +423,6 @@ ApplicationWindow { SyncStatus { id: syncStatus - accentColor: Style.accentColor visible: !trayWindowMainItem.isUnifiedSearchActive anchors.top: trayWindowUnifiedSearchInputContainer.bottom @@ -419,7 +437,7 @@ ApplicationWindow { anchors.bottom: syncStatus.bottom height: 1 color: palette.dark - visible: !trayWindowMainItem.isUnifiedSearchActive + visible: !trayWindowMainItem.isUnifiedSearchActive & false } Loader { @@ -441,6 +459,13 @@ ApplicationWindow { hoverEnabled: true padding: Style.smallSpacing + // textColor: Style.currentUserHeaderTextColor + // textColorHovered: Style.currentUserHeaderTextColor + // bgNormalColor: Qt.lighter(bgHoverColor, 1.25) + // bgHoverColor: Style.currentUserHeaderColor + // bgNormalOpacity: Style.newActivitiesBgNormalOpacity + // bgHoverOpacity: Style.newActivitiesBgHoverOpacity + anchors.fill: parent text: qsTr("New activities") diff --git a/src/gui/tray/NCBusyIndicator.qml b/src/gui/tray/NCBusyIndicator.qml index 6252eaaa7d132..f9c5c4b1a675a 100644 --- a/src/gui/tray/NCBusyIndicator.qml +++ b/src/gui/tray/NCBusyIndicator.qml @@ -13,9 +13,6 @@ BusyIndicator { property color color: palette.windowText property string imageSource: "image://svgimage-custom-color/change.svg/" - property int imageSourceSizeWidth: 64 - property int imageSourceSizeHeight: 64 - contentItem: Image { id: contentImage @@ -25,9 +22,8 @@ BusyIndicator { verticalAlignment: Image.AlignVCenter source: colourableImage ? root.imageSource + root.color : root.imageSource - sourceSize.width: root.imageSourceSizeWidth - sourceSize.height: root.imageSourceSizeHeight - fillMode: Image.PreserveAspectFit + width: Style.sesIconSize + height: Style.sesIconSize mipmap: true diff --git a/src/gui/tray/PrimaryPillButton.qml b/src/gui/tray/PrimaryPillButton.qml new file mode 100644 index 0000000000000..178d4be1e88f8 --- /dev/null +++ b/src/gui/tray/PrimaryPillButton.qml @@ -0,0 +1,53 @@ +import QtQuick +import QtQuick.Controls +import com.ionos.hidrivenext.desktopclient + +import Style + +Button{ + id: root + property string iconSource + + property bool isMouseOver: false + + hoverEnabled: false // turn off default button hover + + contentItem: Row { + spacing: Style.sesPillButtonVerticalPadding + padding: Style.sesPillButtonVerticalPadding + leftPadding: Style.sesPillButtonHorizontalPadding + rightPadding: Style.sesPillButtonHorizontalPadding + anchors.centerIn: parent + Text { + text: root.text + color: "white" + font.weight: Style.sesFontNormalWeight + font.pixelSize: Style.sesFontHintPixelSize + } + Image { + visible: root.iconSource + source: root.iconSource + width: Style.sesPillIconSize + height: Style.sesPillIconSize + } + } + + background: Rectangle { + color: Style.sesPillButtonPrimaryBackgroundColor + opacity: root.isMouseOver ? Style.sesPillButtonHoverOpacity : 1.0 + border.width: 2 + border.color: Style.sesPillButtonBorderColor + radius: height / 2 + + Behavior on opacity { + NumberAnimation { duration: Style.shortAnimationDuration } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onExited: root.isMouseOver = false + onEntered: root.isMouseOver = true + } + } +} \ No newline at end of file diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml new file mode 100644 index 0000000000000..e9b9e89019a1f --- /dev/null +++ b/src/gui/tray/SecondaryPillButton.qml @@ -0,0 +1,62 @@ +import QtQuick +import QtQuick.Controls +import com.ionos.hidrivenext.desktopclient + +import Style + +Button{ + id: root + hoverEnabled: false // turn off default button hover + + property string iconSource + property string toolTipText + + property bool isMouseOver: false + property bool removeBorder: false + property color textColor: "black" + property color backgroundColor: Style.sesPillButtonSecondaryBackgroundColor + + contentItem: Row { + spacing: Style.sesPillButtonVerticalPadding + padding: Style.sesPillButtonVerticalPadding + leftPadding: Style.sesPillButtonHorizontalPadding + rightPadding: Style.sesPillButtonHorizontalPadding + anchors.centerIn: parent + Text { + text: root.text + color: textColor + font.weight: Style.sesFontNormalWeight + font.pixelSize: Style.sesFontHintPixelSize + } + Image { + visible: root.iconSource + source: root.iconSource + width: Style.sesPillIconSize + height: Style.sesPillIconSize + } + } + + background: Rectangle { + color: backgroundColor + opacity: root.isMouseOver ? Style.sesPillButtonHoverOpacity : 1.0 + border.width: root.removeBorder ? 0 : 2 + border.color: Style.sesPillButtonBorderColor + radius: height / 2 + + Behavior on opacity { + NumberAnimation { duration: Style.shortAnimationDuration } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onExited: root.isMouseOver = false + onEntered: root.isMouseOver = true + } + } + + ToolTip { + text: root.toolTipText + visible: root.toolTipText && root.isMouseOver + } +} \ No newline at end of file diff --git a/src/gui/tray/SyncStatus.qml b/src/gui/tray/SyncStatus.qml index dacd84f1f4381..98076662b6860 100644 --- a/src/gui/tray/SyncStatus.qml +++ b/src/gui/tray/SyncStatus.qml @@ -9,34 +9,30 @@ import QtQuick.Layouts import Style -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient as NC RowLayout { id: root property alias model: syncStatus - property color accentColor: Style.ncBlue spacing: Style.trayHorizontalMargin - NC.SyncStatusSummary { - id: syncStatus + Rectangle{ + color: Style.sesBackgroundColor + + NC.SyncStatusSummary { + id: syncStatus + } } NCBusyIndicator { id: syncIcon - property int size: Style.trayListItemIconSize * 0.6 - property int whiteSpace: (Style.trayListItemIconSize - size) - - Layout.preferredWidth: size - Layout.preferredHeight: size - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - Layout.topMargin: Style.trayHorizontalMargin - Layout.rightMargin: whiteSpace * (0.5 + Style.thumbnailImageSizeReduction) - Layout.bottomMargin: Style.trayHorizontalMargin - Layout.leftMargin: Style.trayHorizontalMargin + (whiteSpace * (0.5 - Style.thumbnailImageSizeReduction)) - + Layout.topMargin: 16 + Layout.rightMargin: 0 + Layout.bottomMargin: 16 + Layout.leftMargin: Style.sesActivityItemDistanceToFrame padding: 0 imageSource: syncStatus.syncIcon @@ -46,10 +42,11 @@ RowLayout { ColumnLayout { id: syncProgressLayout - Layout.alignment: Qt.AlignVCenter + Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.topMargin: 8 - Layout.rightMargin: Style.trayHorizontalMargin + Layout.rightMargin: Style.sesActivityItemDistanceToFrame Layout.bottomMargin: 8 + Layout.leftMargin: 0 Layout.fillWidth: true Layout.fillHeight: true @@ -60,8 +57,7 @@ RowLayout { text: syncStatus.syncStatusString verticalAlignment: Text.AlignVCenter - font.pixelSize: Style.topLinePixelSize - font.bold: true + font: root.font wrapMode: Text.Wrap } @@ -75,7 +71,6 @@ RowLayout { sourceComponent: NCProgressBar { id: syncProgressBar value: syncStatus.syncProgress - fillColor: root.accentColor } } @@ -86,24 +81,19 @@ RowLayout { text: syncStatus.syncStatusDetailString visible: syncStatus.syncStatusDetailString !== "" - font.pixelSize: Style.subLinePixelSize + font: root.font wrapMode: Text.Wrap } } - Button { + PrimaryPillButton { id: syncNowButton Layout.rightMargin: Style.trayHorizontalMargin text: qsTr("Sync now") - padding: Style.smallSpacing - - visible: !activityModel.hasSyncConflicts && - !syncStatus.syncing && - NC.UserModel.currentUser.hasLocalFolder && - NC.UserModel.currentUser.isConnected + visible: false // SES-4 removed enabled: visible onClicked: { if(!syncStatus.syncing) { @@ -112,11 +102,14 @@ RowLayout { } } - Button { + PrimaryPillButton { Layout.rightMargin: Style.trayHorizontalMargin - text: qsTr("Resolve conflicts") + font.pixelSize: pixelSize + font.weight: fontWeight + text: qsTr("Resolve conflicts") + visible: activityModel.hasSyncConflicts && !syncStatus.syncing && NC.UserModel.currentUser.hasLocalFolder && diff --git a/src/gui/tray/TalkReplyTextField.qml b/src/gui/tray/TalkReplyTextField.qml index 28e3883633957..0a1b74f25d69b 100644 --- a/src/gui/tray/TalkReplyTextField.qml +++ b/src/gui/tray/TalkReplyTextField.qml @@ -7,8 +7,8 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import com.nextcloud.desktopclient import Style +import com.ionos.hidrivenext.desktopclient TextField { id: replyMessageTextField diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index 1347b4e8668a4..e3428a4708ce3 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -20,6 +20,11 @@ HeaderButton { property bool userHasGroupFolders: currentUser.groupFolders.length > 0 property color parentBackgroundColor: "transparent" + icon.source: Style.sesFolderIcon + icon.color: Style.sesIconColor + + text: qsTr("Files") + function openMenu() { foldersMenuLoader.openMenu() } @@ -59,27 +64,21 @@ HeaderButton { } - Item { + contentItem: Item { id: rootContent - anchors.fill: parent - - Item { - id: contentContainer - anchors.centerIn: parent - - implicitWidth: openLocalFolderButtonCaretIconLoader.active ? openLocalFolderButtonIcon.width + openLocalFolderButtonCaretIconLoader.width : openLocalFolderButtonIcon.width - implicitHeight: openLocalFolderButtonIcon.height - Image { id: openLocalFolderButtonIcon - property int imageWidth: rootContent.width * Style.trayFoldersMenuButtonMainIconSizeFraction - property int imageHeight: rootContent.width * Style.trayFoldersMenuButtonMainIconSizeFraction + anchors.horizontalCenter: rootContent.horizontalCenter + anchors.top: rootContent.top + anchors.topMargin: 10 + property int imageWidth: root.icon.width + property int imageHeight: root.icon.height cache: true - source: "image://svgimage-custom-color/folder.svg/" + palette.windowText + source: root.icon.source sourceSize { width: imageWidth height: imageHeight @@ -88,9 +87,17 @@ HeaderButton { width: imageWidth height: imageHeight - anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenter: parent } + Text { + anchors.horizontalCenter: openLocalFolderButtonIcon.horizontalCenter + anchors.top: openLocalFolderButtonIcon.bottom + anchors.topMargin: 5 + text: root.text + font: root.font + color: Style.sesTrayFontColor + } Loader { id: openLocalFolderButtonCaretIconLoader @@ -118,9 +125,7 @@ HeaderButton { width: openLocalFolderButtonCaretIconLoader.imageWidth height: openLocalFolderButtonCaretIconLoader.imageHeight - } - } } Loader { diff --git a/src/gui/tray/TrayWindowAccountMenu.qml b/src/gui/tray/TrayWindowAccountMenu.qml new file mode 100644 index 0000000000000..b1627fceac56b --- /dev/null +++ b/src/gui/tray/TrayWindowAccountMenu.qml @@ -0,0 +1,286 @@ +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Layouts +import Qt.labs.platform as NativeDialogs + +import "../" +import "../filedetails/" + +// Custom qml modules are in /theme (and included by resources.qrc) +import Style + +import com.ionos.hidrivenext.desktopclient + +Button { + id: currentAccountButton + + display: AbstractButton.IconOnly + flat: true + + Accessible.role: Accessible.ButtonMenu + Accessible.name: qsTr("Current account") + Accessible.onPressAction: currentAccountButton.clicked() + + property bool isHovered: currentAccountButton.hovered || currentAccountButton.visualFocus + property bool isActive: currentAccountButton.pressed + + background: Rectangle { + color: currentAccountButton.isActive ? Style.sesButtonPressed : + currentAccountButton.isHovered ? Style.sesAccountMenuHover : + accountMenu.visible ? Style.sesSelectedColor : "transparent" + radius: Style.sesCornerRadius + } + + // We call open() instead of popup() because we want to position it + // exactly below the dropdown button, not the mouse + onClicked: { + syncPauseButton.text = Systray.syncIsPaused ? qsTr("Resume sync for all") : qsTr("Pause sync for all") + if (accountMenu.visible) { + accountMenu.close() + } else { + accountMenu.open() + } + } + + onVisibleChanged: { + // HACK: reload account Instantiator immediately by restting it - could be done better I guess + // see also id:accountMenu below + userLineInstantiator.active = false; + userLineInstantiator.active = true; + } + + Menu { + id: accountMenu + + bottomInset: 0 + topInset: 0 + rightInset: 0 + leftInset: 0 + rightPadding: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + // x coordinate grows towards the right + // y coordinate grows towards the bottom + x: (currentAccountButton.x + 2) + y: (currentAccountButton.y + Style.trayWindowHeaderHeight + 2) + + width: Style.sesAccountMenuWidth + height: Math.min(implicitHeight, maxMenuHeight) + closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape + + clip: true + + background: Rectangle { + border.color: Style.sesBorderColor + color: Style.sesBackgroundColor + radius: Style.sesCornerRadius + } + + contentItem: ScrollView { + id: accMenuScrollView + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + + data: WheelHandler { + target: accMenuScrollView.contentItem + } + ListView { + implicitHeight: contentHeight + model: accountMenu.contentModel + interactive: true + clip: true + currentIndex: accountMenu.currentIndex + } + } + + onClosed: { + // HACK: reload account Instantiator immediately by restting it - could be done better I guess + // see also onVisibleChanged above + userLineInstantiator.active = false; + userLineInstantiator.active = true; + } + + Instantiator { + id: userLineInstantiator + model: UserModel + delegate: UserLine { + onShowUserStatusSelector: { + userStatusDrawer.openUserStatusDrawer(model.index); + accountMenu.close(); + } + onClicked: UserModel.currentUserId = model.index; + } + onObjectAdded: accountMenu.insertItem(index, object) + onObjectRemoved: accountMenu.removeItem(object) + } + + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + implicitHeight: 1 + color: Style.sesBorderColor + } + + AccountMenuItem{ + id: addAccountButton + icon.source: Style.sesDarkPlus + text: qsTr("Add account") + onClicked: UserModel.addAccount() + visible: Systray.enableAddAccount + } + + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + implicitHeight: 1 + color: Style.sesBorderColor + } + + AccountMenuItem{ + id: syncPauseButton + onClicked: Systray.syncIsPaused = !Systray.syncIsPaused + icon.source: Systray.syncIsPaused ? Style.sesAccountResume : Style.sesAccountPause + } + + AccountMenuItem{ + id: settingsButton + text: qsTr("Settings") + onClicked: Systray.openSettings() + icon.source: Style.sesAccountSettings + } + + AccountMenuItem{ + id: exitButton + text: qsTr("Exit") + onClicked: Systray.shutdown() + icon.source: Style.sesAccountQuit + } + } + + RowLayout { + id: accountControlRowLayout + + height: Style.sesAccountButtonHeight + width: Style.sesAccountButtonWidth + spacing: 0 + + Image { + id: currentAccountAvatar + + Layout.leftMargin: Style.sesAccountButtonLeftMargin + verticalAlignment: Qt.AlignCenter + cache: false + source: Style.sesAvatar + Accessible.role: Accessible.Graphic + Accessible.name: qsTr("Current account avatar") + + Rectangle { + id: currentAccountStatusIndicatorBackground + // SES-50 Remove Inidcator + // visible: UserModel.currentUser.isConnected + // && UserModel.currentUser.serverHasUserStatus + visible: false + width: Style.accountAvatarStateIndicatorSize + + Style.trayFolderStatusIndicatorSizeOffset + height: width + anchors.bottom: currentAccountAvatar.bottom + anchors.right: currentAccountAvatar.right + anchors.bottomMargin: -5 + anchors.rightMargin: -5 + color: Style.currentUserHeaderColor + radius: width * Style.trayFolderStatusIndicatorRadiusFactor + } + + Rectangle { + id: currentAccountStatusIndicatorMouseHover + // SES-50 Remove Inidcator + // visible: UserModel.currentUser.isConnected + // && UserModel.currentUser.serverHasUserStatus + visible: false + width: Style.accountAvatarStateIndicatorSize + + Style.trayFolderStatusIndicatorSizeOffset + height: width + anchors.bottom: currentAccountAvatar.bottom + anchors.right: currentAccountAvatar.right + anchors.bottomMargin: -5 + anchors.rightMargin: -5 + color: currentAccountButton.hovered ? Style.sesHover : "transparent" + opacity: Style.trayFolderStatusIndicatorMouseHoverOpacityFactor + radius: width * Style.trayFolderStatusIndicatorRadiusFactor + } + + Image { + id: currentAccountStatusIndicator + // SES-50 Remove Inidcator + // visible: UserModel.currentUser.isConnected + // && UserModel.currentUser.serverHasUserStatus + visible: false + source: UserModel.currentUser.statusIcon + cache: false + x: currentAccountStatusIndicatorBackground.x + 1 + y: currentAccountStatusIndicatorBackground.y + 1 + sourceSize.width: Style.accountAvatarStateIndicatorSize + sourceSize.height: Style.accountAvatarStateIndicatorSize + + Accessible.role: Accessible.Indicator + Accessible.name: UserModel.desktopNotificationsAllowed ? qsTr("Current account status is online") : qsTr("Current account status is do not disturb") + } + } + + Column { + id: accountLabels + spacing: 0 + Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + Layout.leftMargin: Style.sesSmallMargin + Layout.fillWidth: true + Layout.maximumWidth: parent.width + + EnforcedPlainTextLabel { + id: currentAccountUser + Layout.alignment: Qt.AlignLeft | Qt.AlignBottom + width: Style.sesAccountLabelWidth + text: UserModel.currentUser.name + elide: Text.ElideRight + color: Style.currentUserHeaderTextColor + font: root.font + } + + RowLayout { + id: currentUserStatus + visible: UserModel.currentUser.isConnected && + UserModel.currentUser.serverHasUserStatus + spacing: Style.accountLabelsSpacing + width: parent.width + + EnforcedPlainTextLabel { + id: emoji + visible: UserModel.currentUser.statusEmoji !== "" + width: Style.userStatusEmojiSize + text: UserModel.currentUser.statusEmoji + } + EnforcedPlainTextLabel { + id: message + Layout.alignment: Qt.AlignLeft | Qt.AlignBottom + Layout.fillWidth: true + visible: UserModel.currentUser.statusMessage !== "" + width: Style.currentAccountLabelWidth + text: UserModel.currentUser.statusMessage !== "" + ? UserModel.currentUser.statusMessage + : UserModel.currentUser.server + elide: Text.ElideRight + color: Style.currentUserHeaderTextColor + } + } + } + + Image { + Layout.alignment: Qt.AlignRight + verticalAlignment: Qt.AlignBottom + Layout.rightMargin: Style.sesAccountButtonRightMargin + source: Style.sesChevron + sourceSize.width: 14 + sourceSize.height: 14 + Accessible.role: Accessible.PopupMenu + Accessible.name: qsTr("Account switcher and settings menu") + } + } +} \ No newline at end of file diff --git a/src/gui/tray/TrayWindowHeader.qml b/src/gui/tray/TrayWindowHeader.qml index f095063e1e8ab..22e4aab021b1a 100644 --- a/src/gui/tray/TrayWindowHeader.qml +++ b/src/gui/tray/TrayWindowHeader.qml @@ -11,7 +11,7 @@ import "../" import "../filedetails/" import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient Rectangle { id: root diff --git a/src/gui/tray/TrayWindowHeaderBar.qml b/src/gui/tray/TrayWindowHeaderBar.qml new file mode 100644 index 0000000000000..d96dcea191338 --- /dev/null +++ b/src/gui/tray/TrayWindowHeaderBar.qml @@ -0,0 +1,171 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtGraphicalEffects 1.15 +import Qt.labs.platform 1.1 as NativeDialogs + +import "../" +import "../filedetails/" + +// Custom qml modules are in /theme (and included by resources.qrc) +import Style 1.0 + +import com.ionos.hidrivenext.desktopclient + + +Rectangle { + + height: Style.trayWindowHeaderHeight + color: Style.sesBackgroundColor + radius: 0.0 + + RowLayout { + id: trayWindowHeaderLayout + + anchors.fill: parent + anchors.leftMargin: 20 + anchors.rightMargin: 20 + + TrayWindowAccountMenu{ + Layout.preferredWidth: Style.currentAccountButtonWidth + Layout.preferredHeight: Style.trayWindowHeaderHeight + } + + HeaderButton { + id: trayWindowWebsiteButton + + icon.source: Style.sesWebsiteIcon + icon.color: Style.sesIconColor + onClicked: UserModel.openCurrentAccountServer() + + text: qsTr("Website") + + Accessible.role: Accessible.Button + Accessible.name: qsTr("Open Nextcloud in browser") + Accessible.onPressAction: trayWindowWebsiteButton.clicked() + + Layout.alignment: Qt.AlignRight + Layout.preferredWidth: Style.trayWindowHeaderHeight + Layout.preferredHeight: Style.trayWindowHeaderHeight + } + + TrayFoldersMenuButton { + id: openLocalFolderButton + + visible: currentUser.hasLocalFolder + currentUser: UserModel.currentUser + + + onClicked: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() + + onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder() + + Accessible.role: Accessible.Graphic + Accessible.name: qsTr("Open local or group folders") + Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() + + Layout.alignment: Qt.AlignRight + Layout.preferredWidth: Style.trayWindowHeaderHeight + Layout.preferredHeight: Style.trayWindowHeaderHeight + } + + HeaderButton { + id: trayWindowTalkButton + + visible: false //SES-4 removed + icon.source: "qrc:///client/theme/white/talk-app.svg" + icon.color: Style.currentUserHeaderTextColor + onClicked: UserModel.openCurrentAccountTalk() + + Accessible.role: Accessible.Button + Accessible.name: qsTr("Open Nextcloud Talk in browser") + Accessible.onPressAction: trayWindowTalkButton.clicked() + + Layout.alignment: Qt.AlignRight + Layout.preferredWidth: Style.trayWindowHeaderHeight + Layout.preferredHeight: Style.trayWindowHeaderHeight + + } + + HeaderButton { + id: trayWindowAppsButton + icon.source: "qrc:///client/theme/white/more-apps.svg" + icon.color: Style.currentUserHeaderTextColor + + visible: false //SES-4 removed + + onClicked: { + if(appsMenuListView.count <= 0) { + UserModel.openCurrentAccountServer() + } else if (appsMenu.visible) { + appsMenu.close() + } else { + appsMenu.open() + } + } + + Accessible.role: Accessible.ButtonMenu + Accessible.name: qsTr("More apps") + Accessible.onPressAction: trayWindowAppsButton.clicked() + + Menu { + id: appsMenu + x: Style.trayWindowMenuOffsetX + y: (trayWindowAppsButton.y + trayWindowAppsButton.height + Style.trayWindowMenuOffsetY) + width: Style.trayWindowWidth * Style.trayWindowMenuWidthFactor + height: implicitHeight + y > Style.trayWindowHeight ? Style.trayWindowHeight - y : implicitHeight + closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape + + background: Rectangle { + border.color: Style.sesBorderColor + color: Style.sesBackgroundColor + radius: 2 + } + + contentItem: ScrollView { + id: appsMenuScrollView + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + + data: WheelHandler { + target: appsMenuScrollView.contentItem + } + ListView { + id: appsMenuListView + implicitHeight: contentHeight + model: UserAppsModel + interactive: true + clip: true + currentIndex: appsMenu.currentIndex + delegate: MenuItem { + id: appEntry + anchors.left: parent.left + anchors.right: parent.right + + text: model.appName + font.pixelSize: Style.topLinePixelSize + icon.source: model.appIconUrl + icon.color: Style.ncTextColor + onTriggered: UserAppsModel.openAppUrl(appUrl) + hoverEnabled: true + + background: Item { + height: parent.height + width: parent.width + Rectangle { + anchors.fill: parent + anchors.margins: 1 + color: parent.parent.hovered || parent.parent.visualFocus ? Style.sesHover : "transparent" + } + } + + Accessible.role: Accessible.MenuItem + Accessible.name: qsTr("Open %1 in browser").arg(model.appName) + Accessible.onPressAction: appEntry.triggered() + } + } + } + } + } + } +} // Rectangle trayWindowHeaderBackground diff --git a/src/gui/tray/UnifiedSearchInputContainer.qml b/src/gui/tray/UnifiedSearchInputContainer.qml index 4fd6ac4f1d927..82a256bd47923 100644 --- a/src/gui/tray/UnifiedSearchInputContainer.qml +++ b/src/gui/tray/UnifiedSearchInputContainer.qml @@ -9,7 +9,7 @@ import QtQuick.Controls import Qt5Compat.GraphicalEffects import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient TextField { id: root diff --git a/src/gui/tray/UnifiedSearchResultListItem.qml b/src/gui/tray/UnifiedSearchResultListItem.qml index 6c998598fbd66..e82db2b0549f9 100644 --- a/src/gui/tray/UnifiedSearchResultListItem.qml +++ b/src/gui/tray/UnifiedSearchResultListItem.qml @@ -7,7 +7,7 @@ import QtQml import QtQuick import QtQuick.Controls import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient MouseArea { id: unifiedSearchResultMouseArea diff --git a/src/gui/tray/UnifiedSearchResultSectionItem.qml b/src/gui/tray/UnifiedSearchResultSectionItem.qml index 8318a10e75af1..3bde17fbcdbf8 100644 --- a/src/gui/tray/UnifiedSearchResultSectionItem.qml +++ b/src/gui/tray/UnifiedSearchResultSectionItem.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient EnforcedPlainTextLabel { required property string section diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 43ab7480c7d31..67667dcb589bf 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -10,57 +10,42 @@ import QtQuick.Layouts // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient AbstractButton { id: userLine + property bool isHovered: userLine.hovered || userLine.visualFocus + property bool isActive: userLine.pressed + signal showUserStatusSelector(int id) signal showUserStatusMessageSelector(int id) - Accessible.role: Accessible.MenuItem Accessible.name: qsTr("Switch to account") + " " + model.name - height: Style.trayWindowHeaderHeight + height: Style.sesAccountMenuHeight + + leftPadding: Style.sesMediumMargin + topPadding: Style.sesSmallMargin + bottomPadding: Style.sesSmallMargin + + background: Rectangle { + radius: 0 + anchors.fill: parent + anchors.margins: 1 + color: userLine.isHovered && !userMoreButton.isHovered ? Style.sesAccountMenuHover : "transparent" + } contentItem: RowLayout { id: userLineLayout - spacing: Style.userLineSpacing + spacing: Style.sesSmallMargin Image { id: accountAvatar - Layout.leftMargin: Style.accountIconsMenuMargin verticalAlignment: Qt.AlignCenter cache: false - source: model.avatar !== "" ? model.avatar : Style.darkMode ? "image://avatars/fallbackWhite" : "image://avatars/fallbackBlack" - Layout.preferredHeight: Style.accountAvatarSize - Layout.preferredWidth: Style.accountAvatarSize - - Rectangle { - id: accountStatusIndicatorBackground - visible: model.isConnected && model.serverHasUserStatus - width: accountStatusIndicator.sourceSize.width + Style.trayFolderStatusIndicatorSizeOffset - height: width - color: "white" - anchors.bottom: accountAvatar.bottom - anchors.right: accountAvatar.right - radius: width * Style.trayFolderStatusIndicatorRadiusFactor - } - - Image { - id: accountStatusIndicator - visible: model.isConnected && model.serverHasUserStatus - source: model.statusIcon - cache: false - x: accountStatusIndicatorBackground.x + Style.trayFolderStatusIndicatorSizeOffset / 2 - y: accountStatusIndicatorBackground.y + Style.trayFolderStatusIndicatorSizeOffset / 2 - sourceSize.width: Style.accountAvatarStateIndicatorSize - sourceSize.height: Style.accountAvatarStateIndicatorSize - - Accessible.role: Accessible.Indicator - Accessible.name: model.desktopNotificationsAllowed ? qsTr("Current account status is online") : qsTr("Current account status is do not disturb") - } + source: Style.sesAvatar } ColumnLayout { @@ -76,14 +61,8 @@ AbstractButton { verticalAlignment: Text.AlignBottom text: name elide: Text.ElideRight - font.pixelSize: Style.topLinePixelSize - font.bold: true - - color: !userLine.parent.enabled - ? userLine.parent.palette.mid - : ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows" - ? userLine.parent.palette.highlightedText - : userLine.parent.palette.text) + font: userLine.font + color: Style.sesTrayFontColor } RowLayout { @@ -112,6 +91,8 @@ AbstractButton { visible: model.statusMessage !== "" text: statusMessage elide: Text.ElideRight + font: userLine.font + leftPadding: Style.accountLabelsSpacing font.pixelSize: Style.subLinePixelSize color: !userLine.parent.enabled @@ -121,89 +102,81 @@ AbstractButton { : userLine.parent.palette.text) } } - - EnforcedPlainTextLabel { - id: accountServer - Layout.fillWidth: true - Layout.alignment: Qt.AlignLeft | Qt.AlignTop - verticalAlignment: Text.AlignTop - text: server - elide: Text.ElideRight - font.pixelSize: Style.subLinePixelSize - - color: !userLine.parent.enabled - ? userLine.parent.palette.mid - : ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows" - ? userLine.parent.palette.highlightedText - : userLine.parent.palette.text) - } } - Item { // Spacer - Layout.fillWidth: true - } - - Button { + IconButton { id: userMoreButton Layout.preferredWidth: Style.headerButtonIconSize - Layout.fillHeight: true + Layout.preferredHeight: Layout.preferredWidth + Layout.rightMargin: Style.sesMediumMargin flat: true + property bool isHovered: userMoreButton.hovered || userMoreButton.visualFocus + property bool isActive: userMoreButton.pressed || userMoreButtonMenu.visible + + iconSource: Style.sesMore + iconSourceHovered: Style.sesMoreHover + Accessible.role: Accessible.ButtonMenu Accessible.name: qsTr("Account actions") Accessible.onPressAction: userMoreButtonMouseArea.clicked() onClicked: userMoreButtonMenu.visible ? userMoreButtonMenu.close() : userMoreButtonMenu.popup() - property var iconColor: !userLine.parent.enabled - ? userLine.parent.palette.mid - : (!hovered && ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows") - ? userLine.parent.palette.highlightedText - : userLine.parent.palette.text) - icon.source: "image://svgimage-custom-color/more.svg/" + iconColor - - AutoSizingMenu { + Menu { id: userMoreButtonMenu + width: Style.sesAccountMenuWidth + height: Math.min(implicitHeight, maxMenuHeight) closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape height: implicitHeight - MenuItem { - id: setStatusButton - enabled: model.isConnected && model.serverHasUserStatus - text: qsTr("Set status") - font.pixelSize: Style.topLinePixelSize - hoverEnabled: true - - onClicked: showUserStatusSelector(index) - - Accessible.role: Accessible.Button - Accessible.name: text - Accessible.onPressAction: setStatusButton.clicked() - } + bottomInset: 0 + topInset: 0 + rightInset: 0 + leftInset: 0 + rightPadding: 0 + leftPadding: 0 + topPadding: 0 + bottomPadding: 0 + + background: Rectangle { + radius: Style.sesCornerRadius + border.color: Style.sesBorderColor + } MenuItem { - id: statusMessageButton - enabled: model.isConnected && model.serverHasUserStatus - text: qsTr("Status message") - font.pixelSize: Style.topLinePixelSize - hoverEnabled: true + id: logInOutButton - onClicked: showUserStatusMessageSelector(index) + property bool isHovered: logInOutButton.hovered || logInOutButton.visualFocus + property bool isActive: logInOutButton.pressed - Accessible.role: Accessible.Button - Accessible.name: text - Accessible.onPressAction: statusMessageButton.clicked() - } + palette.text: Style.sesTrayFontColor - MenuItem { - id: logInOutButton - enabled: model.canLogout + Component.onCompleted: { + if (contentItem && contentItem.hasOwnProperty("color")) { + contentItem.color = logInOutButton.palette.text + } + } + icon.source: Style.sesLogout + icon.color: Style.sesIconDarkColor + leftPadding: Style.sesMediumMargin + topPadding: Style.sesAccountMenuItemPadding + bottomPadding: Style.sesAccountMenuItemPadding + spacing: Style.sesSmallMargin text: model.isConnected ? qsTr("Log out") : qsTr("Log in") - width: parent.width - font.pixelSize: Style.topLinePixelSize + font: userLine.font + palette.windowText: Style.ncTextColor hoverEnabled: true onClicked: { + model.isConnected ? UserModel.logout(index) : UserModel.login(index) + accountMenu.close() + } + // TODO SES-459 Check Merge "setStatus" && "onPressed" + Accessible.role: Accessible.Button + Accessible.name: model.isConnected ? qsTr("Log out") : qsTr("Log in") + + onPressed: { if (model.isConnected) { UserModel.logout(index) } else { @@ -211,23 +184,49 @@ AbstractButton { } accountMenu.close() } - - Accessible.role: Accessible.Button - Accessible.name: text - Accessible.onPressAction: logInOutButton.clicked() } MenuItem { id: removeAccountButton - text: model.removeAccountText - font.pixelSize: Style.topLinePixelSize + + property bool isHovered: removeAccountButton.hovered || removeAccountButton.visualFocus + property bool isActive: removeAccountButton.pressed + + palette.text: Style.sesTrayFontColor + + Component.onCompleted: { + if (contentItem && contentItem.hasOwnProperty("color")) { + contentItem.color = removeAccountButton.palette.text + } + } + icon.source: Style.sesDelete + icon.color: Style.sesIconDarkColor + leftPadding: Style.sesMediumMargin + topPadding: Style.sesAccountMenuItemPadding + bottomPadding: Style.sesAccountMenuItemPadding + spacing: Style.sesSmallMargin + text: qsTr("Remove account") + font: userLine.font + palette.windowText: Style.ncTextColor hoverEnabled: true onClicked: { UserModel.removeAccount(index) accountMenu.close() } - Accessible.role: Accessible.Button + background: Item { + height: parent.height + width: parent.menu.width + Rectangle { + radius: 0 + anchors.fill: parent + anchors.margins: 1 + color: removeAccountButton.isActive ? Style.sesButtonPressed : + removeAccountButton.isHovered ? Style.sesAccountMenuHover : "transparent" + } + } + + Accessible.role: Accessible.MenuItem Accessible.name: text Accessible.onPressAction: removeAccountButton.clicked() } @@ -235,4 +234,3 @@ AbstractButton { } } } // MenuItem userLine - diff --git a/src/gui/tray/activitylistmodel.cpp b/src/gui/tray/activitylistmodel.cpp index 45f319b5e1931..56d007937b5ce 100644 --- a/src/gui/tray/activitylistmodel.cpp +++ b/src/gui/tray/activitylistmodel.cpp @@ -19,6 +19,8 @@ #include "systray.h" #include "common/utility.h" +#include "whitelabeltheme.h" + #include #include #include @@ -220,17 +222,19 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const }; const auto generateIconPath = [&]() { - auto colorIconPath = QStringLiteral("image://svgimage-custom-color/%1"); + auto colorIconPath = QStringLiteral("qrc:///client/theme/colored/"); if (a._type == Activity::NotificationType && !a._talkNotificationData.userAvatar.isEmpty()) { return QStringLiteral("image://svgimage-custom-color/talk-bordered.svg"); } else if (a._type == Activity::SyncResultType) { - return colorIconPath.arg("error.svg"); + colorIconPath.append("state-ok.svg"); + return colorIconPath; } else if (a._type == Activity::SyncFileItemType) { if (a._syncFileItemStatus == SyncFileItem::NormalError || a._syncFileItemStatus == SyncFileItem::FatalError || a._syncFileItemStatus == SyncFileItem::DetailError || a._syncFileItemStatus == SyncFileItem::BlacklistedError) { - return colorIconPath.arg("error.svg"); + colorIconPath.append("state-error.svg"); + return colorIconPath; } else if (a._syncFileItemStatus == SyncFileItem::SoftError || a._syncFileItemStatus == SyncFileItem::Conflict || a._syncFileItemStatus == SyncFileItem::Restoration @@ -238,17 +242,19 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const || a._syncFileItemStatus == SyncFileItem::FileNameInvalid || a._syncFileItemStatus == SyncFileItem::FileNameInvalidOnServer || a._syncFileItemStatus == SyncFileItem::FileNameClash) { - return colorIconPath.arg("warning.svg"); + colorIconPath.append("state-warning.svg"); + return colorIconPath; } else if (a._syncFileItemStatus == SyncFileItem::FileIgnored) { - return colorIconPath.arg("info.svg"); + colorIconPath = WLTheme.infoIcon(); + return colorIconPath; } else { // File sync successful if (a._fileAction == "file_created") { - return a._previews.empty() ? colorIconPath.arg("add.svg") : colorIconPath.arg("add-bordered.svg"); + return WLTheme.plusIcon(); } else if (a._fileAction == "file_deleted") { - return a._previews.empty() ? colorIconPath.arg("delete.svg") : colorIconPath.arg("delete-bordered.svg"); + return WLTheme.activityDeleteIcon(); } else { - return a._previews.empty() ? colorIconPath.arg("change.svg") : colorIconPath.arg("change-bordered.svg"); + return WLTheme.refreshIcon(); } } } else { diff --git a/src/gui/tray/asyncimageresponse.h b/src/gui/tray/asyncimageresponse.h index 339ae2b06d5aa..c366798177def 100644 --- a/src/gui/tray/asyncimageresponse.h +++ b/src/gui/tray/asyncimageresponse.h @@ -7,8 +7,7 @@ #include #include -#include -#include +#include "sesFileIconProvider.h" class AsyncImageResponse : public QQuickImageResponse { @@ -25,6 +24,6 @@ class AsyncImageResponse : public QQuickImageResponse QStringList _imagePaths; QSize _requestedImageSize; QColor _svgRecolor; - QFileIconProvider _fileIconProvider; + SesFileIconProvider _fileIconProvider; int _index = 0; }; diff --git a/src/gui/tray/usermodel.cpp b/src/gui/tray/usermodel.cpp index 87ad26a850cab..aeaa5497e4378 100644 --- a/src/gui/tray/usermodel.cpp +++ b/src/gui/tray/usermodel.cpp @@ -24,6 +24,7 @@ #include "tray/talkreply.h" #include "userstatusconnector.h" #include "common/utility.h" +#include "buttonstyle.h" #include #include @@ -33,6 +34,10 @@ #include #include #include +#include +#include +#include +#include // time span in milliseconds which has to be between two // refreshes of the notifications @@ -1536,7 +1541,7 @@ void UserModel::removeAccount(const int id) } QMessageBox messageBox(QMessageBox::Question, - tr("Confirm Account Removal"), + tr("Confirm Account Removal"), tr("

      Do you really want to remove the connection to the account %1?

      " "

      Note: This will not delete any files.

      ") .arg(Utility::escape(_users[id]->name())), @@ -1544,7 +1549,10 @@ void UserModel::removeAccount(const int id) const auto * const yesButton = messageBox.addButton(tr("Remove connection"), QMessageBox::YesRole); messageBox.addButton(tr("Cancel"), QMessageBox::NoRole); + styleMessageBox(messageBox, yesButton); + messageBox.exec(); + if (messageBox.clickedButton() != yesButton) { return; } @@ -1713,6 +1721,38 @@ int UserModel::findUserIdForAccount(AccountState *account) const const auto id = std::distance(std::cbegin(_users), it); return id; } + +void UserModel::styleMessageBox(QMessageBox &messageBox, QPushButton *yesButton){ + + messageBox.setStyleSheet(QStringLiteral("QMessageBox { background-color: %1; } QMessageBox QLabel { %2 } ").arg( + WLTheme.dialogBackgroundColor(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + + messageBox.setIconPixmap(QPixmap(WLTheme.questionCircleIcon())); + + yesButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + QDialogButtonBox *buttonBox = messageBox.findChild(); + buttonBox->setLayoutDirection(Qt::RightToLeft); + buttonBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + + QHBoxLayout *buttonBoxLayout = messageBox.findChild(); + buttonBoxLayout->setSpacing(8); +#ifdef Q_OS_MACOS + buttonBoxLayout->setSpacing(24); +#endif + + QLabel *label = messageBox.findChild("qt_msgbox_label"); + label->setMinimumSize(529, 49); + label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); +} /*-------------------------------------------------------------------------------------*/ class ImageResponse : public QQuickImageResponse diff --git a/src/gui/tray/usermodel.h b/src/gui/tray/usermodel.h index ec416007b2f68..a29eb5f538dbf 100644 --- a/src/gui/tray/usermodel.h +++ b/src/gui/tray/usermodel.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "accountfwd.h" #include "accountmanager.h" @@ -292,6 +293,7 @@ public slots: bool _init = true; void buildUserList(); + void styleMessageBox(QMessageBox &messageBox, QPushButton *yesButton); }; class ImageProvider : public QQuickAsyncImageProvider diff --git a/src/gui/updater/updater.cpp b/src/gui/updater/updater.cpp index d57336e1e8002..6e2b154e02387 100644 --- a/src/gui/updater/updater.cpp +++ b/src/gui/updater/updater.cpp @@ -52,9 +52,9 @@ QUrl Updater::updateUrl() if (SparkleUpdater::autoUpdaterAllowed()) { urlQuery.addQueryItem(QLatin1String("sparkle"), QLatin1String("true")); } -#ifdef BUILD_FILE_PROVIDER_MODULE - urlQuery.addQueryItem(QLatin1String("fileprovider"), QLatin1String("true")); -#endif +// #ifdef BUILD_FILE_PROVIDER_MODULE +// urlQuery.addQueryItem(QLatin1String("fileprovider"), QLatin1String("true")); +// #endif #endif #if defined(Q_OS_WIN) urlQuery.addQueryItem(QLatin1String("msi"), QLatin1String("true")); @@ -87,7 +87,7 @@ QUrlQuery Updater::getQueryParams() query.addQueryItem(QStringLiteral("osRelease"), QSysInfo::productType()); query.addQueryItem(QStringLiteral("osVersion"), QSysInfo::productVersion()); query.addQueryItem(QStringLiteral("kernelVersion"), QSysInfo::kernelVersion()); - query.addQueryItem(QStringLiteral("oem"), Theme::instance()->appName()); + query.addQueryItem(QStringLiteral("oem"), Theme::instance()->appShortName()); query.addQueryItem(QStringLiteral("buildArch"), QSysInfo::buildCpuArchitecture()); query.addQueryItem(QStringLiteral("currentArch"), QSysInfo::currentCpuArchitecture()); query.addQueryItem(QStringLiteral("versionsuffix"), Theme::instance()->versionSuffix()); diff --git a/src/gui/whitelabeltheme.h b/src/gui/whitelabeltheme.h new file mode 100644 index 0000000000000..ecb6add56bbd4 --- /dev/null +++ b/src/gui/whitelabeltheme.h @@ -0,0 +1,21 @@ +#ifndef WHITELABELTHEME_H +#define WHITELABELTHEME_H +// // #define WHITELABEL_IONOS +// #define WHITELABEL_STRATO + +#include "basetheme.h" +#include "stratotheme.h" +#include "ionostheme.h" + +namespace OCC { + + +#if defined(IONOS_WL_BUILD) + static IonosTheme WLTheme; +#else + static StratoTheme WLTheme; +#endif + +} // namespace OCC + +#endif // WHITELABELTHEME_H diff --git a/src/gui/wizard/dataprotectionpage.cpp b/src/gui/wizard/dataprotectionpage.cpp new file mode 100644 index 0000000000000..7ae7c3551b4b5 --- /dev/null +++ b/src/gui/wizard/dataprotectionpage.cpp @@ -0,0 +1,90 @@ +#include "dataprotectionpage.h" +#include "buttonstyle.h" +#include "linkbutton.h" +#include "guiutility.h" +#include "theme.h" +#include "ui_dataprotectionpage.h" +#include "wizard/owncloudwizard.h" +#include + +namespace OCC{ + + DataProtectionPage::DataProtectionPage(OwncloudWizard *ocWizard) + : QWizardPage() + , _ui(new Ui::DataProtectionPage) + , _ocWizard(ocWizard) + { + setupUi(); + } + + DataProtectionPage::~DataProtectionPage() = default; + + void DataProtectionPage::setupUi() + { + _ui->setupUi(this); + } + + void DataProtectionPage::initializePage() + { + ConfigFile cfgFile; + cfgFile.setSendData(true); + connect(_ui->agreeButton, &QPushButton::clicked, this, [this]() { + _nextPage = WizardCommon::Page_AdvancedSetup; + _ocWizard->next(); + }); + + connect(_ui->settingsButton, &QPushButton::clicked, this, [this](){ + _nextPage = WizardCommon::Page_DataProtectionSettings; + _ocWizard->next(); + }); + + QString dataProtectionLogo = QString(); + +#if defined(IONOS_WL_BUILD) + dataProtectionLogo = Theme::hidpiFileName(":/client/theme/colored/ionos-data-protection-logo.png"); +#else defined(STRATO_WL_BUILD) + dataProtectionLogo = Theme::hidpiFileName(":/client/theme/colored/strato-data-protection-logo.png"); +#endif + + _ui->logoLabel->setPixmap(Theme::hidpiFileName(dataProtectionLogo)); + _ui->descriptionLabel->setText(tr("This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings.

      Information on data processing and more can be found in our
      privacy policy.")); + _ui->descriptionLabel->setOpenExternalLinks(true); + _ui->descriptionLabel->setTextFormat(Qt::RichText); + + customizeStyle(); + } + + int DataProtectionPage::nextId() const + { + return _nextPage; + } + + void DataProtectionPage::customizeStyle() + { + _ocWizard->setFixedSize(626, 470); + _ui->mainVBox->setContentsMargins(24, 0, 24, 24); + + _ui->logoLabel->setAlignment(Qt::AlignHCenter); + _ui->logoLabel->setMargin(8); + + _ui->descriptionLabel->setStyleSheet( + QStringLiteral("QLabel { %1; margin-left: %2; margin-right: %2; margin-bottom: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black() + ), + "32" + ) + ); + + _ui->agreeButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + _ui->agreeButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + _ui->settingsButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + + _ui->buttonLayout->setAlignment(Qt::AlignCenter); + _ui->buttonLayout->setSpacing(16); + } +} \ No newline at end of file diff --git a/src/gui/wizard/dataprotectionpage.h b/src/gui/wizard/dataprotectionpage.h new file mode 100644 index 0000000000000..5c55fe8dd1df9 --- /dev/null +++ b/src/gui/wizard/dataprotectionpage.h @@ -0,0 +1,36 @@ +#pragma once + +#include + +#include "wizard/owncloudwizardcommon.h" + +namespace OCC { + +class OwncloudWizard; + +namespace Ui { + class DataProtectionPage; +} + +class DataProtectionPage : public QWizardPage +{ + Q_OBJECT + +public: + explicit DataProtectionPage(OwncloudWizard *ocWizard); + ~DataProtectionPage() override; + [[nodiscard]] int nextId() const override; + void initializePage() override; + +private: + void setupUi(); + void customizeStyle(); + + QScopedPointer _ui; + + OwncloudWizard *_ocWizard; + + WizardCommon::Pages _nextPage = WizardCommon::Page_AdvancedSetup; +}; + +} \ No newline at end of file diff --git a/src/gui/wizard/dataprotectionpage.ui b/src/gui/wizard/dataprotectionpage.ui new file mode 100644 index 0000000000000..7f9c7025d4921 --- /dev/null +++ b/src/gui/wizard/dataprotectionpage.ui @@ -0,0 +1,68 @@ + + + OCC::DataProtectionPage + + + + 0 + 0 + 626 + 450 + + + + + 0 + 0 + + + + Form + + + + + + + + + true + + + + + + + + + Settings + + + + + + + Agree + + + + + + + + + + OCC::SlideShow + QWidget +
      wizard/slideshow.h
      +
      + + OCC::LinkLabel + QWidget +
      wizard/linklabel.h
      + 1 +
      +
      + + +
      diff --git a/src/gui/wizard/dataprotectionsettingspage.cpp b/src/gui/wizard/dataprotectionsettingspage.cpp new file mode 100644 index 0000000000000..1b8ab34546a54 --- /dev/null +++ b/src/gui/wizard/dataprotectionsettingspage.cpp @@ -0,0 +1,134 @@ +#include "dataprotectionsettingspage.h" +#include "configfile.h" +#include "buttonstyle.h" +#include "guiutility.h" +#include "theme.h" +#include "ui_dataprotectionsettingspage.h" +#include "wizard/owncloudwizard.h" + +namespace OCC{ + + DataProtectionSettingsPage::DataProtectionSettingsPage(OwncloudWizard *ocWizard) + : QWizardPage() + , _ui(new Ui::DataProtectionSettingsPage) + , _ocWizard(ocWizard) + { + setupUi(); + } + + DataProtectionSettingsPage::~DataProtectionSettingsPage() = default; + + void DataProtectionSettingsPage::setupUi() + { + _ui->setupUi(this); + setupPage(); + } + + void DataProtectionSettingsPage::initializePage() + { + customizeStyle(); + } + + void DataProtectionSettingsPage::setupPage() + { + ConfigFile cfgFile; + + connect(_ui->backButton, &QPushButton::clicked, this, [this, &cfgFile]() { + _ui->anonymousDataCheckBox->setChecked(false); + _ocWizard->back(); + }); + + connect(_ui->saveButton, &QPushButton::clicked, this, [this, &cfgFile](){ + cfgFile.setSendData(_ui->anonymousDataCheckBox->isChecked()); + _ocWizard->next(); + }); + + connect(_ui->necessaryDataCheckBox, &QCheckBox::clicked, this, [this](){ + _ui->necessaryDataCheckBox->setChecked(true); + }); + + _ui->descriptionLabel->setText(tr("We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.")); + + _ui->anonymousDataCheckBox->setChecked(false); + } + + int DataProtectionSettingsPage::nextId() const + { + return _nextPage; + } + + void DataProtectionSettingsPage::customizeStyle() + { + _ocWizard->setFixedSize(626, 480); + + _ui->mainVBox->setContentsMargins(32, 0, 32, 0); + + _ui->necessaryDataCheckBox->setChecked(true); + + _ui->necessaryDataCheckBox->setStyleSheet( + QStringLiteral("QCheckBox { %1; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor() + ) + )); + + _ui->anonymousDataCheckBox->setStyleSheet( + QStringLiteral("QCheckBox { %1; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.folderWizardSubtitleColor() + ) + )); + + _ui->descriptionLabel->setStyleSheet( + QStringLiteral("QLabel { %1; margin-top: %2; margin-bottom: %2; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black() + ), + "24" + ) + ); + + _ui->necessaryDataLabel->setStyleSheet( + QStringLiteral("QLabel { %1; margin-left: %2; margin-bottom: %3; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black() + ), + "16", + WLTheme.smallMargin() + ) + ); + + _ui->anonymousDataLabel->setStyleSheet( + QStringLiteral("QLabel { %1; margin-left: %2; margin-bottom: %3; }").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.black() + ), + "16", + "48" + ) + ); + + _ui->buttonLayout->setAlignment(Qt::AlignCenter); + _ui->buttonLayout->setSpacing(16); + _ui->buttonLayout->setContentsMargins(0, 16, 0, 16); + + _ui->backButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + _ui->saveButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + _ui->saveButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + } +} \ No newline at end of file diff --git a/src/gui/wizard/dataprotectionsettingspage.h b/src/gui/wizard/dataprotectionsettingspage.h new file mode 100644 index 0000000000000..8decb988a70e3 --- /dev/null +++ b/src/gui/wizard/dataprotectionsettingspage.h @@ -0,0 +1,37 @@ +#pragma once + +#include + +#include "wizard/owncloudwizardcommon.h" + +namespace OCC { + +class OwncloudWizard; + +namespace Ui { + class DataProtectionSettingsPage; +} + +class DataProtectionSettingsPage : public QWizardPage +{ + Q_OBJECT + +public: + explicit DataProtectionSettingsPage(OwncloudWizard *ocWizard); + ~DataProtectionSettingsPage() override; + [[nodiscard]] int nextId() const override; + void initializePage() override; + +private: + void setupUi(); + void customizeStyle(); + void setupPage(); + + QScopedPointer _ui; + + OwncloudWizard *_ocWizard; + + WizardCommon::Pages _nextPage = WizardCommon::Page_AdvancedSetup; +}; + +} \ No newline at end of file diff --git a/src/gui/wizard/dataprotectionsettingspage.ui b/src/gui/wizard/dataprotectionsettingspage.ui new file mode 100644 index 0000000000000..e283b0b05f014 --- /dev/null +++ b/src/gui/wizard/dataprotectionsettingspage.ui @@ -0,0 +1,113 @@ + + + OCC::DataProtectionSettingsPage + + + + 0 + 0 + 626 + 450 + + + + + 0 + 0 + + + + Form + + + + + + true + + + + + + + + + Necessary data + + + true + + + + + + + Required to ensure that the software can be used as expected + + + true + + + + + + + + + + + Send anonymous use + + + true + + + + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + true + + + + + + + + + + + Back + + + + + + + Save Settings + + + + + + + + + + OCC::SlideShow + QWidget +
      wizard/slideshow.h
      +
      + + OCC::LinkLabel + QWidget +
      wizard/linklabel.h
      + 1 +
      +
      + + +
      diff --git a/src/gui/wizard/flow2authcredspage.cpp b/src/gui/wizard/flow2authcredspage.cpp index 9e6c48eab996e..f91873976751f 100644 --- a/src/gui/wizard/flow2authcredspage.cpp +++ b/src/gui/wizard/flow2authcredspage.cpp @@ -22,7 +22,7 @@ Flow2AuthCredsPage::Flow2AuthCredsPage() : AbstractCredentialsWizardPage() { _layout = new QVBoxLayout(this); - + _layout->setContentsMargins(0, 0, 0, 0); _flow2AuthWidget = new Flow2AuthWidget(); _layout->addWidget(_flow2AuthWidget); @@ -92,6 +92,21 @@ void Flow2AuthCredsPage::slotFlow2AuthResult(Flow2Auth::Result r, const QString } } +//TODO SES-459 Check why actually removed +int Flow2AuthCredsPage::nextId() const +{ + const auto ocWizard = qobject_cast(wizard()); + Q_ASSERT(ocWizard); + if (ocWizard->needsToAcceptTermsOfService()) { + return WizardCommon::Page_TermsOfService; + } + +#ifdef IONOS_BUILD + return WizardCommon::Page_DataProtection; +#endif + return WizardCommon::Page_AdvancedSetup; +} + void Flow2AuthCredsPage::setConnected() { auto *ocWizard = qobject_cast(wizard()); diff --git a/src/gui/wizard/flow2authwidget.cpp b/src/gui/wizard/flow2authwidget.cpp index 8da6c46a5f3b0..13e99476b142a 100644 --- a/src/gui/wizard/flow2authwidget.cpp +++ b/src/gui/wizard/flow2authwidget.cpp @@ -5,19 +5,21 @@ #include "flow2authwidget.h" -#include "common/utility.h" + #include "account.h" +#include "buttonstyle.h" +#include "common/utility.h" #include "creds/webflowcredentials.h" +#include "linklabel.h" #include "networkjobs.h" -#include "wizard/owncloudwizardcommon.h" #include "theme.h" -#include "linklabel.h" +#include "wizard/owncloudwizardcommon.h" #include "QProgressIndicator.h" #include -#include #include +#include namespace OCC { @@ -30,8 +32,7 @@ Flow2AuthWidget::Flow2AuthWidget(QWidget *parent) { _ui.setupUi(this); - WizardCommon::initErrorLabel(_ui.errorLabel); - _ui.errorLabel->setTextFormat(Qt::RichText); + _ui.errorSnackbar->setVisible(false); connect(_ui.openLinkButton, &QPushButton::clicked, this, &Flow2AuthWidget::slotOpenBrowser); connect(_ui.copyLinkButton, &QPushButton::clicked, this, &Flow2AuthWidget::slotCopyLinkToClipboard); @@ -48,9 +49,14 @@ Flow2AuthWidget::Flow2AuthWidget(QWidget *parent) void Flow2AuthWidget::setLogo() { - const auto backgroundColor = palette().window().color(); - const auto logoIconFileName = Theme::instance()->isBranded() ? Theme::hidpiFileName("external.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/external.png"); + auto logoIconFileName = QString(); + +#if defined(IONOS_WL_BUILD) + logoIconFileName = Theme::hidpiFileName(":/client/theme/ses/ses-external.svg"); +#else defined(STRATO_WL_BUILD) + logoIconFileName = Theme::hidpiFileName(":/client/theme/ses/strato/ses-external.svg"); +#endif + _ui.logoLabel->setPixmap(logoIconFileName); } @@ -88,16 +94,14 @@ void Flow2AuthWidget::slotAuthResult(Flow2Auth::Result r, const QString &errorSt switch (r) { case Flow2Auth::NotSupported: /* Flow2Auth can't open browser */ - _ui.errorLabel->setText(tr("Unable to open the Browser, please copy the link to your Browser.")); - _ui.errorLabel->show(); + setError(tr("Error"),tr("Unable to open the Browser, please copy the link to your Browser.")); break; case Flow2Auth::Error: /* Error while getting the access token. (Timeout, or the server did not accept our client credentials */ - _ui.errorLabel->setText(errorString); - _ui.errorLabel->show(); + setError(tr("Error"), errorString); break; case Flow2Auth::LoggedIn: { - _ui.errorLabel->hide(); + _ui.errorSnackbar->hide(); break; } } @@ -105,12 +109,12 @@ void Flow2AuthWidget::slotAuthResult(Flow2Auth::Result r, const QString &errorSt emit authResult(r, errorString, user, appPassword); } -void Flow2AuthWidget::setError(const QString &error) { - if (error.isEmpty()) { - _ui.errorLabel->hide(); +void Flow2AuthWidget::setError(const QString &caption, const QString &message) { + if (message.isEmpty()) { + _ui.errorSnackbar->hide(); } else { - _ui.errorLabel->setText(error); - _ui.errorLabel->show(); + _ui.errorSnackbar->setError(message); + _ui.errorSnackbar->show(); } } @@ -121,8 +125,8 @@ Flow2AuthWidget::~Flow2AuthWidget() { void Flow2AuthWidget::slotOpenBrowser() { - if (_ui.errorLabel) - _ui.errorLabel->hide(); + if (_ui.errorSnackbar) + _ui.errorSnackbar->hide(); if (_asyncAuth) _asyncAuth->openBrowser(); @@ -130,8 +134,8 @@ void Flow2AuthWidget::slotOpenBrowser() void Flow2AuthWidget::slotCopyLinkToClipboard() { - if (_ui.errorLabel) - _ui.errorLabel->hide(); + if (_ui.errorSnackbar) + _ui.errorSnackbar->hide(); if (_asyncAuth) _asyncAuth->copyLinkToClipboard(); @@ -199,6 +203,14 @@ void Flow2AuthWidget::slotStyleChanged() customizeStyle(); } +void Flow2AuthWidget::shrinkTopMarginForText() +{ + _ui.topMarginSpacer->changeSize(20, 30); + _ui.topMarginSpacer->invalidate(); + setMinimumHeight(340); + setMaximumHeight(400); +} + void Flow2AuthWidget::customizeStyle() { setLogo(); @@ -213,10 +225,33 @@ void Flow2AuthWidget::customizeStyle() } _ui.openLinkButton->setText(tr("Open Browser")); + _ui.openLinkButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + _ui.openLinkButton->setMinimumSize(180, 40); _ui.copyLinkButton->setText(tr("Copy Link")); - WizardCommon::customizeHintLabel(_ui.statusLabel); + _ui.mainLayoutVBox->setContentsMargins(32, 0, 32, 0); + _ui.innerLayoutVBox->setSpacing(16); + +#ifdef Q_OS_MAC + _ui.horizontalLayout->setSpacing(32); +#endif + + _ui.statusLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); + + _ui.label->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); + + _ui.label->setText(tr("Switch to your browser to connect your account")); } } // namespace OCC diff --git a/src/gui/wizard/flow2authwidget.h b/src/gui/wizard/flow2authwidget.h index 65c861a04f0dd..5ed884e637fbd 100644 --- a/src/gui/wizard/flow2authwidget.h +++ b/src/gui/wizard/flow2authwidget.h @@ -26,7 +26,8 @@ class Flow2AuthWidget : public QWidget void startAuth(Account *account); void resetAuth(Account *account = nullptr); - void setError(const QString &error); + void setError(const QString &caption, const QString &message); + void shrinkTopMarginForText(); public Q_SLOTS: void slotAuthResult(Flow2Auth::Result, const QString &errorString, const QString &user, const QString &appPassword); diff --git a/src/gui/wizard/flow2authwidget.ui b/src/gui/wizard/flow2authwidget.ui index e98f3c6d5e515..7ab39ab757ad2 100644 --- a/src/gui/wizard/flow2authwidget.ui +++ b/src/gui/wizard/flow2authwidget.ui @@ -1,261 +1,195 @@ - Flow2AuthWidget - - - - 0 - 0 - 597 - 387 - - - - - 0 - 0 - - - - - 500 - 280 - - - - Browser Authentication - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Logo - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 32 - - - - - - - - - 12 - true - - - - Switch to your browser to connect your account - - - Qt::AlignCenter - - - true - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 8 - - - - - - - - Status - - - Qt::AlignCenter - - - 0 - - - - - - - Qt::Vertical - - - - 20 - 32 - - - - - - - - - - - Qt::Vertical - - - - 20 - 64 - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - 0 - 0 + Flow2AuthWidget + + + + 0 + 0 + 580 + 405 + + + + + 0 + 0 - - - - 9 - - - - pbSelectLocalFolder - - - true - - - false - - - - - - - - 0 - 0 - - - - - 9 - - - - pbSelectLocalFolder - - - true - - - false - - - + + + + 580 + 405 + + + + Browser Authentication + + + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 110 + + + + + + + + 0 + + + 0 + + + + + Logo + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 8 + + + + + + + + Switch to your browser to connect your account + + + Qt::AlignCenter + + + true + + + + + + + Status + + + Qt::AlignCenter + + + 0 + + + + + + + An error occurred while connecting. Please try again. + + + + + + + + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Copy Link + + + + + + + Reopen Browser + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 32 + + + + - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - An error occurred while connecting. Please try again. - - - Qt::PlainText - - - Qt::AlignCenter - - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 60 - - - - - - - - + + + + OCC::LinkLabel + QWidget +
      wizard/linklabel.h
      + 1 +
      +
      + +
      diff --git a/src/gui/wizard/owncloudadvancedsetuppage.cpp b/src/gui/wizard/owncloudadvancedsetuppage.cpp index 6a78c8d2661e9..0769a0eae8734 100644 --- a/src/gui/wizard/owncloudadvancedsetuppage.cpp +++ b/src/gui/wizard/owncloudadvancedsetuppage.cpp @@ -14,17 +14,19 @@ #include "QProgressIndicator.h" -#include "wizard/owncloudwizard.h" -#include "wizard/owncloudwizardcommon.h" -#include "wizard/owncloudadvancedsetuppage.h" + #include "buttonstyle.h" #include "account.h" -#include "theme.h" #include "configfile.h" -#include "selectivesyncdialog.h" -#include #include "creds/abstractcredentials.h" +#include "whitelabeltheme.h" #include "networkjobs.h" +#include "selectivesyncdialog.h" +#include "theme.h" +#include "wizard/owncloudadvancedsetuppage.h" #include "wizard/owncloudwizard.h" +#include "wizard/owncloudwizardcommon.h" +#include "SesComponents/syncdirvalidation.h" +#include #ifdef BUILD_FILE_PROVIDER_MODULE #include "gui/macOS/fileprovider.h" @@ -42,15 +44,22 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage(OwncloudWizard *wizard) setupResoultionWidget(); _filePathLabel.reset(new ElidedLabel); + _filePathLabel->setObjectName("filePathLabel"); + _filePathLabel->setWordWrap(true); _filePathLabel->setElideMode(Qt::ElideMiddle); _filePathLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); _filePathLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - _ui.locationsGridLayout->addWidget(_filePathLabel.data(), 3, 3); + _ui.locationsVBox->insertWidget(3, _filePathLabel.data()); _filePathLabel->setTextFormat(Qt::PlainText); _ui.userNameLabel->setTextFormat(Qt::PlainText); _ui.serverAddressLabel->setTextFormat(Qt::PlainText); _ui.localFolderDescriptionLabel->setTextFormat(Qt::PlainText); + _ui.confCheckBoxSize->hide(); + _ui.confSpinBox->hide(); + _ui.confTraillingSizeLabel->hide(); + _ui.wSyncStrategy->removeItem(_ui.horizontalLayout_6); + registerField(QLatin1String("OCSyncFromScratch"), _ui.cbSyncFromScratch); @@ -63,12 +72,12 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage(OwncloudWizard *wizard) setupCustomization(); connect(_ui.pbSelectLocalFolder, &QAbstractButton::clicked, this, &OwncloudAdvancedSetupPage::slotSelectFolder); + _ui.pbSelectLocalFolder->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Secondary)); setButtonText(QWizard::FinishButton, tr("Connect")); if (Theme::instance()->enforceVirtualFilesSyncFolder()) { _ui.rSyncEverything->setDisabled(true); _ui.rSelectiveSync->setDisabled(true); - _ui.bSelectiveSync->setDisabled(true); } connect(_ui.rSyncEverything, &QAbstractButton::clicked, this, &OwncloudAdvancedSetupPage::slotSyncEverythingClicked); @@ -83,7 +92,6 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage(OwncloudWizard *wizard) updateMacOsFileProviderRelatedViews(); #endif }); - connect(_ui.bSelectiveSync, &QAbstractButton::clicked, this, &OwncloudAdvancedSetupPage::slotSelectiveSyncClicked); const auto theme = Theme::instance(); const auto appIcon = theme->applicationIcon(); @@ -92,7 +100,7 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage(OwncloudWizard *wizard) _ui.lServerIcon->setPixmap(appIcon.pixmap(appIconSize)); if (theme->wizardHideExternalStorageConfirmationCheckbox()) { - _ui.confCheckBoxExternal->hide(); + //_ui.confCheckBoxExternal->hide(); // commented out for https://bmjira.atlassian.net/browse/SES-282 } if (theme->wizardHideFolderSizeLimitCheckbox()) { _ui.confCheckBoxSize->hide(); @@ -203,9 +211,9 @@ void OwncloudAdvancedSetupPage::initializePage() auto newFolderLimit = cfgFile.newBigFolderSizeLimit(); _ui.confCheckBoxSize->setChecked(newFolderLimit.first); _ui.confSpinBox->setValue(newFolderLimit.second); - _ui.confCheckBoxExternal->setChecked(cfgFile.confirmExternalStorage()); + //_ui.confCheckBoxExternal->setChecked(cfgFile.confirmExternalStorage()); // commented out for https://bmjira.atlassian.net/browse/SES-282 - fetchUserAvatar(); + SetAvatarIcon(); setUserInformation(); customizeStyle(); @@ -228,6 +236,12 @@ void OwncloudAdvancedSetupPage::initializePage() } } +void OwncloudAdvancedSetupPage::SetAvatarIcon() +{ + const auto icon = QIcon(WLTheme.roundAvatarIcon()); + _ui.lServerIcon->setPixmap(icon.pixmap(32)); +} + void OwncloudAdvancedSetupPage::fetchUserAvatar() { // Reset user avatar @@ -340,7 +354,6 @@ void OwncloudAdvancedSetupPage::updateStatus() #endif _ui.syncModeLabel->setText(t); - _ui.syncModeLabel->setFixedHeight(_ui.syncModeLabel->sizeHint().height()); qint64 rSpace = _ui.rSyncEverything->isChecked() ? _rSize : _rSelectedSize; @@ -358,6 +371,7 @@ void OwncloudAdvancedSetupPage::setResolutionGuiVisible(bool value) _ui.syncModeLabel->setVisible(value); _ui.rKeepLocal->setVisible(value); _ui.cbSyncFromScratch->setVisible(value); + _ocWizard->adjustSize(); } /* obsolete */ @@ -392,7 +406,6 @@ QUrl OwncloudAdvancedSetupPage::serverUrl() const int OwncloudAdvancedSetupPage::nextId() const { - // tells the caller that this is the last dialog page return -1; } @@ -439,12 +452,17 @@ bool OwncloudAdvancedSetupPage::validatePage() _checking = true; startSpinner(); emit completeChanged(); - + ConfigFile cfgFile; if (_ui.rSyncEverything->isChecked()) { ConfigFile cfgFile; cfgFile.setNewBigFolderSizeLimit(_ui.confCheckBoxSize->isChecked(), - _ui.confSpinBox->value()); - cfgFile.setConfirmExternalStorage(_ui.confCheckBoxExternal->isChecked()); + _ui.confCheckBoxSize->isChecked() ? _ui.confSpinBox->value() : -1); + //cfgFile.setConfirmExternalStorage(_ui.confCheckBoxExternal->isChecked()); // commented out for https://bmjira.atlassian.net/browse/SES-282 + } + else + { + cfgFile.setNewBigFolderSizeLimit(false, -1); + cfgFile.setConfirmExternalStorage(false); } emit createLocalAndRemoteFolders(localFolder(), _remoteFolder); @@ -466,6 +484,7 @@ void OwncloudAdvancedSetupPage::setErrorString(const QString &err) _ui.errorLabel->setVisible(true); _ui.errorLabel->setText(err); } + _ocWizard->adjustSize(); _checking = false; emit completeChanged(); } @@ -488,6 +507,11 @@ void OwncloudAdvancedSetupPage::setRemoteFolder(const QString &remoteFolder) void OwncloudAdvancedSetupPage::slotSelectFolder() { QString dir = QFileDialog::getExistingDirectory(nullptr, tr("Local Sync Folder"), QDir::homePath()); + SyncDirValidator syncDirValidator(dir); + if (!syncDirValidator.isValidDir()) { + setErrorString(syncDirValidator.message()); + return; + } if (!dir.isEmpty()) { // TODO: remove when UX decision is made refreshVirtualFilesAvailibility(dir); @@ -507,6 +531,9 @@ void OwncloudAdvancedSetupPage::slotSelectiveSyncClicked() auto *dlg = new SelectiveSyncDialog(acc, _remoteFolder, _selectiveSyncBlacklist, this); dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->setStyleSheet(QStringLiteral("QDialog { background-color: %1; } QWidget { background-color: %1; }").arg( + WLTheme.dialogBackgroundColor())); + connect(dlg, &SelectiveSyncDialog::finished, this, [this, dlg]{ const int result = dlg->result(); bool updateBlacklist = false; @@ -518,6 +545,15 @@ void OwncloudAdvancedSetupPage::slotSelectiveSyncClicked() if (result == QDialog::Accepted) { _selectiveSyncBlacklist = dlg->createBlackList(); updateBlacklist = true; + // commented out for https://bmjira.atlassian.net/browse/SES-282 + // _ui.confCheckBoxExternal->setStyleSheet(WLTheme.fontConfigurationCss( + // WLTheme.settingsFont(), + // WLTheme.settingsTextSize(), + // WLTheme.settingsTextWeight(), + // WLTheme.loginWizardFontLightGrey() + // )); + + _ui.confCheckBoxSize->setDisabled(true); } else if (result == QDialog::Rejected && _selectiveSyncBlacklist == QStringList("/")) { _selectiveSyncBlacklist = dlg->oldBlackList(); updateBlacklist = true; @@ -545,6 +581,8 @@ void OwncloudAdvancedSetupPage::slotSelectiveSyncClicked() }); dlg->open(); + + } void OwncloudAdvancedSetupPage::slotVirtualFileSyncClicked() @@ -556,6 +594,15 @@ void OwncloudAdvancedSetupPage::slotVirtualFileSyncClicked() setRadioChecked(_ui.rVirtualFileSync); }); } +// commented out for https://bmjira.atlassian.net/browse/SES-282 + // _ui.confCheckBoxExternal->setStyleSheet(WLTheme.fontConfigurationCss( + // WLTheme.settingsFont(), + // WLTheme.settingsTextSize(), + // WLTheme.settingsTextWeight(), + // WLTheme.loginWizardFontLightGrey() + // )); + + _ui.confCheckBoxSize->setDisabled(true); } void OwncloudAdvancedSetupPage::slotSyncEverythingClicked() @@ -566,8 +613,17 @@ void OwncloudAdvancedSetupPage::slotSyncEverythingClicked() QString errorStr = checkLocalSpace(_rSize); setErrorString(errorStr); + +// commented out for https://bmjira.atlassian.net/browse/SES-282 + // _ui.confCheckBoxExternal->setStyleSheet(WLTheme.fontConfigurationCss( + // WLTheme.settingsFont(), + // WLTheme.settingsTextSize(), + // WLTheme.settingsTextWeight(), + // WLTheme.titleColor() + // )); } + void OwncloudAdvancedSetupPage::slotQuotaRetrieved(const QVariantMap &result) { _rSize = result["size"].toDouble(); @@ -616,16 +672,105 @@ void OwncloudAdvancedSetupPage::customizeStyle() } } + _ocWizard->setMinimumSize(QSize(680, 515)); + _ocWizard->setMaximumSize(QSize(680, 600)); + + _ui.mainHBox->setContentsMargins(0, 0, 0, 0); + _ui.wSyncStrategySynchronizeEverything->setContentsMargins(0, 0, 0, 0); + _ui.lVirtualFileSync->setContentsMargins(0, 0, 0, 0); + //_ui.horizontalLayout_8->setContentsMargins(32, 0, 0, 0); // commented out for https://bmjira.atlassian.net/browse/SES-282 + _ui.horizontalLayout_10->setContentsMargins(0, 8, 0, 0); + + _ui.wSyncStrategy->setSpacing(16); + _ui.wSyncStrategy->setContentsMargins(0, 0, 0, 0); + _ui.verticalLayout->setSpacing(0); + _ui.pbSelectLocalFolder->setMinimumSize(0, 40); + + _ui.serverVBox->setAlignment(Qt::AlignTop); + _ui.serverVBox->setSpacing(5); + _ui.serverVBox->setContentsMargins(0, 0, 0, 0); + + _ui.arrowVBox->setSpacing(0); + _ui.arrowVBox->setContentsMargins(0, 0, 0, 0); + _ui.arrowVBox->setAlignment(Qt::AlignTop); + + _ui.locationsVBox->setAlignment(Qt::AlignTop); + _ui.locationsVBox->setContentsMargins(0, 0, 0, 0); + _ui.locationsVBox->setSpacing(5); + + _ui.resolutionWidgetLayout->setContentsMargins(0, 0, 0, 0); + styleSyncLogo(); styleLocalFolderLabel(); + + setStyleSheet( + "QRadioButton {" + + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + "} QCheckBox {" + + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + "}" + ); + + _ui.userNameLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); + + _ui.serverAddressLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.loginWizardFontGrey() + )); + + _ui.localFolderDescriptionLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + )); + + _filePathLabel->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.loginWizardFontGrey() + )); + + _ui.lFreeSpace->setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.loginWizardFontGrey() + )); + + #ifdef Q_OS_MAC + _ui.syncModeLabel->setStyleSheet( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor() + ) + ); + #endif + } void OwncloudAdvancedSetupPage::styleLocalFolderLabel() { - const auto backgroundColor = palette().window().color(); - const auto folderIconFileName = Theme::instance()->isBranded() ? Theme::hidpiFileName("folder.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/folder.png"); - _ui.lLocal->setPixmap(folderIconFileName); + const auto icon = QIcon(WLTheme.folderIcon("qtwidget")); + _ui.lLocal->setPixmap(icon.pixmap(32)); } void OwncloudAdvancedSetupPage::setRadioChecked(QRadioButton *radio) @@ -666,8 +811,10 @@ void OwncloudAdvancedSetupPage::updateMacOsFileProviderRelatedViews() void OwncloudAdvancedSetupPage::styleSyncLogo() { - const auto syncArrowIcon = Theme::createColorAwareIcon(QLatin1String(":/client/theme/sync-arrow.svg"), palette()); - _ui.syncLogoLabel->setPixmap(syncArrowIcon.pixmap(QSize(50, 50))); + const auto syncArrowIcon = QIcon(WLTheme.syncArrows()); + // const auto syncArrowIcon = Theme::createColorAwareIcon(QLatin1String(":/client/theme/sync-arrow.svg"), palette()); + _ui.syncLogoLabel->setPixmap(syncArrowIcon.pixmap(QSize(32,32))); + _ui.syncLogoLabel->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); } void OwncloudAdvancedSetupPage::setupResoultionWidget() diff --git a/src/gui/wizard/owncloudadvancedsetuppage.h b/src/gui/wizard/owncloudadvancedsetuppage.h index 595d57140ce26..1921c7e68ed76 100644 --- a/src/gui/wizard/owncloudadvancedsetuppage.h +++ b/src/gui/wizard/owncloudadvancedsetuppage.h @@ -79,6 +79,7 @@ private slots: void setResolutionGuiVisible(bool value); void setupResoultionWidget(); void fetchUserAvatar(); + void SetAvatarIcon(); void setUserInformation(); // TODO: remove when UX decision is made diff --git a/src/gui/wizard/owncloudadvancedsetuppage.ui b/src/gui/wizard/owncloudadvancedsetuppage.ui index 5f51a2d824e10..39a892bf57f84 100644 --- a/src/gui/wizard/owncloudadvancedsetuppage.ui +++ b/src/gui/wizard/owncloudadvancedsetuppage.ui @@ -7,7 +7,7 @@ 0 0 912 - 633 + 635 @@ -19,14 +19,49 @@ Form - - + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 32 + 20 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 52 + + + + + + true + 0 @@ -48,612 +83,627 @@ - + QLayout::SetFixedSize - - - - Avatar + + 65 + + + 65 + + + + + QLayout::SetFixedSize - - Qt::PlainText + + + + + 0 + 0 + + + + Avatar + + + Qt::PlainText + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 8 + + + + + + + + + 0 + 0 + + + + Username + + + Qt::PlainText + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + Server address + + + Qt::PlainText + + + Qt::AlignHCenter|Qt::AlignTop + + + true + + + + + + + + + QLayout::SetFixedSize - - Qt::AlignCenter + + + + + 0 + 0 + + + + Sync Logo + + + Qt::PlainText + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + + + + QLayout::SetFixedSize - + + + + + 0 + 0 + + + + + 0 + 32 + + + + &Local Folder + + + Qt::PlainText + + + Qt::AlignCenter + + + pbSelectLocalFolder + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 8 + + + + + + + + + 0 + 0 + + + + + true + + + + Local Folder + + + Qt::PlainText + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + Free space + + + Qt::PlainText + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 4 + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 40 + 16 + + + + + + + + + 0 + 0 + + + + Choose different folder + + + true + + + false + + + + + + + + + + + + 0 + 4 + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 32 + + + + + + + + + + + + + 0 + 0 + + + + Synchronize everything from server + + + true + + + + + + + Size + + + Qt::PlainText + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 20 + 20 + + + + + + + + Ask before syncing folders larger than + + + + + + + + 0 + 0 + + + + Qt::StrongFocus + + + 999999 + + + 99 + + + + + + + MB + + + Qt::PlainText + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - + + + + + 8 + + + + + + 0 + 0 + + + + Choose what to sync + + + false + + + + + + + TextLabel + + + Qt::PlainText + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 0 + 0 + + + + Use virtual files !PLACEHOLDER! + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 0 + 4 + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 0 + 16 + + + + + + + + 6 + + + QLayout::SetMinimumSize + + + 0 + + + 2 + + + 0 + + + 0 + + + - + 0 0 - - &Local Folder - - - Qt::PlainText - - - Qt::AlignCenter - - - pbSelectLocalFolder - - - - - + 9 true - - Username - - - Qt::PlainText - - - Qt::AlignCenter - - - - - - - - true - + + 1 - Local Folder + Status message - Qt::PlainText + Qt::AutoText - Qt::AlignCenter + Qt::AlignLeading + + + true - - + + - + 0 0 - Choose different folder + Keep local data - + true - - false - - - + + - + 0 0 + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + - Free space - - - Qt::PlainText - - - Qt::AlignCenter - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Server address - - - Qt::PlainText - - - Qt::AlignHCenter|Qt::AlignTop + Erase local folder and start a clean sync - + true - - - - Sync Logo - - - Qt::PlainText - - - Qt::AlignCenter - - - - - - QLayout::SetMinimumSize + + + + 0 + 4 + - - 0 + + Qt::Vertical - - 0 + + QSizePolicy::Preferred - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0 - - - 0 - - - - - 0 - - - 0 - - - - - 0 - - - - - Synchronize everything from server - - - true - - - - - - - Size - - - Qt::PlainText - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - 0 - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 20 - 20 - - - - - - - - Ask before syncing folders larger than - - - - - - - - 0 - 0 - - - - Qt::StrongFocus - - - 999999 - - - 99 - - - - - - - MB - - - Qt::PlainText - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - 0 - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 20 - 20 - - - - - - - - Ask before syncing external storages - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - 0 - - - - - - 0 - 0 - - - - - - - false - - - - - - - Choose what to sync - - - true - - - false - - - - - - - TextLabel - - - Qt::PlainText - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 0 - 0 - - - - Use virtual files !PLACEHOLDER! - - - false - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 0 - 0 - - - - - 6 - - - QLayout::SetMinimumSize - - - 0 - - - 2 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 9 - true - - - - 1 - - - Status message - - - Qt::AutoText - - - Qt::AlignCenter - - - false - - - - - - - - 0 - 0 - - - - Keep local data - - - true - - - - - - - - 0 - 0 - - - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - - - Erase local folder and start a clean sync - - - true - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + + + 0 + 16 + + + @@ -677,6 +727,22 @@ + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 32 + 20 + + + + @@ -729,7 +795,7 @@ - + diff --git a/src/gui/wizard/owncloudconnectionmethoddialog.cpp b/src/gui/wizard/owncloudconnectionmethoddialog.cpp index 89a8d1fc26dde..37caf1cfdc399 100644 --- a/src/gui/wizard/owncloudconnectionmethoddialog.cpp +++ b/src/gui/wizard/owncloudconnectionmethoddialog.cpp @@ -13,6 +13,7 @@ OwncloudConnectionMethodDialog::OwncloudConnectionMethodDialog(QWidget *parent) , ui(new Ui::OwncloudConnectionMethodDialog) { ui->setupUi(this); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); connect(ui->btnNoTLS, &QAbstractButton::clicked, this, &OwncloudConnectionMethodDialog::returnNoTLS); connect(ui->btnClientSideTLS, &QAbstractButton::clicked, this, &OwncloudConnectionMethodDialog::returnClientSideTLS); diff --git a/src/gui/wizard/owncloudsetupnocredspage.ui b/src/gui/wizard/owncloudsetupnocredspage.ui index b4c9103164fcb..52c96d8ca1b26 100644 --- a/src/gui/wizard/owncloudsetupnocredspage.ui +++ b/src/gui/wizard/owncloudsetupnocredspage.ui @@ -67,13 +67,13 @@ - + diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp index 9874029d9b466..1fb6cf1f8a704 100644 --- a/src/gui/wizard/owncloudsetuppage.cpp +++ b/src/gui/wizard/owncloudsetuppage.cpp @@ -85,7 +85,9 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent) void OwncloudSetupPage::setLogo() { + #ifndef IONOS_BUILD _ui.logoLabel->setPixmap(Theme::instance()->wizardApplicationLogo()); + #endif } void OwncloudSetupPage::setupServerAddressDescriptionLabel() @@ -311,7 +313,11 @@ bool OwncloudSetupPage::validatePage() const auto urlString = url(); const auto qurl = QUrl::fromUserInput(urlString); if (!qurl.isValid() || qurl.host().isEmpty()) { + #ifndef IONOS_BUILD setErrorString(tr("Server address does not seem to be valid"), false); + #else + setConnectionError(tr("Server address does not seem to be valid"), false); + #endif return false; } @@ -338,11 +344,20 @@ void OwncloudSetupPage::setAuthType(DetermineAuthTypeJob::AuthType type) stopSpinner(); } +void OwncloudSetupPage::setConnectionError(const QString &err, bool retryHTTPonly) +{ + this->setVisible(true); + _ocWizard->button(QWizard::BackButton)->setHidden(false); + setErrorString(err, retryHTTPonly); +} + void OwncloudSetupPage::setErrorString(const QString &err, bool retryHTTPonly) { if (err.isEmpty()) { _ui.errorLabel->setVisible(false); } else { + // SES-84: Should only be shown in the Managed Cloud Client + #ifndef IONOS_BUILD if (retryHTTPonly) { const auto urlString = url(); auto url = QUrl::fromUserInput(urlString); @@ -374,6 +389,7 @@ void OwncloudSetupPage::setErrorString(const QString &err, bool retryHTTPonly) } } } + #endif _ui.errorLabel->setVisible(true); _ui.errorLabel->setText(err); @@ -437,7 +453,9 @@ void OwncloudSetupPage::slotStyleChanged() void OwncloudSetupPage::customizeStyle() { + #ifndef IONOS_BUILD setLogo(); + #endif if (_progressIndi) { const auto isDarkBackground = Theme::isDarkColor(palette().window().color()); diff --git a/src/gui/wizard/owncloudsetuppage.h b/src/gui/wizard/owncloudsetuppage.h index 549487064ada3..fa4642daafaee 100644 --- a/src/gui/wizard/owncloudsetuppage.h +++ b/src/gui/wizard/owncloudsetuppage.h @@ -47,6 +47,7 @@ class OwncloudSetupPage : public QWizardPage public slots: void setErrorString(const QString &, bool retryHTTPonly); + void setConnectionError(const QString &, bool retryHTTPonly); void startSpinner(); void stopSpinner(); void slotCertificateAccepted(); diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp index 572d1f10f8bd2..83f0584dc71fd 100644 --- a/src/gui/wizard/owncloudwizard.cpp +++ b/src/gui/wizard/owncloudwizard.cpp @@ -14,14 +14,18 @@ #include "foregroundbackground_interface.h" #endif +#include "whitelabeltheme.h" +#include "wizard/flow2authcredspage.h" +#include "wizard/owncloudadvancedsetuppage.h" +#include "wizard/owncloudhttpcredspage.h" +#include "wizard/owncloudsetuppage.h" #include "wizard/owncloudwizard.h" +#include "wizard/webviewpage.h" #include "wizard/welcomepage.h" -#include "wizard/owncloudsetuppage.h" -#include "wizard/owncloudhttpcredspage.h" +#include "wizard/dataprotectionpage.h" +#include "wizard/dataprotectionsettingspage.h" #include "wizard/termsofservicewizardpage.h" -#include "wizard/owncloudadvancedsetuppage.h" -#include "wizard/webviewpage.h" -#include "wizard/flow2authcredspage.h" + #include "common/vfs.h" @@ -51,6 +55,8 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) , _flow2CredsPage(new Flow2AuthCredsPage) , _termsOfServicePage(new TermsOfServiceWizardPage) , _advancedSetupPage(new OwncloudAdvancedSetupPage(this)) + , _dataProtectionPage(new DataProtectionPage(this)) + , _dataProtectionSettingsPage(new DataProtectionSettingsPage(this)) #ifdef WITH_WEBENGINE , _webViewPage(new WebViewPage(this)) #else // WITH_WEBENGINE @@ -69,7 +75,10 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) setPage(WizardCommon::Page_HttpCreds, _httpCredsPage); setPage(WizardCommon::Page_Flow2AuthCreds, _flow2CredsPage); setPage(WizardCommon::Page_TermsOfService, _termsOfServicePage); + setPage(WizardCommon::Page_DataProtection, _dataProtectionPage); + setPage(WizardCommon::Page_DataProtectionSettings, _dataProtectionSettingsPage); setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage); + #ifdef WITH_WEBENGINE if (!useFlow2()) { setPage(WizardCommon::Page_WebView, _webViewPage); @@ -127,6 +136,9 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) adjustWizardSize(); centerWindow(); + + // Set focus policy to prevent initial focus on the button + setFocusPolicy(Qt::StrongFocus); } void OwncloudWizard::centerWindow() @@ -141,20 +153,9 @@ void OwncloudWizard::centerWindow() wizardWindow->move(newWindowPosition); } - void OwncloudWizard::adjustWizardSize() { - const auto pageSizes = calculateWizardPageSizes(); - const auto currentPageIndex = currentId(); - - // If we can, just use the size of the current page - if(currentPageIndex > -1 && currentPageIndex < pageSizes.count()) { - resize(pageSizes.at(currentPageIndex)); - return; - } - - // As a backup, resize to largest page - resize(calculateLargestSizeOfWizardPages(pageSizes)); + setFixedSize(QSize(626, 460)); } QList OwncloudWizard::calculateWizardPageSizes() const @@ -363,7 +364,11 @@ void OwncloudWizard::slotCurrentPageChanged(int id) #endif // WITH_WEBENGINE id == WizardCommon::Page_Flow2AuthCreds || id == WizardCommon::Page_TermsOfService) { - setButtonLayout({QWizard::BackButton, QWizard::Stretch}); + setButtonLayout({ QWizard::BackButton, QWizard::Stretch }); + #ifdef APPLICATION_SERVER_URL_ENFORCE + button(QWizard::BackButton)->setHidden(true); + #endif + } else if (id == WizardCommon::Page_AdvancedSetup) { setButtonLayout({QWizard::CustomButton2, QWizard::Stretch, QWizard::CustomButton1, QWizard::FinishButton}); setNextButtonAsDefault(); @@ -374,6 +379,10 @@ void OwncloudWizard::slotCurrentPageChanged(int id) setButtonLayout({QWizard::BackButton, QWizard::Stretch, QWizard::CustomButton3, QWizard::NextButton}); } setNextButtonAsDefault(); + } else if (id == WizardCommon::Page_DataProtection || + id == WizardCommon::Page_DataProtectionSettings) { + button(QWizard::BackButton)->setHidden(true); + button(QWizard::NextButton)->setHidden(true); } else { setButtonLayout({QWizard::BackButton, QWizard::Stretch, QWizard::NextButton}); setNextButtonAsDefault(); @@ -381,6 +390,11 @@ void OwncloudWizard::slotCurrentPageChanged(int id) if (id == WizardCommon::Page_ServerSetup) { emit clearPendingRequests(); + #ifdef APPLICATION_SERVER_URL_ENFORCE + _setupPage->setServerUrl(APPLICATION_SERVER_URL); + _setupPage->initializePage(); + button(QWizard::BackButton)->setHidden(true); + #endif } if (id == WizardCommon::Page_AdvancedSetup && _credentialsPage == _flow2CredsPage) { @@ -402,7 +416,7 @@ void OwncloudWizard::displayError(const QString &msg, bool retryHTTPonly) break; case WizardCommon::Page_ServerSetup: - _setupPage->setErrorString(msg, retryHTTPonly); + _setupPage->setConnectionError(msg, retryHTTPonly); break; case WizardCommon::Page_HttpCreds: @@ -478,8 +492,14 @@ void OwncloudWizard::customizeStyle() // Set background colors auto wizardPalette = palette(); - const auto backgroundColor = wizardPalette.color(QPalette::Window); + const auto backgroundColor = QColor(WLTheme.dialogBackgroundColor()); + + // Set Color of upper part wizardPalette.setColor(QPalette::Base, backgroundColor); + + // Set Color of lower part + wizardPalette.setColor(backgroundRole(), backgroundColor); + // Set separator color wizardPalette.setColor(QPalette::Mid, backgroundColor); diff --git a/src/gui/wizard/owncloudwizard.h b/src/gui/wizard/owncloudwizard.h index 3b1fa07984e3d..b074a840029da 100644 --- a/src/gui/wizard/owncloudwizard.h +++ b/src/gui/wizard/owncloudwizard.h @@ -27,6 +27,8 @@ class OwncloudSetupPage; class OwncloudHttpCredsPage; class TermsOfServiceWizardPage; class OwncloudAdvancedSetupPage; +class DataProtectionPage; +class DataProtectionSettingsPage; class OwncloudWizardResultPage; class AbstractCredentials; class AbstractCredentialsWizardPage; @@ -126,6 +128,8 @@ public slots: Flow2AuthCredsPage *_flow2CredsPage = nullptr; TermsOfServiceWizardPage *_termsOfServicePage = nullptr; OwncloudAdvancedSetupPage *_advancedSetupPage = nullptr; + DataProtectionPage *_dataProtectionPage = nullptr; + DataProtectionSettingsPage *_dataProtectionSettingsPage = nullptr; OwncloudWizardResultPage *_resultPage = nullptr; AbstractCredentialsWizardPage *_credentialsPage = nullptr; WebViewPage*_webViewPage = nullptr; diff --git a/src/gui/wizard/owncloudwizardcommon.h b/src/gui/wizard/owncloudwizardcommon.h index 0d809ad0549db..59453e27a70e9 100644 --- a/src/gui/wizard/owncloudwizardcommon.h +++ b/src/gui/wizard/owncloudwizardcommon.h @@ -38,6 +38,8 @@ namespace WizardCommon { Page_ServerSetup, Page_HttpCreds, Page_Flow2AuthCreds, + Page_DataProtection, + Page_DataProtectionSettings, #ifdef WITH_WEBENGINE Page_WebView, #endif // WITH_WEBENGINE diff --git a/src/gui/wizard/slideshow.cpp b/src/gui/wizard/slideshow.cpp index 9540657b8d971..c9be713699bba 100644 --- a/src/gui/wizard/slideshow.cpp +++ b/src/gui/wizard/slideshow.cpp @@ -4,6 +4,8 @@ */ #include "slideshow.h" +#include "whitelabeltheme.h" + #include #include #include @@ -12,14 +14,19 @@ namespace OCC { -static const int Spacing = 6; +static const int Spacing = WLTheme.LoginPageSpacer(); static const int SlideDuration = 1000; static const int SlideDistance = 400; SlideShow::SlideShow(QWidget *parent) : QWidget(parent) { setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - setStyleSheet(QStringLiteral("font: bold 18pt")); + setStyleSheet(WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.onboardingTitle(), + WLTheme.settingsTitleWeight400(), + WLTheme.titleColor() + )); } void SlideShow::addSlide(const QPixmap &pixmap, const QString &label) @@ -181,7 +188,7 @@ void SlideShow::maybeRestartTimer() } void SlideShow::drawSlide(QPainter *painter, int index) -{ +{ const auto label = _labels.value(index); const auto labelRect = style()->itemTextRect(fontMetrics(), rect(), diff --git a/src/gui/wizard/welcomepage.cpp b/src/gui/wizard/welcomepage.cpp index d8b67b75b7dde..5d0bfbb461908 100644 --- a/src/gui/wizard/welcomepage.cpp +++ b/src/gui/wizard/welcomepage.cpp @@ -4,11 +4,12 @@ */ #include "welcomepage.h" +#include "buttonstyle.h" #include "guiutility.h" #include "theme.h" +#include "ui_welcomepage.h" #include "wizard/owncloudwizard.h" #include "wizard/slideshow.h" -#include "ui_welcomepage.h" namespace OCC { @@ -38,36 +39,29 @@ void WelcomePage::initializePage() void WelcomePage::setLoginButtonDefault() { +#ifdef Q_OS_WIN _ui->loginButton->setDefault(true); +#endif _ui->loginButton->setFocus(); } void WelcomePage::styleSlideShow() { - const auto theme = Theme::instance(); - const auto backgroundColor = palette().window().color(); - - const auto wizardNextcloudIconFileName = theme->isBranded() ? Theme::hidpiFileName("wizard-nextcloud.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/wizard-nextcloud.png"); - const auto wizardFilesIconFileName = theme->isBranded() ? Theme::hidpiFileName("wizard-files.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/wizard-files.png"); - const auto wizardGroupwareIconFileName = theme->isBranded() ? Theme::hidpiFileName("wizard-groupware.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/wizard-groupware.png"); - const auto wizardTalkIconFileName = theme->isBranded() ? Theme::hidpiFileName("wizard-talk.png", backgroundColor) - : Theme::hidpiFileName(":/client/theme/colored/wizard-talk.png"); - - _ui->slideShow->addSlide(wizardNextcloudIconFileName, tr("Keep your data secure and under your control")); - _ui->slideShow->addSlide(wizardFilesIconFileName, tr("Secure collaboration & file exchange")); - _ui->slideShow->addSlide(wizardGroupwareIconFileName, tr("Easy-to-use web mail, calendaring & contacts")); - _ui->slideShow->addSlide(wizardTalkIconFileName, tr("Screensharing, online meetings & web conferences")); - - const auto isDarkBackground = Theme::isDarkColor(backgroundColor); - _ui->slideShowNextButton->setIcon(theme->uiThemeIcon(QStringLiteral("control-next.svg"), isDarkBackground)); - _ui->slideShowPreviousButton->setIcon(theme->uiThemeIcon(QStringLiteral("control-prev.svg"), isDarkBackground)); + auto WhitelabelLogoFileName = QString(); + +#if defined(IONOS_WL_BUILD) + WhitelabelLogoFileName = Theme::hidpiFileName(":/client/theme/colored/IONOS_logo_w_suffix_frontend.png"); +#else defined(STRATO_WL_BUILD) + WhitelabelLogoFileName = Theme::hidpiFileName(":/client/theme/colored/STRATO_logo_w_suffix_frontend.png"); +#endif + + _ui->slideShow->addSlide(WhitelabelLogoFileName, tr("Keep your data secure and under your control")); } void WelcomePage::setupSlideShow() { + _ui->slideShowNextButton->hide(); + _ui->slideShowPreviousButton->hide(); connect(_ui->slideShow, &SlideShow::clicked, _ui->slideShow, &SlideShow::stopShow); connect(_ui->slideShowNextButton, &QPushButton::clicked, _ui->slideShow, &SlideShow::nextSlide); connect(_ui->slideShowPreviousButton, &QPushButton::clicked, _ui->slideShow, &SlideShow::prevSlide); @@ -75,14 +69,16 @@ void WelcomePage::setupSlideShow() void WelcomePage::setupLoginButton() { + _ui->loginButton->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); connect(_ui->loginButton, &QPushButton::clicked, this, [this](bool /*checked*/) { _nextPage = WizardCommon::Page_ServerSetup; - _ocWizard->next(); + _ocWizard->next(); }); } void WelcomePage::setupCreateAccountButton() { + _ui->createAccountButton->hide(); #ifdef WITH_WEBENGINE connect(_ui->createAccountButton, &QPushButton::clicked, this, [this](bool /*checked*/) { _ocWizard->setRegistration(true); @@ -99,8 +95,9 @@ void WelcomePage::setupCreateAccountButton() void WelcomePage::setupHostYourOwnServerLabel() { + _ui->hostYourOwnServerLabel->hide(); _ui->hostYourOwnServerLabel->setText(tr("Host your own server")); - _ui->hostYourOwnServerLabel->setAlignment(Qt::AlignCenter); + _ui->hostYourOwnServerLabel->setAlignment(Qt::AlignCenter); _ui->hostYourOwnServerLabel->setUrl(QUrl("https://docs.nextcloud.com/server/latest/admin_manual/installation/#installation")); } @@ -111,6 +108,8 @@ int WelcomePage::nextId() const void WelcomePage::customizeStyle() { + _ocWizard->setFixedSize(626, 460); + _ui->mainHbox->setContentsMargins(0, 0, 0, 0); styleSlideShow(); } } diff --git a/src/gui/wizard/welcomepage.ui b/src/gui/wizard/welcomepage.ui index e2e920aa315d3..123e5065b38b8 100644 --- a/src/gui/wizard/welcomepage.ui +++ b/src/gui/wizard/welcomepage.ui @@ -1,229 +1,298 @@ - OCC::WelcomePage - - - - 0 - 0 - 500 - 500 - - - - - 0 - 0 - - - - Form - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 80 - - - - - - - - 0 - - - - - - 40 - 16777215 - - - - - - - false - - - false - - - true - - - - - - - - 12 - 75 - true - - - - - - - - - 40 - 16777215 - - - - - - - false - - - false - - - true - - - - - - - - - 0 - - - 0 - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0 - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Log in - - - true - - - true - - - - - - - Sign up with provider - - - true - - - false - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - OCC::SlideShow - QWidget -
      wizard/slideshow.h
      -
      - - OCC::LinkLabel - QWidget -
      wizard/linklabel.h
      - 1 -
      -
      - - + OCC::WelcomePage + + + + 0 + 0 + 626 + 450 + + + + + 0 + 0 + + + + Form + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 118 + 20 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 90 + + + + + + + + 0 + + + + + + 40 + 16777215 + + + + + + + false + + + false + + + true + + + + + + + + 12 + true + + + + + -1 + -1 + + + + + + + + + 40 + 16777215 + + + + + + + false + + + false + + + true + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 90 + + + + + + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + 10 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 80 + + + + + + + + Log in + + + true + + + true + + + + + + + Sign up with provider + + + true + + + false + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 48 + + + + + + + + + + Qt::Horizontal + + + + 40 + 0 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 0 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 118 + 20 + + + + + + + + + OCC::SlideShow + QWidget +
      wizard/slideshow.h
      +
      + + OCC::LinkLabel + QWidget +
      wizard/linklabel.h
      + 1 +
      +
      + +
      diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp index 9e49f1d5d9f1d..d4af4830eb724 100644 --- a/src/libsync/account.cpp +++ b/src/libsync/account.cpp @@ -46,6 +46,8 @@ #include #include #include +#include +#include #include @@ -233,9 +235,17 @@ QString Account::prettyName() const return name; } +QString Account::eliedName(const int size) const +{ + QFontMetrics fontMetrics(QApplication::font()); + QString elidedName = fontMetrics.elidedText(prettyName(), Qt::ElideMiddle, size); + return elidedName; +} + QColor Account::serverColor() const { - return _serverColor; + // SES-50 Hardcoded. Old value was _serverColor; + return QColor("#718095"); } QColor Account::headerColor() const @@ -245,7 +255,8 @@ QColor Account::headerColor() const QColor Account::headerTextColor() const { - return _serverTextColor; + // SES-50 Hardcoded to Black. Old value was _serverTextColor; + return QColor("black"); } QColor Account::accentColor() const @@ -257,7 +268,8 @@ QColor Account::accentColor() const darknessAdjustment *= darknessAdjustment; // Square the value to pronounce the darkness more in lighter colours constexpr auto baseAdjustment = 125; const auto adjusted = Theme::isDarkColor(accentColor) ? accentColor : accentColor.darker(baseAdjustment + darknessAdjustment); - return adjusted; + // SES-50 Hardcoded. Old value was adjusted; + return QColor("#718095"); } QString Account::id() const diff --git a/src/libsync/account.h b/src/libsync/account.h index 3303625a4faec..75e71c8576f5d 100644 --- a/src/libsync/account.h +++ b/src/libsync/account.h @@ -146,6 +146,7 @@ class OWNCLOUDSYNC_EXPORT Account : public QObject /// e.g. the actual name of the user (John Doe). If this cannot be /// provided, defaults to davUser (e.g. johndoe) [[nodiscard]] QString prettyName() const; + [[nodiscard]] QString eliedName(const int size) const; [[nodiscard]] QColor accentColor() const; [[nodiscard]] QColor headerColor() const; diff --git a/src/libsync/clientsideencryptionjobs.cpp b/src/libsync/clientsideencryptionjobs.cpp index 5db81a213d263..f5dc6c2ac2e4e 100644 --- a/src/libsync/clientsideencryptionjobs.cpp +++ b/src/libsync/clientsideencryptionjobs.cpp @@ -27,8 +27,8 @@ Q_LOGGING_CATEGORY(lcSignPublicKeyApiJob, "nextcloud.sync.networkjob.sendcsr", Q Q_LOGGING_CATEGORY(lcStorePublicKeyApiJob, "nextcloud.sync.networkjob.storepublickey", QtInfoMsg) Q_LOGGING_CATEGORY(lcStorePrivateKeyApiJob, "nextcloud.sync.networkjob.storeprivatekey", QtInfoMsg) Q_LOGGING_CATEGORY(lcCseJob, "nextcloud.sync.networkjob.clientsideencrypt", QtInfoMsg) - namespace + { constexpr auto e2eeSignatureHeaderName = "X-NC-E2EE-SIGNATURE"; } diff --git a/src/libsync/configfile.cpp b/src/libsync/configfile.cpp index ba1776016f462..1474b0b0d62f5 100644 --- a/src/libsync/configfile.cpp +++ b/src/libsync/configfile.cpp @@ -66,6 +66,7 @@ static constexpr char proxyPortC[] = "Proxy/port"; static constexpr char proxyUserC[] = "Proxy/user"; static constexpr char proxyPassC[] = "Proxy/pass"; static constexpr char proxyNeedsAuthC[] = "Proxy/needsAuth"; +static constexpr char sendDataC[] = "sendData"; static constexpr char forceLoginV2C[] = "forceLoginV2"; static constexpr char certPath[] = "http_certificatePath"; @@ -243,7 +244,7 @@ qint64 ConfigFile::chunkSize() const qint64 ConfigFile::maxChunkSize() const { QSettings settings(configFile(), QSettings::IniFormat); - return settings.value(QLatin1String(maxChunkSizeC), 100LL * 1024LL * 1024LL).toLongLong(); // default to 100 MiB + return settings.value(QLatin1String(maxChunkSizeC), 20LL * 1024LL * 1024LL).toLongLong(); // default to 20 MiB (SES-406) } qint64 ConfigFile::minChunkSize() const @@ -969,13 +970,13 @@ void ConfigFile::setNewBigFolderSizeLimit(bool isChecked, qint64 mbytes) bool ConfigFile::confirmExternalStorage() const { - const auto fallback = getValue(confirmExternalStorageC, QString(), true); + const auto fallback = getValue(confirmExternalStorageC, QString(), false); return getPolicySetting(QLatin1String(confirmExternalStorageC), fallback).toBool(); } bool ConfigFile::useNewBigFolderSizeLimit() const { - const auto fallback = getValue(useNewBigFolderSizeLimitC, QString(), true); + const auto fallback = getValue(useNewBigFolderSizeLimitC, QString(), false); return getPolicySetting(QLatin1String(useNewBigFolderSizeLimitC), fallback).toBool(); } @@ -1007,6 +1008,16 @@ void ConfigFile::setConfirmExternalStorage(bool isChecked) setValue(confirmExternalStorageC, isChecked); } +bool ConfigFile::sendData() const +{ + return getValue(sendDataC, QString(), false).toBool(); +} + +void ConfigFile::setSendData(bool isChecked) +{ + setValue(sendDataC, isChecked); +} + bool ConfigFile::moveToTrash() const { return getValue(moveToTrashC, QString(), false).toBool(); diff --git a/src/libsync/configfile.h b/src/libsync/configfile.h index 62b53ddbca5be..c67fbba28ac20 100644 --- a/src/libsync/configfile.h +++ b/src/libsync/configfile.h @@ -145,6 +145,10 @@ class OWNCLOUDSYNC_EXPORT ConfigFile [[nodiscard]] bool confirmExternalStorage() const; void setConfirmExternalStorage(bool); + /** If we should track user data */ + [[nodiscard]] bool sendData() const; + void setSendData(bool); + /** If we should move the files deleted on the server in the trash */ [[nodiscard]] bool moveToTrash() const; void setMoveToTrash(bool); diff --git a/src/libsync/foldermetadata.cpp b/src/libsync/foldermetadata.cpp index d628eff04777d..53cc38c45fe6a 100644 --- a/src/libsync/foldermetadata.cpp +++ b/src/libsync/foldermetadata.cpp @@ -15,7 +15,7 @@ namespace OCC { -Q_LOGGING_CATEGORY(lcCseMetadata, "nextcloud.sync.clientsideencryption.metadata", QtInfoMsg) +Q_LOGGING_CATEGORY(lcCseMetadata, "nextcloud.metadata", QtInfoMsg) namespace { diff --git a/src/libsync/logger.cpp b/src/libsync/logger.cpp index a5af41bb6d3aa..ca342151d904d 100644 --- a/src/libsync/logger.cpp +++ b/src/libsync/logger.cpp @@ -136,7 +136,7 @@ void Logger::doLog(QtMsgType type, const QMessageLogContext &ctx, const QString _logstream->flush(); } closeNoLock(); - enterNextLogFileNoLock(QStringLiteral("nextcloud.log"), LogType::Log); + enterNextLogFileNoLock(QStringLiteral("hidrivenext.log"), LogType::Log); } ++linesCounter; @@ -219,7 +219,7 @@ void Logger::setLogFlush(bool flush) void Logger::setLogDebug(bool debug) { - const QSet rules = {debug ? QStringLiteral("nextcloud.*.debug=true") : QString()}; + const QSet rules = {debug ? QStringLiteral("hidrivenext.*.debug=true") : QString()}; if (debug) { addLogRule(rules); } else { @@ -236,7 +236,7 @@ QString Logger::temporaryFolderLogDirPath() const void Logger::setupTemporaryFolderLogDir() { auto dir = temporaryFolderLogDirPath(); - if (!QDir().mkpath(dir)) { + if (!QDir().mkpath(dir)) return; } @@ -256,8 +256,10 @@ void Logger::disableTemporaryFolderLogDir() if (!_temporaryFolderLogDir) return; - enterNextLogFile("nextcloud.log", LogType::Log); + enterNextLogFile("hidrivenext.log", LogType::Log); setLogDir(QString()); + setLogDebug(false); + setLogFile(QString()); _temporaryFolderLogDir = false; } diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index fa2940cb337e9..3a23f03a1e7d5 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -134,6 +134,11 @@ QString Theme::appNameGUI() const } QString Theme::appName() const +{ + return APPLICATION_NAME; +} + +QString Theme::appShortName() const { return APPLICATION_SHORTNAME; } @@ -430,6 +435,31 @@ Theme::Theme() QColor(127, 127, 127)); #endif + IONOSPalette.setColor(QPalette::Window, QColor("#ffffff")); + IONOSPalette.setColor(QPalette::WindowText, QColor("#001B40")); + IONOSPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Base, QColor( "#FAFAFA")); + IONOSPalette.setColor(QPalette::AlternateBase, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::ToolTipBase, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::ToolTipText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Text, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Dark, QColor("#e1e1e1")); + IONOSPalette.setColor(QPalette::Shadow, QColor("#D1D1D1")); + IONOSPalette.setColor(QPalette::Button, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::ButtonText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::BrightText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Link, QColor("#1474c4")); + IONOSPalette.setColor(QPalette::Highlight, QColor("#F2F5F8")); + IONOSPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::HighlightedText, QColor(0,0,0)); + IONOSPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(0,0,0)); + + auto systemPalette = QGuiApplication::palette(); + systemPalette.setColor(QPalette::WindowText, QColor("#001B40")); + QGuiApplication::setPalette(systemPalette); + connectToPaletteSignal(); #ifdef APPLICATION_SERVER_URL_ENFORCE @@ -474,7 +504,7 @@ QString Theme::helpUrl() const #ifdef APPLICATION_HELP_URL return QString::fromLatin1(APPLICATION_HELP_URL); #else - return QString::fromLatin1("https://docs.nextcloud.com/server/latest/user_manual/en/desktop/index.html"); + return QString::fromLatin1("https://wl.hidrive.com/%1").arg(tr("easy/0118")); #endif } @@ -639,7 +669,8 @@ QString Theme::aboutInfo() const QString Theme::about() const { - const auto devString = developerStringInfo(); + //: Example text: "

      Nextcloud Desktop Client

      " (%1 is the application name) + const auto devString = QString("

      %1 %2

      ").arg(APPLICATION_NAME, QString::fromLatin1(MIRALL_STRINGIFY(MIRALL_VERSION))); return devString; } @@ -943,38 +974,25 @@ void Theme::replaceLinkColorString(QString &linkString, const QColor &newColor) linkString.replace(linkRegularExpression, QString::fromLatin1(" 0: + with open(file_path, 'w', encoding='utf-8') as f: + f.write(new_content) + total_replacements += num_replacements + except Exception as e: + pass # Ignore files that can't be processed + print(f"Total replacements: {total_replacements}") + +if __name__ == "__main__": + if len(sys.argv) != 3 or sys.argv[1] not in ("to-nextcloud", "to-hidrivenext"): + print("Usage: python switch_logging_category.py [to-nextcloud|to-hidrivenext] ") + sys.exit(1) + mode = sys.argv[1] + root_dir = sys.argv[2] + if mode == "to-nextcloud": + replace_logging_category(root_dir, "hidrivenext", "nextcloud") + else: + replace_logging_category(root_dir, "nextcloud", "hidrivenext") diff --git a/switch_qml_imports.py b/switch_qml_imports.py new file mode 100644 index 0000000000000..352226e678155 --- /dev/null +++ b/switch_qml_imports.py @@ -0,0 +1,33 @@ +import os +import sys +import re + +def replace_qml_imports(root_dir, from_prefix, to_prefix): + pattern = re.compile(r'(^\s*import\s+)' + re.escape(from_prefix) + r'(\.[^\s]*)', re.MULTILINE) + total_replacements = 0 + for subdir, _, files in os.walk(root_dir): + for file in files: + if file.endswith('.qml'): + file_path = os.path.join(subdir, file) + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + new_content, num_replacements = pattern.subn(r'\1' + to_prefix + r'\2', content) + if num_replacements > 0: + with open(file_path, 'w', encoding='utf-8') as f: + f.write(new_content) + total_replacements += num_replacements + except Exception: + pass # Ignore files that can't be processed + print(f"Total replacements: {total_replacements}") + +if __name__ == "__main__": + if len(sys.argv) != 3 or sys.argv[1] not in ("to-nextcloud", "to-hidrivenext"): + print("Usage: python switch_qml_imports.py [to-nextcloud|to-hidrivenext] ") + sys.exit(1) + mode = sys.argv[1] + root_dir = sys.argv[2] + if mode == "to-nextcloud": + replace_qml_imports(root_dir, "com.ionos.hidrivenext", "com.nextcloud") + else: + replace_qml_imports(root_dir, "com.nextcloud", "com.ionos.hidrivenext") diff --git a/theme.qrc.in b/theme.qrc.in index 4bf77d90807bc..c81bb428b71a2 100644 --- a/theme.qrc.in +++ b/theme.qrc.in @@ -293,3 +293,4 @@ theme/info.svg + diff --git a/theme/Style/Style.qml b/theme/Style/Style.qml index 98856f8c8e126..d2f206481624e 100644 --- a/theme/Style/Style.qml +++ b/theme/Style/Style.qml @@ -4,19 +4,28 @@ pragma Singleton import QtQuick -import com.nextcloud.desktopclient +import com.ionos.hidrivenext.desktopclient QtObject { readonly property int pixelSize: fontMetrics.font.pixelSize readonly property bool darkMode: Theme.darkMode // Colors - readonly property color ncBlue: Theme.wizardHeaderBackgroundColor - readonly property color ncHeaderTextColor: Theme.wizardHeaderTitleColor + readonly property color ncBlue: Theme.wizardHeaderBackgroundColor + readonly property color ncHeaderTextColor: sesTrayFontColor + readonly property color ncTextColor: sesTrayFontColor + readonly property color ncTextBrightColor: "white" + readonly property color ncSecondaryTextColor: sesTrayFontColor//"#808080" + readonly property color lightHover: Theme.darkMode ? Qt.lighter(backgroundColor, 2) : Qt.darker(backgroundColor, 1.05) + readonly property color darkerHover: Theme.darkMode ? Qt.lighter(backgroundColor, 2.35) : Qt.darker(backgroundColor, 1.25) + readonly property color menuBorder: Theme.darkMode ? Qt.lighter(backgroundColor, 2.5) : Qt.darker(backgroundColor, 1.5) + readonly property color backgroundColor: "#FFFFFF" + readonly property color buttonBackgroundColor: Theme.systemPalette.button + readonly property color positiveColor: Qt.rgba(0.38, 0.74, 0.38, 1) readonly property color accentColor: UserModel.currentUser ? UserModel.currentUser.accentColor : ncBlue readonly property color currentUserHeaderColor: UserModel.currentUser ? UserModel.currentUser.headerColor : ncBlue - readonly property color currentUserHeaderTextColor: UserModel.currentUser ? UserModel.currentUser.headerTextColor : ncHeaderTextColor + readonly property color currentUserHeaderTextColor: sesTrayFontColor readonly property color adjustedCurrentUserHeaderColor: Theme.darkMode ? Qt.lighter(currentUserHeaderColor, 2) : Qt.darker(currentUserHeaderColor, 1.5) @@ -98,10 +107,13 @@ QtObject { property double trayFoldersMenuButtonDropDownCaretIconSizeFraction: 0.3 property double trayFoldersMenuButtonMainIconSizeFraction: 1.0 - trayFoldersMenuButtonDropDownCaretIconSizeFraction - property int activityListButtonWidth: 42 + property int addAccountButtonHeight: 50 + + property int headerButtonIconSize: sesIconSize + property int dismissButtonSize: 26 + property int activityListButtonWidth: 32 property int activityListButtonHeight: 32 property int activityListButtonIconSize: 18 - property int headerButtonIconSize: 48 property int minimumActivityItemHeight: 24 property int accountIconsMenuMargin: 7 @@ -211,4 +223,100 @@ QtObject { function colorWithoutTransparency(color) { return Qt.rgba(color.r, color.g, color.b, 1) } + + // SES + readonly property string sesWebsiteIcon: WLTheme.websiteIcon + readonly property string sesFolderIcon: WLTheme.folderIcon + readonly property string sesHeaderLogoIcon: WLTheme.sesHeaderLogoIcon + + readonly property string sesAvatar: WLTheme.avatarIcon + + readonly property string sesAccountQuit: WLTheme.quitIcon + readonly property string sesAccountPause: WLTheme.pauseIcon + readonly property string sesDarkPlus: WLTheme.plusIcon + readonly property string sesLightPlus: WLTheme.lightPlusIcon + readonly property string sesAccountSettings: WLTheme.settingsIcon + readonly property string sesAccountResume: WLTheme.resumeIcon + readonly property string sesLogout: WLTheme.logoutIcon + readonly property string sesDelete: WLTheme.deleteIcon + readonly property string sesClipboard: WLTheme.clipboardIcon + readonly property string sesLightClipboard: WLTheme.lightClipboardIcon + readonly property string sesSyncErrorIcon: WLTheme.syncErrorIcon + readonly property string sesErrorBoxIcon: WLTheme.snackbarErrorIcon + readonly property string sesSyncSuccessIcon: WLTheme.syncSuccessIcon + readonly property string sesOfflineIcon: WLTheme.syncOfflineIcon + readonly property string sesChevron: WLTheme.chevronIcon + readonly property string sesMore: WLTheme.moreIcon + readonly property string sesMoreHover: WLTheme.moreHoverIcon + readonly property string sesActivity: WLTheme.activityIcon + + readonly property color sesIconDarkColor: WLTheme.iconDarkColor + readonly property color sesIconColor: WLTheme.buttonIconColor + + readonly property color sesBackgroundColor: WLTheme.trayBackgroundColor + readonly property color sesBorderColor: WLTheme.trayBorderColor + readonly property color sesWhite: "#FFFFFF" + readonly property color sesGray: "#465A75" + readonly property color sesTrayInputField: WLTheme.trayInputFieldBorderColor + readonly property color sesHover: "#F2F5F8" + readonly property color sesActionHover: WLTheme.buttonHoveredColor + readonly property color sesActionPressed: WLTheme.buttonPressedColor + readonly property color sesSelectedColor: "#F4F7FA" + readonly property color sesButtonPressed: WLTheme.toolButtonPressedColor + readonly property color sesAccountMenuHover: WLTheme.toolButtonHoveredColor + readonly property color sesDarkGreen: "#096B35" + readonly property color sesTrayFontColor: WLTheme.trayFontColor + readonly property color sesErrorBoxBorder: WLTheme.trayErrorBorderColor + readonly property color sesErrorBoxText: WLTheme.trayErrorTextColor + readonly property color sesMenuBorder: "#2E4360" + readonly property color sesSearchFieldContent: "#97A3B4" + + property int sesAccountMenuHeight: variableSize(40) + property int sesHeaderLogoHeigth: variableSize(40) + property int sesHeaderLogoTopMargin: variableSize(12) + property int sesHeaderLogoLeftMargin: variableSize(24) + property int sesCornerRadius: 8 + property int sesHeaderTopMargin: variableSize(10) + property int sesSmallMargin: 8 + property int sesAccountMenuItemPadding: 12 + property int sesMediumMargin: 16 + + readonly property string sesOpenSansRegular: "qrc:///client/fonts/OpenSans-Regular.ttf" + property int sesFontPointSize: 9 + property int sesFontPixelSizeTitle: 20 + property int sesFontPixelSize: 16 + property int sesFontErrortextPixelSize: 14 + property int sesFontHintPixelSize: 12 + property int sesFontBoldWeight: 400 + property int sesFontNormalWeight: sesFontBoldWeight + + property int sesIconSize: 24 + property int sesActivityItemDistanceToFrame: 24 + property int sesActivityItemWidthModifier: 26 + property int sesFileDetailsIconSize: 58 + property int sesFileDetailsHeaderModifier: 100 + property int sesSearchFieldHeight: 40 + + //Tray Account Menu Values + property int sesAccountButtonWidth: 256 + property int sesAccountButtonHeight: 68 + property int sesAccountButtonRightMargin: 33 + property int sesAccountButtonLeftMargin: 19 + property int sesHeaderButtonWidth: 84 + property int sesHeaderButtonHeight: 68 + property int sesTrayHeaderHeight: 68 + + property int sesAccountMenuWidth: sesAccountButtonWidth - 8 + property int sesAccountLabelWidth: 157 + property int sesTrayHeaderMargin: 11 + property int sesTrayWindowWidth: 464 + + property color sesPillButtonPrimaryBackgroundColor: WLTheme.pillButtonPrimaryColor + property color sesPillButtonSecondaryBackgroundColor: WLTheme.pillButtonSecondaryColor + property color sesPillButtonBorderColor: WLTheme.pillButtonBorderColor + property color clipboardBackgroundColor: WLTheme.clipboardBackgroundColor + property real sesPillIconSize: 16 + property int sesPillButtonVerticalPadding: 4 + property int sesPillButtonHorizontalPadding: 10 + property real sesPillButtonHoverOpacity: 0.7 } diff --git a/theme/black/ionos-hidrive-next-macOS-icon.svg b/theme/black/ionos-hidrive-next-macOS-icon.svg new file mode 100644 index 0000000000000..c7e0c87b90b2d --- /dev/null +++ b/theme/black/ionos-hidrive-next-macOS-icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/black/ionos-hidrive-next-macOS-sidebar.svg b/theme/black/ionos-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/black/ionos-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/black/ionos_hidrive_next-icon.svg b/theme/black/ionos_hidrive_next-icon.svg new file mode 100644 index 0000000000000..45cf3e0e8243c --- /dev/null +++ b/theme/black/ionos_hidrive_next-icon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/theme/black/strato-hidrive-next-macOS-icon.svg b/theme/black/strato-hidrive-next-macOS-icon.svg new file mode 100644 index 0000000000000..c7e0c87b90b2d --- /dev/null +++ b/theme/black/strato-hidrive-next-macOS-icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/black/strato-hidrive-next-macOS-sidebar.svg b/theme/black/strato-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/black/strato-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/black/strato_hidrive_next-icon.svg b/theme/black/strato_hidrive_next-icon.svg new file mode 100644 index 0000000000000..4665637f6ddb3 --- /dev/null +++ b/theme/black/strato_hidrive_next-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/colored/IONOS_logo_w_suffix_frontend.png b/theme/colored/IONOS_logo_w_suffix_frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..796fa1d7815f6f0713bcd04f52c5e2009d3e86b3 GIT binary patch literal 3814 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 literal 0 HcmV?d00001 diff --git a/theme/colored/IONOS_logo_w_suffix_frontend.svg b/theme/colored/IONOS_logo_w_suffix_frontend.svg new file mode 100644 index 0000000000000..e65d8b2190ed7 --- /dev/null +++ b/theme/colored/IONOS_logo_w_suffix_frontend.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/colored/IONOS_logo_w_suffix_frontend@2x.png b/theme/colored/IONOS_logo_w_suffix_frontend@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..921840999cd9a36c4dd5223a04e10fb32d1038f3 GIT binary patch literal 7455 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 literal 0 HcmV?d00001 diff --git a/theme/colored/Nextcloud-macOS-icon.svg b/theme/colored/Nextcloud-macOS-icon.svg deleted file mode 100644 index 571fcdf5b2623..0000000000000 --- a/theme/colored/Nextcloud-macOS-icon.svg +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/theme/colored/STRATO_logo_w_suffix_frontend.png b/theme/colored/STRATO_logo_w_suffix_frontend.png new file mode 100644 index 0000000000000000000000000000000000000000..45248d3e8ccf318898f71ff8da9ff94d21e8a4b2 GIT binary patch literal 3541 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 + + + + + + + + + + + + + + + + + + + + diff --git a/theme/colored/STRATO_logo_w_suffix_frontend@2x.png b/theme/colored/STRATO_logo_w_suffix_frontend@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..921840999cd9a36c4dd5223a04e10fb32d1038f3 GIT binary patch literal 7455 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 literal 0 HcmV?d00001 diff --git a/theme/colored/ionos-data-protection-logo.png b/theme/colored/ionos-data-protection-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e609a11af747952d920720409a8dd08b29e511f GIT binary patch literal 7590 zcmbt(RZyHy^d&H8a2VVnxCNI0gA5wnoj}l_!I^=<-9oTn!Ciy96CgMQCb+vxa9Mu; z+S-?W*oS@S?&|)&u0HqPbGy1vN2;sJW4|GPgMfg5t*8Ljd~G{lOC37uYb|t8B=g!} zxF{I7As}E9{#OtY(lbe42NB&g<)sm-#wqt-JIFRtDpCjtKjSeU%~22#sNO4rrL?^f zkFzk{leW_avz@KK4QFArAYh~-%c|oAZRZiCzWw2(Q$Jl5)K<({V&iDvlx$dESxmHa zO}T97xa1@*-}c7j`lzu%7s6qxT8{BXH-RW9FT@Cy4k#@hw!}9)+I0Go*h(Z37@4WYx%qHkH+|K49U6&)vi)W21}D5)^ve%r+O7|N3sv0^_3=`mILOko4$<9s2WVYk3%t!9+wfPn-E%032`81$pc+nuRCG17N}N_ekm&%LeObm3!6i|v}ZcZ!{G{ejE$L9I{ zBITCL_Mz#vx}$bi>G1}JkO+%L7e0@2UTK9r(9FJ}Si$7keC9FQ2ih|ZAlZ9AL0Kr1 zg9P*QO@s;(jIPN9%8^&yBhUWLlqlv)>ra%$ZWPh;RInB=Q5(mLsWjtfD6hXv@mnHN;9R z|84+ZKY;&ON1@54fl+&2VTUQ5>lm?_hB}@9$BQt7TyL#(9r{AMi0p~~`Xf|nXGDz6 z9GsRh|1(biFZv^(UUV5YU-A5Xd>u+m^EgK9&%yBz~)isihSXWkqNtx1` z|AqSJI)CTNG6lm&xeLuxMb`fDW+Yb_P`5*net;VUwD$H>aUL?e9(Fzy&fcKb zb+^nv&3bWF#SLH7#ZQn19j-BCC=qak|-2hjUEamrs0bRzhDjo1|$n#gnRXI}$PN zf=Jm-PG~C^Jv1KK$Fdf`Mi7hEw?zN*L5_5x&5=ljgywg0B9!0@iP=g?P`*;@fA-rCvW0O+`gx zJ-u$3U`1)FGsYuy>DJd*aQ8CZgD)hGW&T&Q24hqxB*s+jtg1y}AwW zUFDx+7C$RUiUqYu*EX3e?j#aLjPZJ5*PCgGyEZ_qN%2%Pu7=P(=*kmdegbFO=Hw~h z1hP@{h;tr1n8BUk6}p?DsOY#j$UQRfh|Wc2)B>rH@XV z{zV@JNehj$=Kap&V5?6r;h&)I&z5N#&*d0ycOOGmt%uqW0euZ z+jFWh-|Lm1EK&-ZCrZ4*oAJiGoBl2K`H+klK&N(7OTT^z*CQcF)F;n^kDTH?WvSKg znG#m+39OKHI&rAaefqm)sAjG}u}&k*Cs|FkpTeb@@cq8gFo@)bMSwBu37+!Co<{Uu z0{jAtL_A;*L}>uL@`xS=dWPy6E?>sK&vaiqLTC^TD;eC!@j2%GV)HST`3vpWCphX; z+MGAIdOeH!A2Wd$Gbc$NR*UumY%geZOB-nV$lNz!zDZ@?@z6uzj89U$}UdVsAFKHum&sADTZ~s9@LUlk|AY=p` z#K8(PVSe~k)g!s~5w0&C*|~0{H(78%PEPJQ)lwxTI=dqOU?l3t#+#2w_QOr){-?39 z7xU)xMg+Q`f#^55C< z&nsSZE|y=-AUq@ge71hk|Avjvzfgc_gBsi{)>=CKT4Sz;k_RAA=>g63t>d@wcIC&0W}$- zQr;@QQ#|fx7Z7Ok^t9%libvNm4++RRGfOWl_f@P-I0KT!C4w+b#Q=_f-@`Z)J;ZWV z0jn`E_H_7!tV`7(`Jo?7Y8{gxF(6seXkce2OFhP^xGI1x7eTFzJ1xnk`|``h zEr(7MWX!|2T9d@ML`GTtrl%?5??=~8**Wx{gM3;XMtt~dJ_%ep+U;KV(?j^bPJg-! z;^j@>HL@1;0pX_1jiRrUM7cBio(W(^VdK*u1XxOC)*RJbu|Vel0CRKlS>%Dw`%mwS z0=F@Lhn6R*$X(WUI24zabzO^EQ3$pn)xNhojgj8NW1db$m#!Odqg?;&BaH|zYW>S* zWUfsd`n<`Rna*zWb@R@rhjj0-xQ~Xa;PUwRk55(bJ@mmgr^_t!G=JF2DoO9F8lzPq ze@AP&((e&lSDzzdLFya1L)VHxEk#AI$p%}SE1T{$Z zH_}hcb0}SyY}P;dElo!2i%uv4jUbvQsWkRUsOeYz!ZpWV^vf=RXu&flnpkBRpC`oN zkuu(DFiSF;b&c5MJp*Vb5S8|ps>@HxH@+$(K!}t@nA~iI?i4|&vcn{zQE&?ygKk+} z5*A(g=0mo@U1BaghnI=jd&|Pw*LO(z4{_W^^<)!$5A<=|EpaA(K zJqTx{f27jztK)GVwI&8Vzh!6pFjt_$kL0AwgQE=#S=pwJ=J3O#c13Dh{0u3KktBE7+m-0^~nBi{oTcB}Fd@ z)GMp8kd&)5GfaqGHv_F$c1F9TZ;$j8R;lC_eOe|CpXi4|?Sm&|@O-z{23;lh=@wxT z_9u7GfD7?bHpoZK+0Oz)bGR1jOU%AcVKHat_-piu!3Ksef(&O}UF|jBaWcsY;t=CK z96_-b&&cU8bBGNf|N1K4Lx~JI8vt=&JyC|a)x?A)L!6l%?55wrl8z&zg(#fxHs+8Kh$3E{< z79^5{?JqY<9FSvW4uc`CBZ+GJo&M{!jP>ix8FtS)(X8x?iRArj4c~#iu^3<8z~uOa zSes@4U2x?b82URi)$ZLawhgbh1=;Twt5q$n+?`Z6sdZW}V}t_#Y(0!Gu_>wka(qUG zqoo)Fs&I|z3WT0Mkki7@N70*XY{CCngRfC_Z@T=?KPOG#`6+!qhA?Ku})M`U#uUuv5Dq2%2eleq}SK6-Nh1{zt_kTc=}|oBt-{Jk^BT zm{u*VR(d~s76Yw6!eH5PYvL!Z*Z+I;nQ`JlH^`x-1^kO z<-99r;4HyIHUVE71*~1s%lf9{SC$lDLmLs0vpw9p(5E)X){9*x@d!S)s2aaQ3S>bI z(9Mr`x6GSA&meKH6KYy+P&G7M3O(s815+msWMRzH?nc<`+%|1^^#=%ZR`^|}JvaZ( zUBBOpr0H5@x1gpo5$12TLq2sYmwA`kZ##~LPqakAi3wPx@}k2+7zNO(OSn6!r$}|* zKg@`WYAsKbJw@?Gyx6a)7Fi+~?Yf=D<(Yl8Qx7KJ0+1j9AP{~;A2L72|C2W=N{K%A$uTj)0T(q#s8*OO zkZ))>ER+V#1yn1mgkOd7c!X4~>bP$EIKz&(yS8ClSG{6F`*C15WoNRTz#g0j53mOw z-Unx#G>fkpiyHV5!zh7qs=iW3=z{R^CPksQ#^N}>P-We_y7ns1BOWAs%e1wXHCqp1 zJ0}D8OZHo;6z%@T?-X?%5M9tLpBOpEqi|pY=q-|BGZXo`t|`^r7qS$1C00p8&&MEW zFyInbRqv{9$i>Hkvwx=U9s&>~GG8B*+TSxYDtGaEG{LKAe`EbG!^8K%{=lA<61rfK zp(h!G7d-+fkJrR-PQN+Ib$@ja8kHY|>o4tUJUnU46g}rlBazT0pSPvbzzK60-NKGu z1b&UM1aZ~1Ygc#a9AOfU3pEIb7JR$nB6Ah+5WF3?QrDx8dk8WY=qQV#mt}AH>sOnq zIHhUxa#@Os3Bpl zbM^#K$cNFq#7&Yfgpnqowm)wS{;tvv=j;rWbXW;>bYY*=RBt5axK831b`Jr~bH~~N z{~`nIbi@NmVg=`;3P-@rj0vR(Mvut6{D!i32UAY-LCAqFn*N>R5(q0H2WY@I{AEfW z`nQTmUI0t)IBc{i)T~JYlnU58GYJJ=HjWmbUv1W})B+(Y6dWRyzeJI`KnTso=uS{q zZeL*M6?a)IHD`%2rsV1)-*O0z=qH&v>uYy@&^5)#8j4C+GmjJSO&1>r66#LX(`1&o zxMWyfO$V1Om$q#)xt5n1BdmfPe1i=*4}sWLcf-bngQ}Qm7IW$K#iePd*U(PEHLE3Of> zm=Qu&moMrzTcqwN91`c;I;uMQx0~I)+kuN_g7JoPmjJHX?eA7CGW8!zHd<1lx@#MbJ{Fj)pz3vK|M zgTvZ7pG-J?Z>r!R6Ypt#3Y(=}kwgfs=4>z$k}z=IbZ@(vd+h33yU1Dz>IW5e69}$_ zdVp58laf>Sh62bw)ssuv@f*`}h~e%$(2tKsvG$>UKK+M%H!Rob>q z=YN57{GR&C!dd(OfUU_}kn71Tphd0-8_&-jFGbm^p{bkShykB9{%m%mwBi7|t0BN( z41)qT^Zl_6o)cahXt+m)vENA;q%2)xwkC^VkmA)Wr1H~j!teqAbDxPKKa!B`+5T+t z1qnRH0mzusB18<{GteUq?1;lM)G2cOgPpGRjT1F_mpo$S#N{{2_OnV=kqUe9%kBEI zYu|gUqSvej#dRO}ZyVj9W`>XCN1i@*M@$3}TKay>wZX*Sz(H6w?ksMQH}q*19RW{+%Oo8yA)pH?}iPz3_l{wYn8EC|4$Pwa1Y>fqz_$HEzv{>5PA=P$;e=c`> z<>EYf0j~DpYy~Y{#tYqRyVBc-+|o@Ca1i1*-Vz2Zo^)z8J)>;EIY7S83|TU~o13`5 zq*K(}YzkA8xw0rbm%PJB`I$qK!}q2#UZx&s(9aIn!=4u7Pi8sI=9Y^73y{>`v(2$q zfp>VI#@#6hoMF~`>+$PoJ60RFuJH+oPqMf*yl{kf17|e|T*PG};~LyzLjx7-o>nVo zDb5yr4AC_uZs$VV=;D?2ax_*Y#;F^{~?Z0XU|{r z`fZ|NU;Xj#ENR24)$~2-5__D~rz6*mO^)=I8o|r0TD52uE)E!s5QvLvQzy8dM3;1C z&w2K0TM4stOaG*I zfmdEgXf~?kU!U1oAm$*ptt(0{^Cx?4hV`|SVTISn0l8O+mY3jF&P;gKU1LH*CoJE- zisuZk5;K0VCbIkIzLUtvoXLZPPrL^YK1k7#qy|wr-kxe;l$}8Ihr@6H72Ug%ny)+h zsamk-QykA>&z;C1P6YF@#|zsp4?Yi1dAmabKRwGihs(+n50I@qBIp> zNc^g#)_AK7&dD&chksofa+>;+$rBhvu?v))%^@Bko%-i^jFe&g_C>C|dQTuK=!nVz z`PCx&OedWb-aeGT&}-B@?#Mi;%DFY-0mqpE8?N+kgtU;;iC-oIwyzEW3(GIn`igwF ziuXKJ@5gw(cCnt)_JIA*>)i58sfcliB?$3r#$6QGybkY{@N6o?Jw5#vXgqO0HfzbX zicv1{;%lWl=gMxkxMoZe@c{~h<3?SKCjY$2Fxs>|q{5-d{0v3tyWu9-IPruK_va`c zM@@+Umh5VNz)J>>UV&QFjN+kvCCiGET%|zVmj;cja;(%nSl))Rks_>=cc0b0^RBAq zB7Jbk@1Ll`AtXGTqLcI;lmq5gh%yye{G0koQtj1b8{t0|w9&jw{pzVv$*(JUNe?a< zf!wop?6v}fT-sPwO4W^wF3>g90Y0};;%pwQX4buluFAXiquJ^f23wPrgNV-HU{t0- z9FN;h&I!1a31ahwT2bDSBlb3B6Yl4^^}n;jHl{-3Q4T{~2T5ZkqOwF;H0g5~F|-n! zDRn-~eLgQDw?O_~x$)uXg(RvrOWVs0=-jO4`%@#Pr0hN^@65#L5hN-nchMwDPAq@r zkAL@O9V^#iv#OG9N;E2~C@#CQBzmiNI@TE;1(ISI=oyM=S(tK(&H7%l=3aFE=k>nb z!MY^dh#f1aqtl4T$5nGi7}P3~bQ`)?&XH0fx1Ohs&&TEBVcn}PlnDdmGvg%QEma04i2f}M>%=>0=~$jsM_uuHwVsfWh{G4;s{2G+$kBOtq%pX5jTRY+ zL)=MI6f|9QUv^{^?UwwrsHzg@=DEXhoJA0-fF(d=!0xD9s02MBRX=`7HF98P`izAS z8-8-G)Kf0<7S#IwuB1$<(uC{Y=ybr%1mKjBH_1V6v*fgjGty#US*KrX%C_7bJsqha fG#3&6g4Q_iq!6&^iTV1hil8W~3a*m=81%mYyE4i8 literal 0 HcmV?d00001 diff --git a/theme/colored/ionos-hidrive-next-macOS-icon.svg b/theme/colored/ionos-hidrive-next-macOS-icon.svg new file mode 100644 index 0000000000000..c7e0c87b90b2d --- /dev/null +++ b/theme/colored/ionos-hidrive-next-macOS-icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/colored/ionos-hidrive-next-macOS-sidebar.svg b/theme/colored/ionos-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/colored/ionos-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/colored/ionos_hidrive_next-icon.svg b/theme/colored/ionos_hidrive_next-icon.svg new file mode 100644 index 0000000000000..45cf3e0e8243c --- /dev/null +++ b/theme/colored/ionos_hidrive_next-icon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/theme/colored/state-error.svg b/theme/colored/state-error.svg index b19f7689567ce..5222e0cd407f7 100644 --- a/theme/colored/state-error.svg +++ b/theme/colored/state-error.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/theme/colored/state-offline.svg b/theme/colored/state-offline.svg index f533986a8cf09..eda854aac5306 100644 --- a/theme/colored/state-offline.svg +++ b/theme/colored/state-offline.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/theme/colored/state-ok.svg b/theme/colored/state-ok.svg index 3f1a8f2ec9e95..d618238640fe9 100644 --- a/theme/colored/state-ok.svg +++ b/theme/colored/state-ok.svg @@ -1 +1,16 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + diff --git a/theme/colored/state-pause.svg b/theme/colored/state-pause.svg index 65634cf091e77..11b9b6672eeed 100644 --- a/theme/colored/state-pause.svg +++ b/theme/colored/state-pause.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/theme/colored/state-sync.svg b/theme/colored/state-sync.svg index c56831a833555..4a0d29b3b2218 100644 --- a/theme/colored/state-sync.svg +++ b/theme/colored/state-sync.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + diff --git a/theme/colored/state-warning.svg b/theme/colored/state-warning.svg index 57b24ffbf4f26..ab3b6db9175e2 100644 --- a/theme/colored/state-warning.svg +++ b/theme/colored/state-warning.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/theme/colored/strato-data-protection-logo.png b/theme/colored/strato-data-protection-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e75146a6b228ca74a0c1a8f20691a6ef8e9852f5 GIT binary patch literal 18505 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 Dcd*#xPV&#!C@payVLzfkQurhlp&qJh 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

      +Jx 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 Z$_LEarIa*?cH|!kw9N%nEz + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/colored/strato-hidrive-next-macOS-sidebar.svg b/theme/colored/strato-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/colored/strato-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/colored/strato_hidrive_next-icon.svg b/theme/colored/strato_hidrive_next-icon.svg new file mode 100644 index 0000000000000..4665637f6ddb3 --- /dev/null +++ b/theme/colored/strato_hidrive_next-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/hidrivenext.VisualElementsManifest.xml b/theme/hidrivenext.VisualElementsManifest.xml new file mode 100644 index 0000000000000..424d569fc64d2 --- /dev/null +++ b/theme/hidrivenext.VisualElementsManifest.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/theme/ses/ses-IONOS-logo.svg b/theme/ses/ses-IONOS-logo.svg new file mode 100644 index 0000000000000..816faa83f14e7 --- /dev/null +++ b/theme/ses/ses-IONOS-logo.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/ses/ses-accountDelete.svg b/theme/ses/ses-accountDelete.svg new file mode 100644 index 0000000000000..8b35ccf415249 --- /dev/null +++ b/theme/ses/ses-accountDelete.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-accountLogout.svg b/theme/ses/ses-accountLogout.svg new file mode 100644 index 0000000000000..60c5eacfcd135 --- /dev/null +++ b/theme/ses/ses-accountLogout.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-accountPause.svg b/theme/ses/ses-accountPause.svg new file mode 100644 index 0000000000000..6928b0a84ca1a --- /dev/null +++ b/theme/ses/ses-accountPause.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-accountQuit.svg b/theme/ses/ses-accountQuit.svg new file mode 100644 index 0000000000000..95554efad4428 --- /dev/null +++ b/theme/ses/ses-accountQuit.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-accountResume.svg b/theme/ses/ses-accountResume.svg new file mode 100644 index 0000000000000..fea95e07e255b --- /dev/null +++ b/theme/ses/ses-accountResume.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-activity.svg b/theme/ses/ses-activity.svg new file mode 100644 index 0000000000000..09d58a5868610 --- /dev/null +++ b/theme/ses/ses-activity.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-activityDelete.svg b/theme/ses/ses-activityDelete.svg new file mode 100644 index 0000000000000..8b35ccf415249 --- /dev/null +++ b/theme/ses/ses-activityDelete.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-addlivebackup.svg b/theme/ses/ses-addlivebackup.svg new file mode 100644 index 0000000000000..c78a03471aa8f --- /dev/null +++ b/theme/ses/ses-addlivebackup.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-chevron.svg b/theme/ses/ses-chevron.svg new file mode 100644 index 0000000000000..0823e78819528 --- /dev/null +++ b/theme/ses/ses-chevron.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-clipboard.svg b/theme/ses/ses-clipboard.svg new file mode 100644 index 0000000000000..11e2a909d3851 --- /dev/null +++ b/theme/ses/ses-clipboard.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-darkPlus.svg b/theme/ses/ses-darkPlus.svg new file mode 100644 index 0000000000000..74f4f7eca5844 --- /dev/null +++ b/theme/ses/ses-darkPlus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-external.svg b/theme/ses/ses-external.svg new file mode 100644 index 0000000000000..07f5a34f63f2f --- /dev/null +++ b/theme/ses/ses-external.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-file.svg b/theme/ses/ses-file.svg new file mode 100644 index 0000000000000..0a8d10cbb7694 --- /dev/null +++ b/theme/ses/ses-file.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-folderIcon.svg b/theme/ses/ses-folderIcon.svg new file mode 100644 index 0000000000000..b8fb4f1c7eebc --- /dev/null +++ b/theme/ses/ses-folderIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-folderIconBright.svg b/theme/ses/ses-folderIconBright.svg new file mode 100644 index 0000000000000..cec3690fe2544 --- /dev/null +++ b/theme/ses/ses-folderIconBright.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-info.svg b/theme/ses/ses-info.svg new file mode 100644 index 0000000000000..bb88fa20fa785 --- /dev/null +++ b/theme/ses/ses-info.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-lightClipboard.svg b/theme/ses/ses-lightClipboard.svg new file mode 100644 index 0000000000000..cf099bb8fd6b1 --- /dev/null +++ b/theme/ses/ses-lightClipboard.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-lightPlus.svg b/theme/ses/ses-lightPlus.svg new file mode 100644 index 0000000000000..b19ae735102f4 --- /dev/null +++ b/theme/ses/ses-lightPlus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-link.svg b/theme/ses/ses-link.svg new file mode 100644 index 0000000000000..bcab7b7518f91 --- /dev/null +++ b/theme/ses/ses-link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/ses/ses-more-hover.svg b/theme/ses/ses-more-hover.svg new file mode 100644 index 0000000000000..a3d50d82f5c82 --- /dev/null +++ b/theme/ses/ses-more-hover.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-more.svg b/theme/ses/ses-more.svg new file mode 100644 index 0000000000000..87baffb082247 --- /dev/null +++ b/theme/ses/ses-more.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-questionmark.svg b/theme/ses/ses-questionmark.svg new file mode 100644 index 0000000000000..e6fe962b7a657 --- /dev/null +++ b/theme/ses/ses-questionmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-refresh.svg b/theme/ses/ses-refresh.svg new file mode 100644 index 0000000000000..1502d63212085 --- /dev/null +++ b/theme/ses/ses-refresh.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-settings.svg b/theme/ses/ses-settings.svg new file mode 100644 index 0000000000000..97cdc64e85eb9 --- /dev/null +++ b/theme/ses/ses-settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-settingsAvatar.svg b/theme/ses/ses-settingsAvatar.svg new file mode 100644 index 0000000000000..55c13ae34b0fd --- /dev/null +++ b/theme/ses/ses-settingsAvatar.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-settingsAvatarRound.svg b/theme/ses/ses-settingsAvatarRound.svg new file mode 100644 index 0000000000000..55c13ae34b0fd --- /dev/null +++ b/theme/ses/ses-settingsAvatarRound.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-snackbar-error.svg b/theme/ses/ses-snackbar-error.svg new file mode 100644 index 0000000000000..ddb015e7693c4 --- /dev/null +++ b/theme/ses/ses-snackbar-error.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-snackbar-success.svg b/theme/ses/ses-snackbar-success.svg new file mode 100644 index 0000000000000..cfabcb54ee292 --- /dev/null +++ b/theme/ses/ses-snackbar-success.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-snackbar-warning.svg b/theme/ses/ses-snackbar-warning.svg new file mode 100644 index 0000000000000..8dd360cd42c29 --- /dev/null +++ b/theme/ses/ses-snackbar-warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-state-offline.svg b/theme/ses/ses-state-offline.svg new file mode 100644 index 0000000000000..eda854aac5306 --- /dev/null +++ b/theme/ses/ses-state-offline.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-syncArrows.svg b/theme/ses/ses-syncArrows.svg new file mode 100644 index 0000000000000..88cd18033beb5 --- /dev/null +++ b/theme/ses/ses-syncArrows.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/ses-syncstate-error.svg b/theme/ses/ses-syncstate-error.svg new file mode 100644 index 0000000000000..4674cc8e2d4d4 --- /dev/null +++ b/theme/ses/ses-syncstate-error.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-syncstate-paused.svg b/theme/ses/ses-syncstate-paused.svg new file mode 100644 index 0000000000000..5f91042e48073 --- /dev/null +++ b/theme/ses/ses-syncstate-paused.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-syncstate-success.svg b/theme/ses/ses-syncstate-success.svg new file mode 100644 index 0000000000000..433f04a262429 --- /dev/null +++ b/theme/ses/ses-syncstate-success.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-syncstate-syncing.svg b/theme/ses/ses-syncstate-syncing.svg new file mode 100644 index 0000000000000..07aa6dda5c66c --- /dev/null +++ b/theme/ses/ses-syncstate-syncing.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/theme/ses/ses-syncstate-warning.svg b/theme/ses/ses-syncstate-warning.svg new file mode 100644 index 0000000000000..32363111058db --- /dev/null +++ b/theme/ses/ses-syncstate-warning.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/ses-website.svg b/theme/ses/ses-website.svg new file mode 100644 index 0000000000000..c909fa4d33aac --- /dev/null +++ b/theme/ses/ses-website.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-STRATO-logo.svg b/theme/ses/strato/ses-STRATO-logo.svg new file mode 100644 index 0000000000000..e26ddbeced9e1 --- /dev/null +++ b/theme/ses/strato/ses-STRATO-logo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/ses/strato/ses-accountDelete.svg b/theme/ses/strato/ses-accountDelete.svg new file mode 100644 index 0000000000000..159837e9c8429 --- /dev/null +++ b/theme/ses/strato/ses-accountDelete.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-accountLogout.svg b/theme/ses/strato/ses-accountLogout.svg new file mode 100644 index 0000000000000..dec3573009bd7 --- /dev/null +++ b/theme/ses/strato/ses-accountLogout.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-accountPause.svg b/theme/ses/strato/ses-accountPause.svg new file mode 100644 index 0000000000000..b22506e403c0a --- /dev/null +++ b/theme/ses/strato/ses-accountPause.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-accountQuit.svg b/theme/ses/strato/ses-accountQuit.svg new file mode 100644 index 0000000000000..14c272b547bd5 --- /dev/null +++ b/theme/ses/strato/ses-accountQuit.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-accountResume.svg b/theme/ses/strato/ses-accountResume.svg new file mode 100644 index 0000000000000..fea95e07e255b --- /dev/null +++ b/theme/ses/strato/ses-accountResume.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-activity.svg b/theme/ses/strato/ses-activity.svg new file mode 100644 index 0000000000000..aa4317cc8eb1b --- /dev/null +++ b/theme/ses/strato/ses-activity.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-activityDelete.svg b/theme/ses/strato/ses-activityDelete.svg new file mode 100644 index 0000000000000..116eaae67d629 --- /dev/null +++ b/theme/ses/strato/ses-activityDelete.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-addlivebackup.svg b/theme/ses/strato/ses-addlivebackup.svg new file mode 100644 index 0000000000000..7fc60ec4aa925 --- /dev/null +++ b/theme/ses/strato/ses-addlivebackup.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/theme/ses/strato/ses-chevron.svg b/theme/ses/strato/ses-chevron.svg new file mode 100644 index 0000000000000..975615746a5c3 --- /dev/null +++ b/theme/ses/strato/ses-chevron.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-clipboard.svg b/theme/ses/strato/ses-clipboard.svg new file mode 100644 index 0000000000000..6002fdc7db2f3 --- /dev/null +++ b/theme/ses/strato/ses-clipboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-darkPlus.svg b/theme/ses/strato/ses-darkPlus.svg new file mode 100644 index 0000000000000..87e16a643a166 --- /dev/null +++ b/theme/ses/strato/ses-darkPlus.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-external.svg b/theme/ses/strato/ses-external.svg new file mode 100644 index 0000000000000..80acf9af8d8b3 --- /dev/null +++ b/theme/ses/strato/ses-external.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-file.svg b/theme/ses/strato/ses-file.svg new file mode 100644 index 0000000000000..0a8d10cbb7694 --- /dev/null +++ b/theme/ses/strato/ses-file.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-folderIcon.svg b/theme/ses/strato/ses-folderIcon.svg new file mode 100644 index 0000000000000..731f2cdc12342 --- /dev/null +++ b/theme/ses/strato/ses-folderIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-folderIconBright.svg b/theme/ses/strato/ses-folderIconBright.svg new file mode 100644 index 0000000000000..cec3690fe2544 --- /dev/null +++ b/theme/ses/strato/ses-folderIconBright.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-info.svg b/theme/ses/strato/ses-info.svg new file mode 100644 index 0000000000000..8a5b6c2887340 --- /dev/null +++ b/theme/ses/strato/ses-info.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-lightClipboard.svg b/theme/ses/strato/ses-lightClipboard.svg new file mode 100644 index 0000000000000..e6bb8c4b3b490 --- /dev/null +++ b/theme/ses/strato/ses-lightClipboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-lightPlus.svg b/theme/ses/strato/ses-lightPlus.svg new file mode 100644 index 0000000000000..05e7de7ff6992 --- /dev/null +++ b/theme/ses/strato/ses-lightPlus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-link.svg b/theme/ses/strato/ses-link.svg new file mode 100644 index 0000000000000..bcab7b7518f91 --- /dev/null +++ b/theme/ses/strato/ses-link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/ses/strato/ses-more-hover.svg b/theme/ses/strato/ses-more-hover.svg new file mode 100644 index 0000000000000..165bd963ec6cf --- /dev/null +++ b/theme/ses/strato/ses-more-hover.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-more-white.svg b/theme/ses/strato/ses-more-white.svg new file mode 100644 index 0000000000000..a3d50d82f5c82 --- /dev/null +++ b/theme/ses/strato/ses-more-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-more.svg b/theme/ses/strato/ses-more.svg new file mode 100644 index 0000000000000..165bd963ec6cf --- /dev/null +++ b/theme/ses/strato/ses-more.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-questionmark.svg b/theme/ses/strato/ses-questionmark.svg new file mode 100644 index 0000000000000..e6fe962b7a657 --- /dev/null +++ b/theme/ses/strato/ses-questionmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-refresh.svg b/theme/ses/strato/ses-refresh.svg new file mode 100644 index 0000000000000..1502d63212085 --- /dev/null +++ b/theme/ses/strato/ses-refresh.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-settings.svg b/theme/ses/strato/ses-settings.svg new file mode 100644 index 0000000000000..d2f6c53fb1a5c --- /dev/null +++ b/theme/ses/strato/ses-settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-settingsAvatar.svg b/theme/ses/strato/ses-settingsAvatar.svg new file mode 100644 index 0000000000000..0b57320cf5e85 --- /dev/null +++ b/theme/ses/strato/ses-settingsAvatar.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-settingsAvatarRound.svg b/theme/ses/strato/ses-settingsAvatarRound.svg new file mode 100644 index 0000000000000..9b2393bd56839 --- /dev/null +++ b/theme/ses/strato/ses-settingsAvatarRound.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-snackbar-error.svg b/theme/ses/strato/ses-snackbar-error.svg new file mode 100644 index 0000000000000..5fb9166552f98 --- /dev/null +++ b/theme/ses/strato/ses-snackbar-error.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-snackbar-success.svg b/theme/ses/strato/ses-snackbar-success.svg new file mode 100644 index 0000000000000..cfabcb54ee292 --- /dev/null +++ b/theme/ses/strato/ses-snackbar-success.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/ses/strato/ses-snackbar-warning.svg b/theme/ses/strato/ses-snackbar-warning.svg new file mode 100644 index 0000000000000..4fd487d5ebe03 --- /dev/null +++ b/theme/ses/strato/ses-snackbar-warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-state-offline.svg b/theme/ses/strato/ses-state-offline.svg new file mode 100644 index 0000000000000..eda854aac5306 --- /dev/null +++ b/theme/ses/strato/ses-state-offline.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-syncArrows.svg b/theme/ses/strato/ses-syncArrows.svg new file mode 100644 index 0000000000000..4e6cf0dfa32b0 --- /dev/null +++ b/theme/ses/strato/ses-syncArrows.svg @@ -0,0 +1,3 @@ + + + diff --git a/theme/ses/strato/ses-syncstate-error.svg b/theme/ses/strato/ses-syncstate-error.svg new file mode 100644 index 0000000000000..5222e0cd407f7 --- /dev/null +++ b/theme/ses/strato/ses-syncstate-error.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/theme/ses/strato/ses-syncstate-paused.svg b/theme/ses/strato/ses-syncstate-paused.svg new file mode 100644 index 0000000000000..11b9b6672eeed --- /dev/null +++ b/theme/ses/strato/ses-syncstate-paused.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/ses/strato/ses-syncstate-success.svg b/theme/ses/strato/ses-syncstate-success.svg new file mode 100644 index 0000000000000..d618238640fe9 --- /dev/null +++ b/theme/ses/strato/ses-syncstate-success.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/theme/ses/strato/ses-syncstate-syncing.svg b/theme/ses/strato/ses-syncstate-syncing.svg new file mode 100644 index 0000000000000..4a0d29b3b2218 --- /dev/null +++ b/theme/ses/strato/ses-syncstate-syncing.svg @@ -0,0 +1,4 @@ + + + + diff --git a/theme/ses/strato/ses-syncstate-warning.svg b/theme/ses/strato/ses-syncstate-warning.svg new file mode 100644 index 0000000000000..ab3b6db9175e2 --- /dev/null +++ b/theme/ses/strato/ses-syncstate-warning.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/theme/ses/strato/ses-website.svg b/theme/ses/strato/ses-website.svg new file mode 100644 index 0000000000000..08183c53858fc --- /dev/null +++ b/theme/ses/strato/ses-website.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/white/ionos-hidrive-next-macOS-icon.svg b/theme/white/ionos-hidrive-next-macOS-icon.svg new file mode 100644 index 0000000000000..c7e0c87b90b2d --- /dev/null +++ b/theme/white/ionos-hidrive-next-macOS-icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/white/ionos-hidrive-next-macOS-sidebar.svg b/theme/white/ionos-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/white/ionos-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/white/ionos_hidrive_next-icon.svg b/theme/white/ionos_hidrive_next-icon.svg new file mode 100644 index 0000000000000..45cf3e0e8243c --- /dev/null +++ b/theme/white/ionos_hidrive_next-icon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/theme/white/strato-hidrive-next-macOS-icon.svg b/theme/white/strato-hidrive-next-macOS-icon.svg new file mode 100644 index 0000000000000..c7e0c87b90b2d --- /dev/null +++ b/theme/white/strato-hidrive-next-macOS-icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/white/strato-hidrive-next-macOS-sidebar.svg b/theme/white/strato-hidrive-next-macOS-sidebar.svg new file mode 100644 index 0000000000000..4bb3ad7670764 --- /dev/null +++ b/theme/white/strato-hidrive-next-macOS-sidebar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/theme/white/strato_hidrive_next-icon.svg b/theme/white/strato_hidrive_next-icon.svg new file mode 100644 index 0000000000000..4665637f6ddb3 --- /dev/null +++ b/theme/white/strato_hidrive_next-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md new file mode 100644 index 0000000000000..32e8b1357e0e5 --- /dev/null +++ b/translation_scripts/Readme.md @@ -0,0 +1,113 @@ +# Lokalisierung des HiDrive Next Clients auf Basis einer Diff-Datei + +Diese Anleitung beschreibt den Prozess zur Lokalisierung des HiDrive Next Clients mithilfe einer von uns erstellten Diff-Datei. Die Lokalisierung erfolgt auf Basis von `.ts`-Dateien, welche die Ressourcen der Anwendung in XML-Form enthalten. + +## Voraussetzungen + +- Nextcloud Stable Client Quellcode +- Python-Script `merge_translation.py` +- Qt Linguist Tools (insbesondere `lupdate`) + +# Vorgehen bei Release + +Um in einem Release zu erstellen und einen valider PR zur übersetuen zu haben ist folgendes Vorgehen notwendig: + +0. (Optional) Einbeziehen unserer Änderungen aus Phrase. Dieser Schritt ist optional, da die Änderungen in der Regel schon in der Diff-Datei enthalten sind. Sollte es dennoch notwendig sein, können die Änderungen aus Phrase in die `.ts`-Diff-Dateien gemerged werden. +1. Es wird ein neuer `treanslations_` branch erstellt. Abgeleitet vom entsprechenden `develop_`. (z.b. translations_stable-3.16) +2. Durchlaufen der unter stehen den Schritte 1-6 +3. Erstellen eines "approved" PRs von `translations_` nach ``, also in Richtung der eigentlichen Basisversion von nc (z.B. [stable-3.16] Translations) +4. Der PR wird dann hoffentlich vom Brander gemerged + +Das Rebasedn der translations branches lohnt sich eigentlich nicht, weil der nextcloud master sich relativ jäufig Ändert, was zu vielen Konflikten führen würde. + +## Allgemeines + +Die Lokalisierung erfolgt in mehreren Schritten. Für eine bessere Vergleichbarkeit werden der Dateiname (Location) und die Zeilennummer in den `.ts`-Dateien entfernt. Die `.ts`-Dateien müssen vor jedem Merge-Schritt sortiert werden. + +## Schritte + +### 1. Nextcloud-Grundstand aktualisieren + +- Den **unveränderten Nextcloud Stable Client** verwenden. +- Am Einfachsten ist es den branch auschecken, den befehl laufen lassen, stashen und dann wieder auf den alten branch wechseln. Stash poppen. +- Mit folgendem Befehl die `.ts`Dateien auf den neuesten Stand bringen: + +``` +C:\Craft64\bin\lupdate.exe -locations none -no-obsolete -no-ui-lines .\src\libsync\ .\src\gui\ .\src\csync\ .\src\common\ .\src\cmd\ -ts .\translations\client_de.ts .\translations\client_en.ts .\translations\client_en_GB.ts .\translations\client_fr.ts .\translations\client_es.ts .\translations\client_nl.ts +``` + +Danach die .ts Dateien mit folgendem Befehl sortieren: + +``` +python3 merge_translation.py 0 +``` + +- Wichtig: **Obsolete Keys entfernen**. +- Die `.ts`Datei manuell per Skript sortieren. +- Datei in den **Translation Branch** legen und committen. + +### 2. Merge-Schritt 1 + +- Verwenden des Python-Skripts `merge_translation.py` mit Parameter `1`: + +``` +python3 merge_translation.py 1 +``` + +- Führt ein `lupdate` auf dem **HiDrive Next Client** aus. +- Obsolete Einträge werden **nicht gelöscht**. +- Neue Keys werden hinzugefügt. +- Obsolete-Markierungen werden entfernt und die Datei wird sortiert. +- Commit durchführen. + +### 3. Merge-Schritt 2 + +- Verwenden des Skripts mit Parameter `2`: + +``` +python3 merge_translation.py 2 +``` + +- Führt ein `lupdate` aus. +- **Obsolete Keys werden entfernt**. +- Die Datei enthält jetzt nur die aktuellen Keys (unsere Keys ohne Übersetzungen). +- Commit durchführen. + +### 4. Merge-Schritt 3 + +- Verwenden des Skripts mit Parameter `3`: + +``` +python3 merge_translation.py 3 +``` + +- Sprachabhängige Diff-Dateien werden in die `.ts`Dateien gemergt. +- Leere Keys werden mit Übersetzungen gefüllt. +- Obsolete Keys aus der Diff-Datei werden gegebenenfalls eingefügt. +- Commit durchführen. + +### 5. Merge-Schritt 4 + +- Verwenden des Skripts mit Parameter `4`: + +``` +python3 merge_translation.py 4 +``` + +- Ein weiteres `lupdate` wird ausgeführt. +- Heuristische Füllung von doppelten Keys mit unseren Übersetzungen. + +### 6. Merge-Schritt 5 + +- Verwenden des Skripts mit Parameter `5`: + +``` +python3 merge_translation.py 5 +``` + +- **Obsolete Keys werden endgültig entfernt**. +- Commit durchführen. + +## Abschluss + +Nach dem letzten Schritt sind die `.ts`-Dateien vollständig lokalisiert, enthalten unsere Keys und Übersetzungen und sind frei von obsolete Keys. \ No newline at end of file diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts new file mode 100644 index 0000000000000..50e9cd4da95ae --- /dev/null +++ b/translation_scripts/de_DE.ts @@ -0,0 +1,577 @@ + + + + + Agree + Zustimmen + + + Back + Zurück + + + Necessary data + Erforderliche Daten + + + Required to ensure that the software can be used as expected + Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. + + + Save Settings + Einstellungen speichern + + + Send anonymous use + Anonyme Nutzungsdaten senden + + + Settings + Einstellungen + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. + + + + BasicComboBox + + Clear status message menu + Statusmeldungs-Menü löschen + + + + CallNotificationDialog + + Answer Talk call notification + Benachrichtigung zu Talk-Anruf beantworten + + + Decline Talk call notification + Benachrichtigung zu Talk-Anruf ablehnen + + + Talk notification caller avatar + Avatar zu Benachrichtigung über Talk-Anrufer + + + + CloudProviderWrapper + + Quit sync client + Sync-Client beenden + + + + ConflictDelegate + + Local version + Lokale Version + + + Server version + Serverversion + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Bei der schnellen Synchronisierung werden nur Änderungen an Dateien und Ordnern innerhalb der Ordner synchronisiert, die bereits untersucht wurden. Dies kann die Reaktionsfähigkeit bei der Ersteinrichtung virtueller Dateien erheblich erhöhen. Allerdings führt dies zu redundanten Downloads von Dateien, die in einen noch nicht erfassten Ordner verschoben wurden. + + + + FileProviderFileDelegate + + Delete + Löschen + + + + FileProviderSettings + + Signal file provider domain + Domain des Signaldateianbieters + + + + FileProviderStorageInfo + + Evict local copies... + Lokale Kopien entfernen... + + + + FileProviderSyncStatus + + All synced! + Alles synchronisiert! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Ordner Sync hinzufügen + + + Step 3 of 3: Selektive Synchronisation + Schritt 3 von 3: Selektive Synchronisierung + + + + FolderWizardSourcePage + + &Choose + &Wählen + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Wählen Sie einen Ordner auf Ihrer Festplatte, der dauerhaft mit Ihrem %1 verbunden sein soll. Alle Dateien und Unterordner werden automatisch hochgeladen und synchronisiert. + + + Step 1 of 3: Select local folder + Schritt 1 von 3: Lokalen Ordner auswählen + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Beide Ordner sind dauerhaft miteinander verknüpft und die jeweiligen Inhalte werden automatisch synchronisiert und aktualisiert. + + + Create folder + Ordner erstellen + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Bitte wählen oder erstellen Sie nun einen Zielordner in Ihrem %1, in den der Inhalt hochgeladen und synchronisiert werden soll. + + + Step 2 of 3: Directory in your %1 + Schritt 2 von 3: Verzeichnis in Ihrem %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 Konten wurden von einem älteren Desktop-Client erkannt. + Sollen die Konten importiert werden? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) von %2 Serverkapazität verwendet. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. + + + Expand Memory + Speicher erweitern + + + Force sync now + Synchronisierung jetzt erzwingen + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0067 + + + Storage space %1% occupied + Speicherplatz %1% belegt + + + There are folders that were not synchronized because they are external storages: + Es gibt Ordner, die nicht synchronisiert werden konnten, da sie externe Speicher sind: + + + There are folders that were not synchronized because they are too big or external storages: + Es gibt Ordner, die nicht synchronisiert werden konnten, da sie zu groß oder externe Speicher sind: + + + There are folders that were not synchronized because they are too big: + Einige Ordner konnten nicht synchronisiert werden, da sie zu groß sind: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihren mnemonischen Verschlüsselungsschlüssel nicht mehr zugegriffen werden. +<b>Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze von 12 Wörterbuchwörtern. Bitte notieren Sie sich diese und bewahren Sie sie auf. Sie werden benötigt, um Ihrem Konto weitere Geräte hinzuzufügen (z. B. Ihr Mobiltelefon oder Laptop). + + + + OCC::CaseClashFilenameDialog + + Existing file + Vorhandene Datei + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Fehler bei der Einrichtung der verschlüsselten Metadaten: Die ursprüngliche Signatur vom Server ist leer. + + + Encrypted metadata setup error! + Einrichtungsfehler für verschlüsselte Metadaten! + + + + OCC::Flow2AuthWidget + + Open Browser + Im Browser öffnen + + + + OCC::Folder + + A folder from an external storage has been added. + Ein Ordner von einem externen Speicher wurde hinzugefügt. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + + + A new folder larger than %1 MB has been added: %2. + Ein neuer Ordner größer als %1 MB wurde hinzugefügt: %2. + + + Proceed with Deletion + Mit der Löschung fortfahren + + + Remove all files? + Alle Dateien entfernen? + + + Restore Files from Server + Dateien vom Server wiederherstellen + + + Restore Files to Server + Dateien auf dem Server wiederherstellen + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Neuen Ordner erstellen + + + + OCC::FolderMan + + (backup %1) + (Sicherung %1) + + + (backup) + (Sicherung) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synchronisieren Sie jeden anderen lokalen Ordner mit Ihrem %1 + + + + OCC::FolderWizardLocalPath + + Choose + Wählen Sie + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Analyse der Datenerhebung für bedarfsgerechte Gestaltung + + + Ask for confirmation before synchronizing external storages + Bestätigung erfragen, bevor externe Speicher synchronisiert werden + + + Ask for confirmation before synchronizing new folders larger than + Um eine Bestätigung bitten, bevor Sie neue Ordner synchronisieren, die größer sind als + + + Automatically disable synchronisation of folders that overcome limit + Automatisch die Synchronisierung von Ordnern beenden, die das Limit überschreiten + + + Data Protection + Datenschutzbestimmungen + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0044 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0045 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0047 + + + More Information + Mehr Informationen + + + Open Source Software + Open-Source-Software + + + Privacy Policy + Datenschutzerklärung + + + Show sync folders in &Explorer's navigation pane + Synchronisierungsordner im Navigationsbereich des &Explorers anzeigen + + + Updates + Aktualisierungen + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Neues Ignoriermuster hinzufügen + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Dateien oder Ordner, die diesem Muster entsprechen, werden nicht synchronisiert. + +Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen eines Ordners verhindern würden. Dies ist nützlich für Metadaten. + + + Ignore Pattern + Muster ignorieren + + + + OCC::NetworkSettings + + No proxy + Kein Proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Ordner %1 konnte nicht erstellt werden + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Ordner %1 kann nicht umbenannt werden, da ein Konflikt zwischen lokalen Datei- oder Ordnernamen besteht! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners + + + + OCC::SettingsDialog + + New account + Neues Konto + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Diese Verbindung ist verschlüsselt mit %1 Bit %2. + + + This connection is NOT secure as it is not encrypted. + Diese Verbindung ist NICHT sicher, da diese nicht verschlüsselt ist. + + + + OCC::Theme + + easy/0118 + easy/0148 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Fehler beim Fertigstellen des Elements. + + + Failed to unlock encrypted folder. + Verschlüsselter Ordner konnte nicht entsperrt werden. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Benutzer %1 konnte nicht zum Zugriffsordner %2 hinzugefügt oder entfernt werden + + + + OCC::User + + %1 notifications + %1 Benachrichtigungen + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Sie wurden von Ihrem Konto %1 bei %2 abgemeldet. Bitte melden Sie sich erneut an.</b> + + + + OCC::sesSnackBar + + Success + Erfolg + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Wenn diese Option gesetzt ist, werden bestehende Inhalte im lokalen Ordner gelöscht, um eine saubere Synchronisierung nur der Serverdaten zu ermöglichen.</p><p>Wählen Sie diese Option nicht, wenn die lokalen Inhalte auf den Server übertragen werden sollen.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Es konnte kein Debug-Archiv am ausgewählten Ort erstellt werden! + + + Failed to create debug archive + Fehler beim Erstellen des Debug-Archivs + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + Das Verzeichnis %1 kann nicht Teil Ihres Synchronisationsverzeichnisses sein. Bitte wählen Sie einen anderen Ordner. + + + + SesTrayHeader + + Open Nextcloud in browser + HiDrive Next im Browser öffnen + + + Website + Website + + + + ShareDetailsPage + + Copy share link + Freigabe-Link kopieren + + + Custom Permissions + Benutzerdefinierte Berechtigungen + + + Enter the note to recipient + Geben Sie eine Notiz an den Empfänger ein + + + Share link copied! + Freigabelink kopiert! + + + + TrayFoldersMenuButton + + Files + Dateien + + + + progress + + Updated local virtual files metadata + Aktualisierte Metadaten für lokale virtuelle Dateien + + + updating local virtual files metadata + Aktualisierung der Metadaten lokaler virtueller Dateien + + + diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts new file mode 100644 index 0000000000000..bff748820cff3 --- /dev/null +++ b/translation_scripts/en.ts @@ -0,0 +1,577 @@ + + + + + Agree + Agree + + + Back + Back + + + Necessary data + Necessary data + + + Required to ensure that the software can be used as expected + Required to ensure that the software can be used as expected + + + Save Settings + Save Settings + + + Send anonymous use + Send anonymous use + + + Settings + Settings + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + + BasicComboBox + + Clear status message menu + Delete status message menu + + + + CallNotificationDialog + + Answer Talk call notification + Answer Talk call notification + + + Decline Talk call notification + Decline Talk call notification + + + Talk notification caller avatar + Talk notification caller avatar + + + + CloudProviderWrapper + + Quit sync client + Quit sync client + + + + ConflictDelegate + + Local version + Local version + + + Server version + Server version + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + + FileProviderFileDelegate + + Delete + Delete + + + + FileProviderSettings + + Signal file provider domain + Signal file provider domain + + + + FileProviderStorageInfo + + Evict local copies... + Evict local copies... + + + + FileProviderSyncStatus + + All synced! + All synced! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Add Folder Sync + + + Step 3 of 3: Selektive Synchronisation + Step 3 of 3: Selective Synchronisation + + + + FolderWizardSourcePage + + &Choose + &Choose + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized. + + + Step 1 of 3: Select local folder + Step 1 of 3: Select local folder + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder + Create folder + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Step 2 of 3: Directory in your %1 + Step 2 of 3: Directory in your %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + + + Expand Memory + Expand Memory + + + Force sync now + Force sync now + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0077 + + + Storage space %1% occupied + Storage space %1% occupied + + + There are folders that were not synchronized because they are external storages: + There are folders that were not synchronised because they are external storages: + + + There are folders that were not synchronized because they are too big or external storages: + There are folders that were not synchronised because they are too big or external storages: + + + There are folders that were not synchronized because they are too big: + There are folders that were not synchronised because they are too big: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + + + OCC::CaseClashFilenameDialog + + Existing file + Existing file + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Encrypted metadata setup error: initial signature from server is empty. + + + Encrypted metadata setup error! + Encrypted metadata setup error! + + + + OCC::Flow2AuthWidget + + Open Browser + Open Browser + + + + OCC::Folder + + A folder from an external storage has been added. + A folder from an external storage has been added. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + + + A new folder larger than %1 MB has been added: %2. + A new folder larger than %1 MB has been added: %2. + + + Proceed with Deletion + Proceed with deletion + + + Remove all files? + Remove all files? + + + Restore Files from Server + Restore files from server + + + Restore Files to Server + Restore files to server + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Create new folder + + + + OCC::FolderMan + + (backup %1) + (backup %1) + + + (backup) + (backup) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synchronize any other local folder with your %1 + + + + OCC::FolderWizardLocalPath + + Choose + Choose + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Enter the name of the new folder to be created below "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Use virtual files instead of downloading content immediately %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Analysis data collection for needs-based design + + + Ask for confirmation before synchronizing external storages + Ask for confirmation before synchronizing external storages + + + Ask for confirmation before synchronizing new folders larger than + Ask for confirmation before synchronizing new folders larger than + + + Automatically disable synchronisation of folders that overcome limit + Automatically disable synchronisation of folders that overcome limit + + + Data Protection + Data Protection + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0004 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0005 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0007 + + + More Information + More Information + + + Open Source Software + Open Source Software + + + Privacy Policy + Privacy Policy + + + Show sync folders in &Explorer's navigation pane + Show sync folders in &Explorer's navigation pane + + + Updates + Updates + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Add a new ignore pattern: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + + + Ignore Pattern + Ignore Pattern + + + + OCC::NetworkSettings + + No proxy + No proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Could not create folder %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Folder %1 cannot be renamed because of a local file or folder name clash! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Upload of %1 exceeds the quota for the folder + + + + OCC::SettingsDialog + + New account + New Account + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + This connection is encrypted using %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + This connection is NOT secure as it is not encrypted. + + + + OCC::Theme + + easy/0118 + easy/0108 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Failed to finalize item. + + + Failed to unlock encrypted folder. + Failed to unlock encrypted folder. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Could not add or remove user %1 to access folder %2 + + + + OCC::User + + %1 notifications + %1 notifications + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>You have been logged out of your account %1 at %2. Please login again.</b> + + + + OCC::sesSnackBar + + Success + Success + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Could not create debug archive in selected location! + + + Failed to create debug archive + Failed to create debug archive + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + The directory %1 cannot be part of your sync directory. Please choose another folder. + + + + SesTrayHeader + + Open Nextcloud in browser + Open HiDrive Next in browser + + + Website + Website + + + + ShareDetailsPage + + Copy share link + Copy share link + + + Custom Permissions + Custom Permissions + + + Enter the note to recipient + Enter the note to recipient + + + Share link copied! + Share link copied! + + + + TrayFoldersMenuButton + + Files + Files + + + + progress + + Updated local virtual files metadata + Updated local virtual files metadata + + + updating local virtual files metadata + Updating local virtual files metadata + + + diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts new file mode 100644 index 0000000000000..ba8ee5486eb62 --- /dev/null +++ b/translation_scripts/en_GB.ts @@ -0,0 +1,577 @@ + + + + + Agree + Agree + + + Back + Back + + + Necessary data + Necessary data + + + Required to ensure that the software can be used as expected + Required to ensure that the software can be used as expected + + + Save Settings + Save Settings + + + Send anonymous use + Send anonymous use + + + Settings + Settings + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + + BasicComboBox + + Clear status message menu + Delete status message menu + + + + CallNotificationDialog + + Answer Talk call notification + Answer Talk call notification + + + Decline Talk call notification + Decline Talk call notification + + + Talk notification caller avatar + Talk notification caller avatar + + + + CloudProviderWrapper + + Quit sync client + Quit sync client + + + + ConflictDelegate + + Local version + Local version + + + Server version + Server version + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + + FileProviderFileDelegate + + Delete + Delete + + + + FileProviderSettings + + Signal file provider domain + Signal file provider domain + + + + FileProviderStorageInfo + + Evict local copies... + Evict local copies... + + + + FileProviderSyncStatus + + All synced! + All synced! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Add Folder Sync + + + Step 3 of 3: Selektive Synchronisation + Step 3 of 3: Selective Synchronisation + + + + FolderWizardSourcePage + + &Choose + &Choose + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Step 1 of 3: Select local folder + Step 1 of 3: Select local folder + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder + Create folder + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Step 2 of 3: Directory in your %1 + Step 2 of 3: Directory in your %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + + + Expand Memory + Expand Memory + + + Force sync now + Force sync now + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0057 + + + Storage space %1% occupied + Storage space %1% occupied + + + There are folders that were not synchronized because they are external storages: + There are folders that were not synchronised because they are external storages: + + + There are folders that were not synchronized because they are too big or external storages: + There are folders that were not synchronised because they are too big or external storages: + + + There are folders that were not synchronized because they are too big: + There are folders that were not synchronised because they are too big: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + + + OCC::CaseClashFilenameDialog + + Existing file + Existing file + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Encrypted metadata setup error: initial signature from server is empty. + + + Encrypted metadata setup error! + Encrypted metadata setup error! + + + + OCC::Flow2AuthWidget + + Open Browser + Open Browser + + + + OCC::Folder + + A folder from an external storage has been added. + A folder from an external storage has been added. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + + + A new folder larger than %1 MB has been added: %2. + A new folder larger than %1 MB has been added: %2. + + + Proceed with Deletion + Proceed with Deletion + + + Remove all files? + Remove all files? + + + Restore Files from Server + Restore Files from Server + + + Restore Files to Server + Restore Files to Server + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Create new folder + + + + OCC::FolderMan + + (backup %1) + (backup %1) + + + (backup) + (backup) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synchronize any other local folder with your %1 + + + + OCC::FolderWizardLocalPath + + Choose + Choose + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Enter the name of the new folder to be created below "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Use virtual files instead of downloading content immediately %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Analysis data collection for needs-based design + + + Ask for confirmation before synchronizing external storages + Ask for confirmation before synchronising external storages + + + Ask for confirmation before synchronizing new folders larger than + Ask for confirmation before synchronizing new folders larger than + + + Automatically disable synchronisation of folders that overcome limit + Automatically disable synchronisation of folders that overcome limit + + + Data Protection + Data Protection + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0004 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0005 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0007 + + + More Information + More Information + + + Open Source Software + Open Source Software + + + Privacy Policy + Privacy Policy + + + Show sync folders in &Explorer's navigation pane + Show sync folders in &Explorer's navigation pane + + + Updates + Updates + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Add a new ignore pattern: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + + + Ignore Pattern + Ignore Pattern + + + + OCC::NetworkSettings + + No proxy + No proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Could not create folder %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Folder %1 cannot be renamed because of a local file or folder name clash! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Upload of %1 exceeds the quota for the folder + + + + OCC::SettingsDialog + + New account + New account + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + This connection is encrypted using %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + This connection is NOT secure as it is not encrypted. + + + + OCC::Theme + + easy/0118 + easy/0108 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Failed to finalize item. + + + Failed to unlock encrypted folder. + Failed to unlock encrypted folder. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Could not add or remove user %1 to access folder %2 + + + + OCC::User + + %1 notifications + %1 notifications + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>You have been logged out of your account %1 at %2. Please login again.</b> + + + + OCC::sesSnackBar + + Success + Success + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Could not create debug archive in selected location! + + + Failed to create debug archive + Failed to create debug archive + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + The directory %1 cannot be part of your sync directory. Please choose another folder. + + + + SesTrayHeader + + Open Nextcloud in browser + Open HiDrive Next in browser + + + Website + Website + + + + ShareDetailsPage + + Copy share link + Copy share link + + + Custom Permissions + Custom Permissions + + + Enter the note to recipient + Enter the note to recipient + + + Share link copied! + Share link copied! + + + + TrayFoldersMenuButton + + Files + Files + + + + progress + + Updated local virtual files metadata + Updated local virtual files metadata + + + updating local virtual files metadata + Updating local virtual files metadata + + + diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts new file mode 100644 index 0000000000000..56cf0e16c28e6 --- /dev/null +++ b/translation_scripts/es.ts @@ -0,0 +1,578 @@ + + + + + Agree + Aceptar + + + Back + Volver + + + Necessary data + Datos necesarios + + + Required to ensure that the software can be used as expected + Necesario para garantizar que el software puede utilizarse según lo previsto + + + Save Settings + Guardar ajustes + + + Send anonymous use + Enviar uso anónimo + + + Settings + Ajustes + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + + BasicComboBox + + Clear status message menu + Borrar el menú de mensajes de estado + + + + CallNotificationDialog + + Answer Talk call notification + Aviso de llamada de Answer Talk + + + Decline Talk call notification + Rechazar la notificación de llamadas de Talk + + + Talk notification caller avatar + Avatar de la notificación de llamada + + + + CloudProviderWrapper + + Quit sync client + Cerrar cliente de sincronización + + + + ConflictDelegate + + Local version + Versión local + + + Server version + Versión del servidor + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + + + FileProviderFileDelegate + + Delete + Borrar + + + + FileProviderSettings + + Signal file provider domain + Dominio del proveedor de archivos de firmas + + + + FileProviderStorageInfo + + Evict local copies... + Desalojar las copias locales... + + + + FileProviderSyncStatus + + All synced! + ¡Todo está sincronizado! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Añadir sincronización de carpetas + + + Step 3 of 3: Selektive Synchronisation + Paso 3 de 3: Sincronización selectiva + + + + FolderWizardSourcePage + + &Choose + &Elegir + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + + + Step 1 of 3: Select local folder + Paso 1 de 3: Seleccionar carpeta local + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + + + Create folder + Crear carpeta + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + + + Step 2 of 3: Directory in your %1 + Paso 2 de 3: Directorio en su %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. + + + Expand Memory + Ampliar la memoria + + + Force sync now + Forzar la sincronización ahora + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0087 + + + Storage space %1% occupied + Espacio de almacenamiento %1% ocupado + + + There are folders that were not synchronized because they are external storages: + Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: + + + There are folders that were not synchronized because they are too big or external storages: + Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: + + + There are folders that were not synchronized because they are too big: + Hay carpetas que no se han sincronizado porque son demasiado grandes: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. +<b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + + + OCC::CaseClashFilenameDialog + + Existing file + Archivo existente + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. + + + Encrypted metadata setup error! + ¡Hubo un error al configurar los metadatos cifrados! + + + + OCC::Flow2AuthWidget + + Open Browser + Abrir en el navegador + + + + OCC::Folder + + A folder from an external storage has been added. + Una carpeta de almacenamiento externo ha sido añadida. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Se ha eliminado un gran número de archivos del servidor. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Se ha eliminado un gran número de archivos de tu carpeta local '%1'. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. + + + A new folder larger than %1 MB has been added: %2. + Una carpeta mayor de %1 MB ha sido añadida: %2. + + + Proceed with Deletion + Proceder a la supresión + + + Remove all files? + ¿Eliminar todos los archivos? + + + Restore Files from Server + Restaurar archivos del servidor + + + Restore Files to Server + Restaurar archivos en el servidor + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Crear nueva carpeta + + + + OCC::FolderMan + + (backup %1) + (copia de seguridad %1) + + + (backup) + (copia de seguridad) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Sincroniza cualquier otra carpeta local con tu %1 + + + + OCC::FolderWizardLocalPath + + Choose + Seleccione + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Introduce el nombre de la nueva carpeta que se creará debajo de "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Recogida de datos de análisis para un diseño basado en las necesidades + + + Ask for confirmation before synchronizing external storages + Pide confirmación antes de sincronizar almacenamientos externos + + + Ask for confirmation before synchronizing new folders larger than + Pedir confirmación antes de sincronizar carpetas nuevas mayores a + + + Automatically disable synchronisation of folders that overcome limit + Desactivar automáticamente la sincronización de carpetas que superen el límite + + + Data Protection + Protección de datos + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0014 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0015 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0017 + + + More Information + Más información + + + Open Source Software + Software de código abierto + + + Privacy Policy + Política de privacidad + + + Show sync folders in &Explorer's navigation pane + Mostrar carpetas de sincronización en el panel de navegación de &Explorer + + + Updates + Actualizaciones + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Añadir un nuevo patrón de ignorar: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Los archivos o carpetas que coincidan con este patrón no se sincronizarán. + +Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. + + + Ignore Pattern + Ignorar patrón + + + + OCC::NetworkSettings + + No proxy + Sin proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + No se pudo crear la carpeta %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + La subida %1 excede el límite de tamaño de la carpeta + + + + OCC::SettingsDialog + + New account + Nueva cuenta + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Esta conexión está cifrada con %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Esta conexión NO ES SEGURA, pues no está cifrada. + + + + OCC::Theme + + easy/0118 + easy/0118 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Fallo al finalizar ítem. + + + Failed to unlock encrypted folder. + Fallo al desbloquear carpeta cifrada. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 + + + + OCC::User + + %1 notifications + %1 notificaciones + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> + + + + OCC::sesSnackBar + + Success + Éxito + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. + + + + QObject + + Could not create debug archive in selected location! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + + Failed to create debug archive + Error al crear el archivo de depuración + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + + + SesTrayHeader + + Open Nextcloud in browser + Abrir HiDrive Next en el navegador + + + Website + Sitio web + + + + ShareDetailsPage + + Copy share link + Copiar enlace de recurso compartido + + + Custom Permissions + Permisos personalizados + + + Enter the note to recipient + Introducir la nota al destinatario + + + Share link copied! + ¡Enlace compartido copiado! + + + + TrayFoldersMenuButton + + Files + Archivos + + + + progress + + Updated local virtual files metadata + Actualizados los metadatos de los archivos virtuales locales + + + updating local virtual files metadata + Actualización de los metadatos de los archivos virtuales locales + + + diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts new file mode 100644 index 0000000000000..67df93e63ae3e --- /dev/null +++ b/translation_scripts/fr.ts @@ -0,0 +1,577 @@ + + + + + Agree + Accepter + + + Back + Retour + + + Necessary data + Données indispensables + + + Required to ensure that the software can be used as expected + Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu + + + Save Settings + Sauvegarder les paramètres + + + Send anonymous use + Envoyer utilisation anonyme + + + Settings + Paramètres + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. + + + + BasicComboBox + + Clear status message menu + Menu d'effacement du message de statut + + + + CallNotificationDialog + + Answer Talk call notification + Répondre à la notification d'appel de Talk + + + Decline Talk call notification + Décliner la notification d'appel de Talk + + + Talk notification caller avatar + Avatar de l'appelant de la notification Talk + + + + CloudProviderWrapper + + Quit sync client + Quitter le client de synchro + + + + ConflictDelegate + + Local version + Version locale + + + Server version + Version du serveur + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La synchronisation rapide va uniquement synchroniser les modifications des fichiers et des dossiers dans les dossiers qui ont été explorés. Ceci peut significativement augmenter la réactivité sur la configuration initiale des fichiers virtuelles. Cependant, cela va causer des téléchargements redondants de fichiers déplacés dans un dossier non exploré. + + + + FileProviderFileDelegate + + Delete + Supprimer + + + + FileProviderSettings + + Signal file provider domain + Indiquer le domaine du fournisseur de fichiers + + + + FileProviderStorageInfo + + Evict local copies... + Supprimer les copies locales + + + + FileProviderSyncStatus + + All synced! + Tout est synchronisé ! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Ajouter une synchronisation de dossiers + + + Step 3 of 3: Selektive Synchronisation + Étape 3 sur 3 : synchronisation sélective + + + + FolderWizardSourcePage + + &Choose + &Choisir + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Sélectionnez sur votre disque dur un dossier qui doit être en permanence rattaché à votre %1. Tous les fichiers et sous-dossiers sont automatiquement importés et synchronisés. + + + Step 1 of 3: Select local folder + Étape 1 sur 3 : sélectionner un dossier local + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Les deux dossiers sont en permanence rattachés et leur contenu respectif est automatiquement synchronisé et importé. + + + Create folder + Créer un dossier + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + À présent, sélectionnez ou créez dans votre %1 un dossier cible dans lequel le contenu doit être importé et synchronisé. + + + Step 2 of 3: Directory in your %1 + Étape 2 sur 3 : répertoire dans votre %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 comptes ont été détectés à partir d'un ancien client de bureau. +Doivent-ils être importés ? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) utilisés sur %2. Certains dossiers, montés depuis le réseau ou partagés, peuvent avoir des limites différentes. + + + Expand Memory + Augmenter la mémoire + + + Force sync now + Forcer la synchronisation maintenant + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0057 + + + Storage space %1% occupied + Espace de stockage %1% occupé + + + There are folders that were not synchronized because they are external storages: + Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe : + + + There are folders that were not synchronized because they are too big or external storages: + Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe ou qu'ils sont de taille trop importante : + + + There are folders that were not synchronized because they are too big: + Certains dossiers n'ont pas été synchronisés parce qu'ils sont de taille trop importante : + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Cette opération cryptera votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé mnémonique de cryptage. +<b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir continuer ? + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour ajouter d’autres appareils à votre compte (comme votre smartphone ou votre ordinateur portable). + + + + OCC::CaseClashFilenameDialog + + Existing file + Dossier existant + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Le fichier n'a pas pu être synchronisé car il génère un conflit de cas avec un fichier existant sur ce système. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Erreur de configuration des métadonnées cryptées : la signature initiale du serveur est vide. + + + Encrypted metadata setup error! + Erreur de configuration des métadonnées chiffrées ! + + + + OCC::Flow2AuthWidget + + Open Browser + Ouvrir le navigateur + + + + OCC::Folder + + A folder from an external storage has been added. + Un nouveau dossier localisé sur un stockage externe a été ajouté. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Un grand nombre de fichiers ont été supprimés sur le serveur. +Veuillez confirmer si vous souhaitez procéder à ces suppressions. +Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le dossier '%1' vers le serveur. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Un grand nombre de fichiers de votre dossier local "%1" ont été supprimés. +Veuillez confirmer si vous souhaitez procéder à ces suppressions. +Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le serveur. + + + A new folder larger than %1 MB has been added: %2. + Un nouveau dossier de taille supérieure à %1 Mo a été ajouté : %2. + + + Proceed with Deletion + Procéder à la suppression + + + Remove all files? + Supprimer tous les fichiers ? + + + Restore Files from Server + Restaurer des fichiers à partir du serveur + + + Restore Files to Server + Restaurer les fichiers sur le serveur + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Créer un nouveau dossier + + + + OCC::FolderMan + + (backup %1) + (sauvegarde %1) + + + (backup) + (sauvegarde) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synchronisez n’importe quel autre dossier local avec votre %1 + + + + OCC::FolderWizardLocalPath + + Choose + Choisissez + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Entrez le nom du nouveau dossier à créer dans "%1" : + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Utiliser les fichiers virtuels %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Collecte des données d’analyse pour une conception basée sur les besoins + + + Ask for confirmation before synchronizing external storages + Confirmation avant de synchroniser des stockages externes + + + Ask for confirmation before synchronizing new folders larger than + Demander la confirmation avant de synchroniser les dossiers plus grands que + + + Automatically disable synchronisation of folders that overcome limit + Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite + + + Data Protection + Protection des données + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0024 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0025 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0027 + + + More Information + Plus d’informations + + + Open Source Software + Logiciel libre + + + Privacy Policy + Politique de confidentialité + + + Show sync folders in &Explorer's navigation pane + Afficher les dossiers synchronisés dans le panneau de navigation de l'&Explorateur de fichiers + + + Updates + Mises à jour + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Ajouter un nouveau motif d'exclusion: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Les fichiers ou dossiers qui correspondent à ce modèle ne seront pas synchronisés. + +Les objets autorisés à être supprimés le seront s'ils empêchent la suppression d'un dossier. Ceci est utile pour les métadonnées. + + + Ignore Pattern + Ignorer le modèle + + + + OCC::NetworkSettings + + No proxy + Aucun serveur proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Impossible de créer le dossier %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Le dossier %1 ne peut pas être renommé en raison d’un conflit de nom avec un fichier ou un dossier local ! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + L'envoi de %1 amène un dépassement de quota pour le dossier + + + + OCC::SettingsDialog + + New account + Nouveau compte + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Cette connexion est chiffrée en utilisant %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Cette connexion n'est PAS sécurisée car elle n'est pas chiffrée. + + + + OCC::Theme + + easy/0118 + easy/0128 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Échec de finalisation de l’élément. + + + Failed to unlock encrypted folder. + Échec du déverrouillage du dossier chiffré. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Impossible de supprimer l’utilisateur %1 au dossier d’accès %2 ou de l’y ajouter + + + + OCC::User + + %1 notifications + %1 notifications + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Vous avez été déconnecté(e) de votre compte %1 à %2. Veuillez vous reconnecter.</b> + + + + OCC::sesSnackBar + + Success + Réussite + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si cette case est cochée, le contenu existant du dossier local sera supprimé pour démarrer une synchronisation propre depuis le serveur.</p><p>Ne pas cocher si le contenu local doit être téléversé vers le serveur.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Impossible de créer une archive de débogage à l’emplacement sélectionné ! + + + Failed to create debug archive + Échec de création de l’archive de débogage + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + La répertoire %1 ne peut pas faire partie de votre répertoire de synchronisation. Veuillez choisir un autre dossier. + + + + SesTrayHeader + + Open Nextcloud in browser + Ouvrir HiDrive Next dans le navigateur + + + Website + Site Web + + + + ShareDetailsPage + + Copy share link + Copier le lien + + + Custom Permissions + Autorisations personnalisées + + + Enter the note to recipient + Saisir la remarque à l’attention du destinataire + + + Share link copied! + Lien copié ! + + + + TrayFoldersMenuButton + + Files + Fichiers + + + + progress + + Updated local virtual files metadata + Métadonnées des fichiers virtuels locaux mises à jour + + + updating local virtual files metadata + Mise à jour des métadonnées des fichiers virtuels locaux + + + diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts new file mode 100644 index 0000000000000..222966131c6fa --- /dev/null +++ b/translation_scripts/it.ts @@ -0,0 +1,577 @@ + + + + + Agree + Consenti + + + Back + Indietro + + + Necessary data + Dati necessari + + + Required to ensure that the software can be used as expected + Necessario per garantire che il software possa essere utilizzato come previsto. + + + Save Settings + Salva le impostazioni + + + Send anonymous use + Invia l'uso anonimo + + + Settings + Impostazioni + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. + + + + BasicComboBox + + Clear status message menu + Cancella messaggio di stato + + + + CallNotificationDialog + + Answer Talk call notification + Notifica di risposta chiamata Talk + + + Decline Talk call notification + Notifica di rifiuto chiamata Talk + + + Talk notification caller avatar + Avatar chiamante notifica Talk + + + + CloudProviderWrapper + + Quit sync client + Chiudi il client di sincronizzazione + + + + ConflictDelegate + + Local version + Versione locale + + + Server version + Versione del server + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronizzazione veloce sincronizzerà cambiamenti solo sui file e cartelle che sono stati esplorati. Questo migliorarerà sensibilmente la responsività, specie al primo avvio coi file virtuali. Per contro, causerà lo scaricamento ripetuto di file spostati verso una cartella inesplorata. + + + + FileProviderFileDelegate + + Delete + Cancella + + + + FileProviderSettings + + Signal file provider domain + Dominio del fornitore del file di segnale + + + + FileProviderStorageInfo + + Evict local copies... + Evita copie locali... + + + + FileProviderSyncStatus + + All synced! + Tutto sincronizzato! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Aggiungi cartella di sincronizzazione + + + Step 3 of 3: Selektive Synchronisation + Fase 3 di 3: sincronizzazione selettiva + + + + FolderWizardSourcePage + + &Choose + S&cegli + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Selezionare una cartella sul disco rigido che deve essere collegata in modo permanente al %1. Tutti i file e le sottocartelle vengono caricati e sincronizzati automaticamente. + + + Step 1 of 3: Select local folder + Passo 1 di 3: selezionare la cartella locale + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Le due cartelle sono collegate in modo permanente e i rispettivi contenuti vengono sincronizzati e aggiornati automaticamente. + + + Create folder + Crea cartella + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Selezionare o creare una cartella di destinazione nel proprio %1 in cui caricare e sincronizzare il contenuto. + + + Step 2 of 3: Directory in your %1 + Fase 2 di 3: directory nel vostro %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 account trovati da una versione precedente del client desktop. + Importare gli account? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) di %2 in uso. Alcune cartelle, incluse quelle montate in rete o le cartelle condivise, potrebbero avere limiti diversi. + + + Expand Memory + Upgrade Storage + + + Force sync now + Forza ora la sincronizzazione + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0067 + + + Storage space %1% occupied + Spazio di Storage %1% occupato + + + There are folders that were not synchronized because they are external storages: + Ci sono nuove cartelle che non sono state sincronizzate poiché sono archiviazioni esterne: + + + There are folders that were not synchronized because they are too big or external storages: + Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi o archiviazioni esterne: + + + There are folders that were not synchronized because they are too big: + Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Verrà cifrata la cartella e tutti i file al suo interno. Questi file non saranno più accessibili senza la tua chiave mnemonica di crittografia. + <b>Questo processo è irreversibile. Vuoi davvero procedere?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Per proteggere la tua identità crittografica, la cifriamo con un codice mnemonico di 12 parole di dizionario. Annotale e tienile al sicuro. Saranno necessarie per aggiungere altri dispositivi al tuo account (come il tuo smartphone o il portatile). + + + + OCC::CaseClashFilenameDialog + + Existing file + File esistente + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Il file non può essere sincronizzato perché genera un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Errore di configurazione dei metadati crittografati: la firma iniziale del server è vuota. + + + Encrypted metadata setup error! + Eerrore nell'impostazione dei metadati di crittografia! + + + + OCC::Flow2AuthWidget + + Open Browser + Apri il browser + + + + OCC::Folder + + A folder from an external storage has been added. + Una nuova cartella da un'archiviazione esterna è stata aggiunta. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Un gran numero di file nel server è stato eliminato. + Conferma se vuoi procedere con queste eliminazioni. + In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Un gran numero di file nella cartella locale '%1' sono stati eliminati. + Si prega di confermare se si desidera procedere con queste eliminazioni. + In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. + + + A new folder larger than %1 MB has been added: %2. + Una nuova cartella più grande di %1 MB è stata aggiunta: %2. + + + Proceed with Deletion + Procedi con la cancellazione + + + Remove all files? + Rimuovere tutti i file? + + + Restore Files from Server + Ripristina i file dal server + + + Restore Files to Server + Ripristina i file sul server + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Crea una nuova cartella + + + + OCC::FolderMan + + (backup %1) + (copia di sicurezza %1) + + + (backup) + (copia di sicurezza) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Sincronizzare qualsiasi altra cartella locale con la %1 + + + + OCC::FolderWizardLocalPath + + Choose + Scegliere + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Digita il nome della nuova cartella da creare sotto a "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Usa file virtuali invece di scaricare immediatamente il contenuto %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + Analisi della raccolta dei dati per la progettazione basata sui usability + + + Ask for confirmation before synchronizing external storages + Chiedi conferma prima di sincronizzare storage esterni + + + Ask for confirmation before synchronizing new folders larger than + Chiedi conferma prima di sincronizzare cartelle più grandi di + + + Automatically disable synchronisation of folders that overcome limit + Disabilita automaticamente la sincronizzazione delle cartelle che superano il limite + + + Data Protection + disposizioni in materia di protezione dei dati + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0034 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0035 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0037 + + + More Information + Ulteriori informazioni + + + Open Source Software + Software open source + + + Privacy Policy + Informativa sulla privacy + + + Show sync folders in &Explorer's navigation pane + Mostra le cartelle di sincronizzazione nel pannello di navigazione di &Explorer + + + Updates + Aggiornamenti + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Aggiungi un nuovo modello di esclusione: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + I file e le cartelle che verificano un modello non saranno sincronizzati. + + Gli elementi per i quali è consentita l'eliminazione saranno eliminati se impediscono la rimozione di una cartella. Utile per i metadati. + + + Ignore Pattern + Modello di esclusione + + + + OCC::NetworkSettings + + No proxy + Nessun proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Impossibile creare la cartella %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + La cartella %1 non può essere rinominata perché il suo nome conflitta con quello di un altro file o cartella! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Il caricamento di %1 supera la quota per la cartella + + + + OCC::SettingsDialog + + New account + Nuovo account + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Questa connessione è cifrata utilizzando %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Questa connessione NON è sicura poiché non è cifrata. + + + + OCC::Theme + + easy/0118 + easy/0138 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Impossibile finalizzare l'elemento. + + + Failed to unlock encrypted folder. + Sblocco della cartella cifrata non riuscito. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Impossibile aggiungere o rimuovere l'utente %1 per accedere alla cartella %2 + + + + OCC::User + + %1 notifications + %1 Notifiche + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Sei stato disconnesso dal tuo utente %1 su %2. Accedi nuovamente.</b> + + + + OCC::sesSnackBar + + Success + successo + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Se questa casella è marcata, il contenuto della cartella locale sarà cancellato per avviare una nuova sincronizzazione dal server.</p><p>Non marcarla se il contenuto locale deve essere caricato nella cartella del server.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Impossibile creare archivio con i log per il debug nel percorso selezionato! + + + Failed to create debug archive + Impossibile creare archivio con i log per il debug + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + La directory %1 non può far parte della directory di sincronizzazione. Selezionare un'altra cartella. + + + + SesTrayHeader + + Open Nextcloud in browser + Apri HiDrive Next nel browser + + + Website + Homepage + + + + ShareDetailsPage + + Copy share link + Copia il collegamento di condivisione + + + Custom Permissions + Permessi definiti dall'utente + + + Enter the note to recipient + Inserire una nota per il destinatario + + + Share link copied! + Collegamento del link di condivisione copiato! + + + + TrayFoldersMenuButton + + Files + File + + + + progress + + Updated local virtual files metadata + Metadati dei file virtuali locali aggiornati + + + updating local virtual files metadata + Aggiornamento dei metadati dei file virtuali locali + + + diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py new file mode 100644 index 0000000000000..80dddbeb35484 --- /dev/null +++ b/translation_scripts/merge_translation.py @@ -0,0 +1,350 @@ +import sys +import subprocess +import xml.etree.ElementTree as ET + +def load_source_messages(source_file): + """Load messages from the source XML file into a dictionary organized by context.""" + tree = ET.parse(source_file) + root = tree.getroot() + messages = {} + + for context in root.findall("context"): + context_name = context.find("name").text if context.find("name") is not None else "" + if context_name not in messages: + messages[context_name] = {} + + for message in context.findall("message"): + source = message.find("source") + translation = message.find("translation") + if source is not None and translation is not None: + messages[context_name][source.text] = translation.text + + return messages + +def update_target_messages(target_file, source_messages): + """Update messages in the target XML file and insert missing ones in the correct context.""" + tree = ET.parse(target_file) + root = tree.getroot() + + existing_messages = {} + for context in root.findall("context"): + context_name = context.find("name").text if context.find("name") is not None else "" + if context_name not in existing_messages: + existing_messages[context_name] = set() + + for message in context.findall("message"): + source = message.find("source") + translation = message.find("translation") + if source is not None and translation is not None: + existing_messages[context_name].add(source.text) + if context_name in source_messages and source.text in source_messages[context_name]: + translation.text = source_messages[context_name][source.text] + translation.attrib.pop("type", None) # Remove type="unfinished" attribute + + # Insert missing messages into corresponding contexts + for context_name, messages in source_messages.items(): + target_context = None + for context in root.findall("context"): + if (context.find("name") is not None and context.find("name").text == context_name): + target_context = context + break + + if target_context is None: + target_context = ET.SubElement(root, "context") + context_name_elem = ET.SubElement(target_context, "name") + context_name_elem.text = context_name + + for source_text, translation_text in messages.items(): + if source_text not in existing_messages.get(context_name, set()): + message = ET.SubElement(target_context, "message") + source = ET.SubElement(message, "source") + source.text = source_text + translation = ET.SubElement(message, "translation") + translation.text = translation_text + + tree.write(target_file, encoding="utf-8", xml_declaration=True) + +def merge(source, target): + source_messages = load_source_messages(source) + update_target_messages(target, source_messages) + +def pop_vanished(target_file): + tree = ET.parse(target_file) + root = tree.getroot() + + + for context in root.findall("context"): + for message in context.findall("message"): + source = message.find("source") + translation = message.find("translation") + + if translation.attrib.get("type") == "vanished": + translation.attrib.pop("type") # Remove type="vanished" attribute + + tree.write(target_file, encoding="utf-8", xml_declaration=True) + +def replace_in_file(file_path): + try: + # Open the file, read its contents, and replace the string + with open(file_path, 'r', encoding='utf-8', newline='') as file: + content = file.read() + + # Replace the old string with the new string + updated_content = content.replace("&quot;", """).replace("&apos;", "'") + + # Write the updated content back to the file + with open(file_path, 'w', encoding='utf-8', newline='') as file: + file.write(updated_content) + + # print(f"Successfully replaced '{old_string}' with '{new_string}' in '{file_path}'.") + except FileNotFoundError: + print(f"Error: File '{file_path}' not found.") + except Exception as e: + print(f"An error occurred: {e}") + +def replace_quotes_and_apostrophes(text): + """Replace quotes and apostrophes with their HTML encodings.""" + # return html.escape(text) + # return text.replace('"', '"') + return text.replace('"', '"').replace("'", ''') + +def process_file(input_file, output_file): + try: + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Process and tags + for tag in root.findall(".//source") + root.findall(".//translation") + root.findall(".//extracomment"): + if tag.text: # Check if there's any text inside the tag + tag.text = replace_quotes_and_apostrophes(tag.text) + + # Write the updated XML to the output file + with open(output_file, "w", encoding="utf-8", newline="\n") as outfile: + tree.write(outfile, encoding="unicode", xml_declaration=True) + + # with open(output_file, "wb", newline="") as f: + # tree.write(f, encoding="utf-8", xml_declaration=True) + # # tree.write(output_file, encoding="utf-8", xml_declaration=True) + except ET.ParseError as e: + print(f"Error parsing XML file: {e}") + except Exception as e: + print(f"An error occurred: {e}") + +def repair_file(file): + process_file(file, file) + replace_in_file(file) + +def sort_contexts(input_file, output_file): + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Find all elements + contexts = root.findall("context") + + # Sort elements based on the text inside their child + def get_name_text(ctx): + name_element = ctx.find("name") + # If is missing or its text is None, treat it as an empty string + return name_element.text.strip().lower() if name_element is not None and name_element.text else "" + + contexts.sort(key=get_name_text) + + # Remove all existing elements from the root + for context in root.findall("context"): + root.remove(context) + + # Append sorted elements back to the root + for context in contexts: + root.append(context) + + # Write the updated XML to the output file + tree.write(output_file, encoding="utf-8", xml_declaration=True) + + +def sort_messages(input_file, output_file): + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Traverse all tags + for context in root.findall("context"): + # Find all tags within the current + messages = context.findall("message") + + # Define the sorting key + def message_sort_key(message): + # Get the tag and its filename attribute + location = message.find("location") + filename = location.get("filename") if location is not None else "" + + # Get the text of the tag + source = message.find("source") + source_text = source.text.strip() if source is not None and source.text else "" + + # Return a tuple for sorting: primary (filename), secondary (source_text) + return (filename, source_text) + + # Sort messages by the defined key + messages.sort(key=message_sort_key) + + # Remove existing tags from the + for message in messages: + context.remove(message) + + # Re-add sorted tags to the + for message in messages: + context.append(message) + + # Write the updated XML to the output file + tree.write(output_file, encoding="utf-8", xml_declaration=True) + +def full_sort(file): + sort_contexts(file, file) + sort_messages(file, file) + +def sort_and_repair(file): + full_sort(file) + repair_file(file) + +def run_script(script_name, input_file, output_file): + try: + # Running each script with input and output file arguments + subprocess.run(['python', script_name, input_file, output_file], check=True) + # print(f"{script_name} executed successfully with input '{input_file}' and output '{output_file}'.") + except subprocess.CalledProcessError as e: + print(f"An error occurred while running {script_name} with input '{input_file}' and output '{output_file}': {e}") + +def run_lupdate(ts_files, mode="default"): + command = [ + r"C:\Craft64\bin\lupdate.exe", + "-locations", "none", + "-no-ui-lines", + "-no-sort", + r"..\src\libsync", + r"..\src\gui", + r"..\src\csync", + r"..\src\common", + r"..\src\cmd", + "-ts" + ] + + command_no_obs = [ + r"C:\Craft64\bin\lupdate.exe", + "-locations", "none", + "-no-ui-lines", + "-no-sort", + "-no-obsolete", + r"..\src\libsync", + r"..\src\gui", + r"..\src\csync", + r"..\src\common", + r"..\src\cmd", + "-ts" + ] + + command_location = [ + r"C:\Craft64\bin\lupdate.exe", + "-locations", "absolute", + "-no-sort", + "-no-obsolete", + r"..\src\libsync", + r"..\src\gui", + r"..\src\csync", + r"..\src\common", + r"..\src\cmd", + "-ts" + ] + + # Append all ts_files paths to the command list + command.extend(ts_files) + command_no_obs.extend(ts_files) + command_location.extend(ts_files) + + try: + if mode == "default": + result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True) + elif mode == "no_obs": + result = subprocess.run(command_no_obs, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True) + elif mode == "location": + result = subprocess.run(command_location, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True) + print("Output:", result.stdout) + except subprocess.CalledProcessError as e: + print("Error:", e.stderr) + + +if __name__ == "__main__": + ts_files = [r"..\translations\client_de.ts" + , r"..\translations\client_es.ts" + , r"..\translations\client_fr.ts" + , r"..\translations\client_nl.ts" + , r"..\translations\client_en.ts" + , r"..\translations\client_en_GB.ts" + ] + + diff_files = [r".\de_DE.ts" + , r".\es.ts" + , r".\fr.ts" + , r".\nl.ts" + , r".\en.ts" + , r".\en_GB.ts" + ] + + if len(sys.argv) == 1: + print("Usage: python merge.py ") + sys.exit() + if len(sys.argv) == 3: + print("Usage: python remove_line_attributes.py ") + sys.exit() + if len(sys.argv) == 2: + step = sys.argv[1] + try: + + if step == "0" or step == "all": + # Step 0 full sort + for ts_file in ts_files: + sort_and_repair(ts_file) + print("Step 0 completed: sorted") + + if step == "1" or step == "all": + # Step 1 lupdate Nextcloud in our latest change state, keep obsolete + run_lupdate(ts_files) + + # Step 2 full sort + for ts_file in ts_files: + pop_vanished(ts_file) + sort_and_repair(ts_file) + + print("Step 1 completed: lupdate (keep obsolete), pop vanished, full sort, you should commit now") + + if step == "2" or step == "all": + run_lupdate(ts_files, "no_obs") + for ts_file in ts_files: + sort_and_repair(ts_file) + print("Step 2 completed: lupdate removed obsolete, you should commit now") + + # Step 3 merge diff into + if step == "3" or step == "all": + + for ts_file in ts_files: + merge(diff_files[ts_files.index(ts_file)], ts_file) + sort_and_repair(ts_file) + print("Step 3 completed: merged, sorted, you should commit now") + + if step == "4" or step == "all": + run_lupdate(ts_files) + for ts_file in ts_files: + pop_vanished(ts_file) + sort_and_repair(ts_file) + print("Step 4 completed: lupdate fill duplicates, format, you should commit now") + + if step == "5" or step == "all": + run_lupdate(ts_files, "location") + for ts_file in ts_files: + sort_and_repair(ts_file) + print("Step 5 completed: lupdate remove obsolete, sort, you should commit now") + + except Exception as e: + print(f"An error occurred: {e}") + diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts new file mode 100644 index 0000000000000..c35c97efa3047 --- /dev/null +++ b/translation_scripts/nl.ts @@ -0,0 +1,577 @@ + + + + + Agree + Akkoord + + + Back + Terug + + + Necessary data + Noodzakelijke gegevens + + + Required to ensure that the software can be used as expected + Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht + + + Save Settings + Instellingen opslaan + + + Send anonymous use + Anoniem gebruik verzenden + + + Settings + Instellingen + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0045'>privacybeleid</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. + + + + BasicComboBox + + Clear status message menu + Statusbericht wissen + + + + CallNotificationDialog + + Answer Talk call notification + Answer Talk call notification + + + Decline Talk call notification + Afwijzingsmelding voor gesprek + + + Talk notification caller avatar + Spraakmelding beller avatar + + + + CloudProviderWrapper + + Quit sync client + Afsluiten synchronisatieclient + + + + ConflictDelegate + + Local version + Lokale versie + + + Server version + Serverversie + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + + FileProviderFileDelegate + + Delete + Verwijderen + + + + FileProviderSettings + + Signal file provider domain + Signal file provider domain + + + + FileProviderStorageInfo + + Evict local copies... + Lokale kopieën verwijderen... + + + + FileProviderSyncStatus + + All synced! + Alles gesynchroniseerd! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Mapsynchronisatie toevoegen + + + Step 3 of 3: Selektive Synchronisation + Stap 3 van 3: Selektieve synchronisatie + + + + FolderWizardSourcePage + + &Choose + &Kiezen + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Selecteer een map op je harde schijf die permanent verbonden moet zijn met je %1. Alle bestanden en submappen worden automatisch geüpload en gesynchroniseerd. + + + Step 1 of 3: Select local folder + Stap 1 van 3: Selecteer lokale map + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Beide mappen zijn permanent gekoppeld en de respectieve inhoud wordt automatisch gesynchroniseerd en bijgewerkt. + + + Create folder + Maak map + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Selecteer of maak nu een doelmap in uw %1 waar de inhoud moet worden geüpload en gesynchroniseerd. + + + Step 2 of 3: Directory in your %1 + Stap 2 van 3: Directory in uw %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + Er zijn %1 accounts gedetecteerd van een oudere desktopclient. +Moeten de accounts worden geïmporteerd? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) van %2 in gebruik. Sommige mappen, inclusief netwerkmappen en gedeelde mappen, kunnen andere limieten hebben. + + + Expand Memory + Geheugen uitbreiden + + + Force sync now + Synchronisatie nu forceren + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0097 + + + Storage space %1% occupied + Opslagruimte %1% bezet + + + There are folders that were not synchronized because they are external storages: + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze op externe opslag staan: + + + There are folders that were not synchronized because they are too big or external storages: + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn of op externe opslag staan: + + + There are folders that were not synchronized because they are too big: + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Dit zal je map en alle bestanden erin versleutelen. Deze bestanden zullen niet langer toegankelijk zijn zonder je coderingssleutel. +<b>Dit proces is niet omkeerbaar. Weet u zeker dat u wilt doorgaan? + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + + + OCC::CaseClashFilenameDialog + + Existing file + Bestaand bestand + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Fout bij opzetten versleutelde metagegevens: initiële handtekening van server is leeg. + + + Encrypted metadata setup error! + Encrypted metadata setup error! + + + + OCC::Flow2AuthWidget + + Open Browser + Browser openen + + + + OCC::Folder + + A folder from an external storage has been added. + Er is een map op externe opslag toegevoegd. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Een groot aantal bestanden op de server is verwijderd. +Bevestig alstublieft of u door wilt gaan met deze verwijderingen. +U kunt ook alle verwijderde bestanden terugzetten door vanuit de map '%1' te uploaden naar de server. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Een groot aantal bestanden in uw lokale map '%1' is verwijderd. +Bevestig alstublieft of u door wilt gaan met deze verwijderingen. +U kunt ook alle verwijderde bestanden herstellen door ze van de server te downloaden. + + + A new folder larger than %1 MB has been added: %2. + Er is een nieuwe map groter dan %1 MB toegevoegd: %2. + + + Proceed with Deletion + Doorgaan met verwijderen + + + Remove all files? + Alle bestanden verwijderen? + + + Restore Files from Server + Bestanden terugzetten van server + + + Restore Files to Server + Bestanden terugzetten naar server + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Nieuwe map maken + + + + OCC::FolderMan + + (backup %1) + (backup %1) + + + (backup) + (backup) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synchroniseer een andere lokale map met uw %1 + + + + OCC::FolderWizardLocalPath + + Choose + Kies + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Voer de naam van de hieronder te maken nieuwe map in "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Gebruik virtuele bestanden in plaats van direct downloaden content%1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Analyse van gegevensverzameling voor een op behoeften gebaseerd ontwerp + + + Ask for confirmation before synchronizing external storages + Vraag bevestiging voor synchronisatie van mappen op externe opslag + + + Ask for confirmation before synchronizing new folders larger than + Ask for confirmation before synchronizing new folders larger than + + + Automatically disable synchronisation of folders that overcome limit + Automatically disable synchronisation of folders that overcome limit + + + Data Protection + Gegevensbescherming + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0054 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0055 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0057 + + + More Information + Meer informatie + + + Open Source Software + Open source software + + + Privacy Policy + Privacybeleid + + + Show sync folders in &Explorer's navigation pane + Show sync folders in &Explorer's navigation pane + + + Updates + Updates + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Voeg nieuw negeerpatroon toe: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Bestanden of mappen die overeenkomen met dit patroon worden niet gesynchroniseerd. + +Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhinderen dat een map verwijderd wordt. Dit is nuttig voor metadata. + + + Ignore Pattern + Patroon negeren + + + + OCC::NetworkSettings + + No proxy + Geen proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Kon map %1 niet maken + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Map %1 kan niet hernoemd worden vanwege een lokale bestands- of mapnaamclash! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Upload van %1 overschrijdt het quotum voor de map + + + + OCC::SettingsDialog + + New account + Nieuw account + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Deze verbinding is versleuteld via %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Deze verbinding is NIET veilig, omdat deze niet versleuteld is. + + + + OCC::Theme + + easy/0118 + easy/0108 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Failed to finalize item. + + + Failed to unlock encrypted folder. + Kon versleutelde map niet ontgrendelen. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Kan gebruiker %1 niet toevoegen of verwijderen voor toegang tot map %2 + + + + OCC::User + + %1 notifications + %1 kennisgevingen + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>U bent afgemeld bij uw account %1 op %2. Log opnieuw in.</b> + + + + OCC::sesSnackBar + + Success + Succes + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Als deze checkbox is aangevinkt zullen bestaande bestanden in de lokale map worden gewist om een schone sync vanaf de server te starten.</p><p>Vink dit niet aan als de lokale bestanden naar de map op de server zouden moeten worden geüploadet.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Kon geen debug-archief aanmaken op geselecteerde locatie! + + + Failed to create debug archive + Debug-archief is niet aangemaakt + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + De map %1 kan geen deel uitmaken van je synchronisatiemap. Kies een andere map. + + + + SesTrayHeader + + Open Nextcloud in browser + HiDrive Next in browser openen + + + Website + Website + + + + ShareDetailsPage + + Copy share link + Copy share link + + + Custom Permissions + Aangepaste machtigingen + + + Enter the note to recipient + Voer de notitie aan de ontvanger in + + + Share link copied! + Share link copied! + + + + TrayFoldersMenuButton + + Files + Bestanden + + + + progress + + Updated local virtual files metadata + Metagegevens van lokale virtuele bestanden bijgewerkt + + + updating local virtual files metadata + Metagegevens van lokale virtuele bestanden bijwerken + + + diff --git a/translation_scripts/sort.py b/translation_scripts/sort.py new file mode 100644 index 0000000000000..d9bceda712115 --- /dev/null +++ b/translation_scripts/sort.py @@ -0,0 +1,145 @@ +import sys +import subprocess +import xml.etree.ElementTree as ET + +def replace_in_file(file_path): + try: + # Open the file, read its contents, and replace the string + with open(file_path, 'r', encoding='utf-8', newline='') as file: + content = file.read() + + # Replace the old string with the new string + updated_content = content.replace("&quot;", """).replace("&apos;", "'") + + # Write the updated content back to the file + with open(file_path, 'w', encoding='utf-8', newline='') as file: + file.write(updated_content) + + # print(f"Successfully replaced '{old_string}' with '{new_string}' in '{file_path}'.") + except FileNotFoundError: + print(f"Error: File '{file_path}' not found.") + except Exception as e: + print(f"An error occurred: {e}") + +def replace_quotes_and_apostrophes(text): + """Replace quotes and apostrophes with their HTML encodings.""" + # return html.escape(text) + # return text.replace('"', '"') + return text.replace('"', '"').replace("'", ''') + +def process_file(input_file, output_file): + try: + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Process and tags + for tag in root.findall(".//source") + root.findall(".//translation") + root.findall(".//extracomment"): + if tag.text: # Check if there's any text inside the tag + tag.text = replace_quotes_and_apostrophes(tag.text) + + # Write the updated XML to the output file + with open(output_file, "w", encoding="utf-8", newline="\n") as outfile: + tree.write(outfile, encoding="unicode", xml_declaration=True) + + # with open(output_file, "wb", newline="") as f: + # tree.write(f, encoding="utf-8", xml_declaration=True) + # # tree.write(output_file, encoding="utf-8", xml_declaration=True) + except ET.ParseError as e: + print(f"Error parsing XML file: {e}") + except Exception as e: + print(f"An error occurred: {e}") + +def repair_file(file): + process_file(file, file) + replace_in_file(file) + +def sort_contexts(input_file, output_file): + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Find all elements + contexts = root.findall("context") + + # Sort elements based on the text inside their child + def get_name_text(ctx): + name_element = ctx.find("name") + # If is missing or its text is None, treat it as an empty string + return name_element.text.strip().lower() if name_element is not None and name_element.text else "" + + contexts.sort(key=get_name_text) + + # Remove all existing elements from the root + for context in root.findall("context"): + root.remove(context) + + # Append sorted elements back to the root + for context in contexts: + root.append(context) + + # Write the updated XML to the output file + tree.write(output_file, encoding="utf-8", xml_declaration=True) + + +def sort_messages(input_file, output_file): + # Parse the XML file + tree = ET.parse(input_file) + root = tree.getroot() + + # Traverse all tags + for context in root.findall("context"): + # Find all tags within the current + messages = context.findall("message") + + # Define the sorting key + def message_sort_key(message): + # Get the tag and its filename attribute + location = message.find("location") + filename = location.get("filename") if location is not None else "" + + # Get the text of the tag + source = message.find("source") + source_text = source.text.strip() if source is not None and source.text else "" + + # Return a tuple for sorting: primary (filename), secondary (source_text) + return (filename, source_text) + + # Sort messages by the defined key + messages.sort(key=message_sort_key) + + # Remove existing tags from the + for message in messages: + context.remove(message) + + # Re-add sorted tags to the + for message in messages: + context.append(message) + + # Write the updated XML to the output file + tree.write(output_file, encoding="utf-8", xml_declaration=True) + +def full_sort(file): + sort_contexts(file, file) + sort_messages(file, file) + +def sort_and_repair(file): + full_sort(file) + repair_file(file) + + +if __name__ == "__main__": + if len(sys.argv) == 1: + print("Usage: python sort.py ") + sys.exit() + if len(sys.argv) == 2: + input_xml = sys.argv[1] + output_xml = sys.argv[1] + else: + sys.exit() + + try: + sort_and_repair(input_xml) + print(f"{input_xml} sorted.") + except Exception as e: + print(f"An error occurred: {e}") \ No newline at end of file From 831a1ab286eb8baa97079464651cfa20b2685882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 9 Apr 2026 15:02:45 +0100 Subject: [PATCH 002/148] SES-457 - Merge Fixes --- src/gui/folderwizard.cpp | 4 +- src/gui/generalsettings.ui | 99 +++++++++++++++++++++++++++---- src/gui/tray/asyncimageresponse.h | 1 + src/libsync/logger.cpp | 1 - 4 files changed, 91 insertions(+), 14 deletions(-) diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp index 178d2e62de828..3867035600283 100644 --- a/src/gui/folderwizard.cpp +++ b/src/gui/folderwizard.cpp @@ -628,9 +628,7 @@ bool FolderWizardRemotePath::isComplete() const } if (targetPath.startsWith(remoteDir)) { - _ui.warnFrame->show(); - _ui.warnLabel->hide(); - _ui.infoLabel->setText(tr("You are already syncing the subfolder %1 at %2.").arg(Utility::escape(targetPath), Utility::escape(localDir))); + showWarn(tr("You are already syncing the subfolder %1 at %2.").arg(Utility::escape(targetPath), Utility::escape(localDir))); break; } diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index 2a9b6810614df..0d8369658570a 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -56,9 +56,9 @@ - + - Show Server &Notifications + Show call notifications @@ -72,13 +72,13 @@ - - - - Show call notifications - - - + + + + Show Chat Notifications + + + @@ -131,7 +131,14 @@ Check Now - + + + + + Show Server &Notifications + + + @@ -335,6 +342,61 @@ + + + + + + + Server poll interval + + + + + + + 5 + + + 999999 + + + 1 + + + + + + + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + + Qt::TextFormat::RichText + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + @@ -629,6 +691,23 @@ + + + + Legal Notice + + + + + + + false + + + Restore &Default + + + diff --git a/src/gui/tray/asyncimageresponse.h b/src/gui/tray/asyncimageresponse.h index c366798177def..538646b0497f0 100644 --- a/src/gui/tray/asyncimageresponse.h +++ b/src/gui/tray/asyncimageresponse.h @@ -8,6 +8,7 @@ #include #include #include "sesFileIconProvider.h" +#include class AsyncImageResponse : public QQuickImageResponse { diff --git a/src/libsync/logger.cpp b/src/libsync/logger.cpp index ca342151d904d..e0bbd513b7baf 100644 --- a/src/libsync/logger.cpp +++ b/src/libsync/logger.cpp @@ -238,7 +238,6 @@ void Logger::setupTemporaryFolderLogDir() auto dir = temporaryFolderLogDirPath(); if (!QDir().mkpath(dir)) return; - } // Since we're using the temp folder, lock down permissions to owner only QFile::Permissions perm = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner; From a9d97863389bbc84ff8612d8952e15e842996524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 09:42:21 +0200 Subject: [PATCH 003/148] SES-457 - updated settings & launch.json --- .vscode/launch.json | 2 +- .vscode/settings.json | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 35bb85a720422..7957174658135 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -50,7 +50,7 @@ "name": "(RelWithDebInfo) Launch HiDriveNext", "type": "cppvsdbg", "request": "launch", - "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/IONOS_HiDrive_Next.exe", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/ionos-hidrive-next.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", diff --git a/.vscode/settings.json b/.vscode/settings.json index 0b78cf0be5532..d8b381bfbe634 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,8 @@ "C:/Craft64/dev-utils/bin" ], "BUILD_TESTING":"OFF", + "LOCALBUILD": "ON", + "WHITELABEL_NAME": "ionos", }, "cmake.buildDirectory": "${workspaceFolder}/../build/${buildKitTargetOs}-${buildKitVendor}-${buildKitTargetArch}/${buildType}", "files.associations": { From f1cae3f8d7a76f9be5a4dd3f54b1fa1e8002c948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 11:36:55 +0200 Subject: [PATCH 004/148] SES-459 Merge Fixes --- src/gui/CMakeLists.txt | 1501 +++++++++++++-------------- src/gui/generalsettings.ui | 9 +- src/gui/tray/usermodel.cpp | 2 +- src/gui/wizard/flow2authcredspage.h | 1 + src/gui/wizard/flow2authwidget.ui | 13 + 5 files changed, 773 insertions(+), 753 deletions(-) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 05357dae8c997..654da93a172f7 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -6,19 +6,25 @@ find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS Widgets Svg Qml Quick Qui find_package(KF6Archive REQUIRED) find_package(KF6GuiAddons) -if (NOT TARGET Qt::GuiPrivate) - message(FATAL_ERROR "Could not find GuiPrivate component of Qt. It might be shipped as a separate package, please check that.") -endif() - if(CMAKE_BUILD_TYPE MATCHES Debug) add_definitions(-DQT_QML_DEBUG) endif() +if(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") + add_definitions(-DBUILDTYPE_RELWITHDEBINFO) +endif() IF(BUILD_UPDATER) add_subdirectory(updater) endif() +# Icon switch: if branding is done, use the neutral state icons +set(STATE_SUBDIR "") +if(APPLICATION_NAME STREQUAL "Nextcloud") + set(STATE_SUBDIR "nextcloud/") +endif() + configure_file(${CMAKE_SOURCE_DIR}/theme.qrc.in ${CMAKE_SOURCE_DIR}/theme.qrc) +configure_file(${CMAKE_SOURCE_DIR}/ionos-theme.qrc.in ${CMAKE_SOURCE_DIR}/ionos-theme.qrc) set(theme_dir ${CMAKE_SOURCE_DIR}/theme) set(client_UI_SRCS @@ -50,219 +56,219 @@ set(client_UI_SRCS wizard/webview.ui wizard/welcomepage.ui wizard/proxysettings.ui -) - -list(APPEND client_UI_SRCS - wizard/dataprotectionpage.ui - wizard/dataprotectionsettingspage.ui -) - -qt_add_resources(client_UI_SRCS ../../resources.qrc ../../ionos.qrc ${CMAKE_SOURCE_DIR}/theme.qrc ${CMAKE_SOURCE_DIR}/ionos-theme.qrc) - -set(client_SRCS - accountmanager.h - accountmanager.cpp - accountsettings.h - accountsettings.cpp - accountsetupfromcommandlinejob.h - accountsetupfromcommandlinejob.cpp - accountsetupcommandlinemanager.h - accountsetupcommandlinemanager.cpp - application.h - application.cpp - invalidfilenamedialog.h - invalidfilenamedialog.cpp - caseclashfilenamedialog.h - caseclashfilenamedialog.cpp - callstatechecker.h - callstatechecker.cpp - conflictdialog.h - conflictdialog.cpp - conflictsolver.h - conflictsolver.cpp - connectionvalidator.h - connectionvalidator.cpp - editlocallyjob.h - editlocallyjob.cpp - editlocallymanager.h - editlocallymanager.cpp - editlocallyverificationjob.h - editlocallyverificationjob.cpp - filetagmodel.h - filetagmodel.cpp - folder.h - folder.cpp - foldercreationdialog.h - foldercreationdialog.cpp - folderman.h - folderman.cpp - folderstatusmodel.h - folderstatusmodel.cpp - folderstatusdelegate.h - folderstatusdelegate.cpp - folderstatusview.h - folderstatusview.cpp - folderwatcher.h - folderwatcher.cpp - folderwizard.h - folderwizard.cpp - generalsettings.h - generalsettings.cpp - legalnotice.h - legalnotice.cpp - ignorelisteditor.h - ignorelisteditor.cpp - ignorelisttablewidget.h - ignorelisttablewidget.cpp - lockwatcher.h - lockwatcher.cpp - logbrowser.h - logbrowser.cpp - networksettings.h - networksettings.cpp - ocsnavigationappsjob.h - ocsnavigationappsjob.cpp - ocsjob.h - ocsjob.cpp - ocssharejob.h - ocssharejob.cpp - ocsshareejob.h - ocsshareejob.cpp - openfilemanager.h - openfilemanager.cpp - owncloudgui.h - owncloudgui.cpp - owncloudsetupwizard.h - owncloudsetupwizard.cpp - passwordinputdialog.h - passwordinputdialog.cpp - selectivesyncdialog.h - selectivesyncdialog.cpp - settingsdialog.h - settingsdialog.cpp - sharemanager.h - sharemanager.cpp - profilepagewidget.h - profilepagewidget.cpp - sharee.h - sharee.cpp - sslbutton.h - sslbutton.cpp - sslerrordialog.h - sslerrordialog.cpp - syncrunfilelog.h - syncrunfilelog.cpp - systray.h - systray.cpp - userinfo.h - userinfo.cpp - vfsdownloaderrordialog.h - vfsdownloaderrordialog.cpp - accountstate.h - accountstate.cpp - addcertificatedialog.h - addcertificatedialog.cpp - authenticationdialog.h - authenticationdialog.cpp - proxyauthhandler.h - proxyauthhandler.cpp - proxyauthdialog.h - proxyauthdialog.cpp - tooltipupdater.h - tooltipupdater.cpp - notificationconfirmjob.h - notificationconfirmjob.cpp - guiutility.h - guiutility.cpp - elidedlabel.h - elidedlabel.cpp - iconutils.h - iconutils.cpp - remotewipe.h - remotewipe.cpp - userstatusselectormodel.h - userstatusselectormodel.cpp - emojimodel.h - emojimodel.cpp - syncconflictsmodel.h - syncconflictsmodel.cpp - fileactivitylistmodel.h - fileactivitylistmodel.cpp - filedetails/datefieldbackend.h - filedetails/datefieldbackend.cpp - filedetails/filedetails.h - filedetails/filedetails.cpp - filedetails/sharemodel.h - filedetails/sharemodel.cpp - filedetails/shareemodel.h - filedetails/shareemodel.cpp - filedetails/sortedsharemodel.h - filedetails/sortedsharemodel.cpp - tray/svgimageprovider.h - tray/svgimageprovider.cpp - tray/syncstatussummary.h - tray/syncstatussummary.cpp - tray/activitydata.h - tray/activitydata.cpp - tray/activitylistmodel.h - tray/activitylistmodel.cpp - tray/unifiedsearchresult.h - tray/asyncimageresponse.cpp - tray/unifiedsearchresult.cpp - tray/unifiedsearchresultslistmodel.h - tray/trayimageprovider.cpp - tray/unifiedsearchresultslistmodel.cpp - tray/usermodel.h - tray/usermodel.cpp - tray/notificationhandler.h - tray/notificationhandler.cpp - tray/sortedactivitylistmodel.h - tray/sortedactivitylistmodel.cpp - creds/credentialsfactory.h - tray/talkreply.cpp - creds/credentialsfactory.cpp - creds/httpcredentialsgui.h - creds/httpcredentialsgui.cpp - creds/flow2auth.h - creds/flow2auth.cpp - creds/webflowcredentials.h - creds/webflowcredentials.cpp - creds/webflowcredentialsdialog.h - creds/webflowcredentialsdialog.cpp - wizard/postfixlineedit.h - wizard/postfixlineedit.cpp - wizard/abstractcredswizardpage.h - wizard/abstractcredswizardpage.cpp - wizard/owncloudadvancedsetuppage.h - wizard/owncloudadvancedsetuppage.cpp - wizard/owncloudconnectionmethoddialog.h - wizard/owncloudconnectionmethoddialog.cpp - wizard/owncloudhttpcredspage.h - wizard/owncloudhttpcredspage.cpp - wizard/flow2authcredspage.h - wizard/flow2authcredspage.cpp - wizard/flow2authwidget.h - wizard/flow2authwidget.cpp - wizard/owncloudsetuppage.h - wizard/owncloudsetuppage.cpp - wizard/termsofservicecheckwidget.h - wizard/termsofservicecheckwidget.cpp - wizard/termsofservicewizardpage.h - wizard/termsofservicewizardpage.cpp - wizard/owncloudwizardcommon.h - wizard/owncloudwizardcommon.cpp - wizard/owncloudwizard.h - wizard/owncloudwizard.cpp - wizard/slideshow.h - wizard/slideshow.cpp - wizard/welcomepage.h - wizard/welcomepage.cpp - wizard/linklabel.h - wizard/linklabel.cpp +) + +list(APPEND client_UI_SRCS + wizard/dataprotectionpage.ui + wizard/dataprotectionsettingspage.ui +) + +qt_add_resources(client_UI_SRCS ../../resources.qrc ../../ionos.qrc ${CMAKE_SOURCE_DIR}/theme.qrc ${CMAKE_SOURCE_DIR}/ionos-theme.qrc) + +set(client_SRCS + accountmanager.h + accountmanager.cpp + accountsettings.h + accountsettings.cpp + accountsetupfromcommandlinejob.h + accountsetupfromcommandlinejob.cpp + accountsetupcommandlinemanager.h + accountsetupcommandlinemanager.cpp + application.h + application.cpp + invalidfilenamedialog.h + invalidfilenamedialog.cpp + caseclashfilenamedialog.h + caseclashfilenamedialog.cpp + callstatechecker.h + callstatechecker.cpp + conflictdialog.h + conflictdialog.cpp + conflictsolver.h + conflictsolver.cpp + connectionvalidator.h + connectionvalidator.cpp + editlocallyjob.h + editlocallyjob.cpp + editlocallymanager.h + editlocallymanager.cpp + editlocallyverificationjob.h + editlocallyverificationjob.cpp + filetagmodel.h + filetagmodel.cpp + folder.h + folder.cpp + foldercreationdialog.h + foldercreationdialog.cpp + folderman.h + folderman.cpp + folderstatusmodel.h + folderstatusmodel.cpp + folderstatusdelegate.h + folderstatusdelegate.cpp + folderstatusview.h + folderstatusview.cpp + folderwatcher.h + folderwatcher.cpp + folderwizard.h + folderwizard.cpp + generalsettings.h + generalsettings.cpp + legalnotice.h + legalnotice.cpp + ignorelisteditor.h + ignorelisteditor.cpp + ignorelisttablewidget.h + ignorelisttablewidget.cpp + lockwatcher.h + lockwatcher.cpp + logbrowser.h + logbrowser.cpp + networksettings.h + networksettings.cpp + ocsnavigationappsjob.h + ocsnavigationappsjob.cpp + ocsjob.h + ocsjob.cpp + ocssharejob.h + ocssharejob.cpp + ocsshareejob.h + ocsshareejob.cpp + openfilemanager.h + openfilemanager.cpp + owncloudgui.h + owncloudgui.cpp + owncloudsetupwizard.h + owncloudsetupwizard.cpp + passwordinputdialog.h + passwordinputdialog.cpp + selectivesyncdialog.h + selectivesyncdialog.cpp + settingsdialog.h + settingsdialog.cpp + sharemanager.h + sharemanager.cpp + profilepagewidget.h + profilepagewidget.cpp + sharee.h + sharee.cpp + sslbutton.h + sslbutton.cpp + sslerrordialog.h + sslerrordialog.cpp + syncrunfilelog.h + syncrunfilelog.cpp + systray.h + systray.cpp + userinfo.h + userinfo.cpp + vfsdownloaderrordialog.h + vfsdownloaderrordialog.cpp + accountstate.h + accountstate.cpp + addcertificatedialog.h + addcertificatedialog.cpp + authenticationdialog.h + authenticationdialog.cpp + proxyauthhandler.h + proxyauthhandler.cpp + proxyauthdialog.h + proxyauthdialog.cpp + tooltipupdater.h + tooltipupdater.cpp + notificationconfirmjob.h + notificationconfirmjob.cpp + guiutility.h + guiutility.cpp + elidedlabel.h + elidedlabel.cpp + iconutils.h + iconutils.cpp + remotewipe.h + remotewipe.cpp + userstatusselectormodel.h + userstatusselectormodel.cpp + emojimodel.h + emojimodel.cpp + syncconflictsmodel.h + syncconflictsmodel.cpp + fileactivitylistmodel.h + fileactivitylistmodel.cpp + filedetails/datefieldbackend.h + filedetails/datefieldbackend.cpp + filedetails/filedetails.h + filedetails/filedetails.cpp + filedetails/sharemodel.h + filedetails/sharemodel.cpp + filedetails/shareemodel.h + filedetails/shareemodel.cpp + filedetails/sortedsharemodel.h + filedetails/sortedsharemodel.cpp + tray/svgimageprovider.h + tray/svgimageprovider.cpp + tray/syncstatussummary.h + tray/syncstatussummary.cpp + tray/activitydata.h + tray/activitydata.cpp + tray/activitylistmodel.h + tray/activitylistmodel.cpp + tray/unifiedsearchresult.h + tray/asyncimageresponse.cpp + tray/unifiedsearchresult.cpp + tray/unifiedsearchresultslistmodel.h + tray/trayimageprovider.cpp + tray/unifiedsearchresultslistmodel.cpp + tray/usermodel.h + tray/usermodel.cpp + tray/notificationhandler.h + tray/notificationhandler.cpp + tray/sortedactivitylistmodel.h + tray/sortedactivitylistmodel.cpp + creds/credentialsfactory.h + tray/talkreply.cpp + creds/credentialsfactory.cpp + creds/httpcredentialsgui.h + creds/httpcredentialsgui.cpp + creds/flow2auth.h + creds/flow2auth.cpp + creds/webflowcredentials.h + creds/webflowcredentials.cpp + creds/webflowcredentialsdialog.h + creds/webflowcredentialsdialog.cpp + wizard/postfixlineedit.h + wizard/postfixlineedit.cpp + wizard/abstractcredswizardpage.h + wizard/abstractcredswizardpage.cpp + wizard/owncloudadvancedsetuppage.h + wizard/owncloudadvancedsetuppage.cpp + wizard/owncloudconnectionmethoddialog.h + wizard/owncloudconnectionmethoddialog.cpp + wizard/owncloudhttpcredspage.h + wizard/owncloudhttpcredspage.cpp + wizard/flow2authcredspage.h + wizard/flow2authcredspage.cpp + wizard/flow2authwidget.h + wizard/flow2authwidget.cpp + wizard/owncloudsetuppage.h + wizard/owncloudsetuppage.cpp + wizard/termsofservicecheckwidget.h + wizard/termsofservicecheckwidget.cpp + wizard/termsofservicewizardpage.h + wizard/termsofservicewizardpage.cpp + wizard/owncloudwizardcommon.h + wizard/owncloudwizardcommon.cpp + wizard/owncloudwizard.h + wizard/owncloudwizard.cpp + wizard/slideshow.h + wizard/slideshow.cpp + wizard/welcomepage.h + wizard/welcomepage.cpp + wizard/linklabel.h + wizard/linklabel.cpp wizard/wizardproxysettingsdialog.h wizard/wizardproxysettingsdialog.cpp -) - +) + if (NOT DISABLE_ACCOUNT_MIGRATION) list(APPEND client_SRCS legacyaccountselectiondialog.h @@ -270,539 +276,532 @@ if (NOT DISABLE_ACCOUNT_MIGRATION) ) endif() -list(APPEND client_SRCS - clickablelabel.h - buttonstyle.h - ionostheme.h - whitelabeltheme.h - stratotheme.h - basetheme.h - wizard/dataprotectionpage.h - wizard/dataprotectionpage.cpp - wizard/dataprotectionsettingspage.h - wizard/dataprotectionsettingspage.cpp - ga4/datacollectionwrapper.cpp - ga4/datacollectionwrapper.h - ga4/ganalytics_worker.cpp - ga4/ganalytics_worker.h - ga4/ganalytics.cpp - ga4/ganalytics.h - sessnackbar.h - sessnackbar.cpp - sesstyle.h - sesstyle.cpp - linkbutton.h - linkbutton.cpp - buttonstylestrategy.h - sesFileIconProvider.h - sesFileIconProvider.cpp - pushbuttonstylehelper.h - pushbuttonstylehelper.cpp - moreoptionsbuttonstylehelper.h - moreoptionsbuttonstylehelper.cpp - SesComponents/syncdirvalidation.h - SesComponents/syncdirvalidation.cpp -) - -if (WITH_WEBENGINE) - list(APPEND client_SRCS - wizard/webviewpage.h - wizard/webviewpage.cpp - wizard/webview.h - wizard/webview.cpp - ) -endif() - -IF(BUILD_UPDATER) - set(updater_SRCS - updater/ocupdater.h - updater/ocupdater.cpp - updater/updateinfo.h - updater/updateinfo.cpp - updater/updater.h - updater/updater.cpp - ) -endif() - -IF( APPLE ) - list(APPEND client_SRCS cocoainitializer_mac.mm) - list(APPEND client_SRCS systray_mac_common.mm) - - list(APPEND client_SRCS systray_mac_usernotifications.mm) - - if (BUILD_FILE_PROVIDER_MODULE) - list(APPEND client_SRCS - # Symlinks to files in shell_integration/MacOSX/NextcloudIntegration/ - macOS/ClientCommunicationProtocol.h - # End of symlink files - macOS/fileprovider.h - macOS/fileprovider_mac.mm - macOS/fileproviderdomainmanager.h - macOS/fileproviderdomainmanager_mac.mm - macOS/fileproviderdomainsyncstatus.h - macOS/fileproviderdomainsyncstatus_mac.mm - macOS/fileprovidereditlocallyjob.h - macOS/fileprovidereditlocallyjob.cpp - macOS/fileprovidereditlocallyjob_mac.mm - macOS/fileprovideritemmetadata.h - macOS/fileprovideritemmetadata.cpp - macOS/fileprovideritemmetadata_mac.mm - macOS/fileprovidermaterialiseditemsmodel.h - macOS/fileprovidermaterialiseditemsmodel.cpp - macOS/fileprovidermaterialiseditemsmodel_mac.mm - macOS/fileprovidersettingscontroller.h - macOS/fileprovidersettingscontroller_mac.mm - macOS/fileprovidersocketcontroller.h - macOS/fileprovidersocketcontroller.cpp - macOS/fileprovidersocketserver.h - macOS/fileprovidersocketserver.cpp - macOS/fileprovidersocketserver_mac.mm - macOS/fileproviderstorageuseenumerationobserver.h - macOS/fileproviderstorageuseenumerationobserver.m - macOS/fileproviderutils.h - macOS/fileproviderutils_mac.mm - macOS/fileproviderxpc.h - macOS/fileproviderxpc_mac.mm - macOS/fileproviderxpc_mac_utils.h - macOS/fileproviderxpc_mac_utils.mm - macOS/progressobserver.h - macOS/progressobserver.m) - endif() - - list(APPEND client_SRCS foregroundbackground_interface.h) - list(APPEND client_SRCS foregroundbackground_mac.mm) - list(APPEND client_SRCS foregroundbackground_cocoa.mm) - - if(SPARKLE_FOUND AND BUILD_UPDATER) - # Define this, we need to check in updater.cpp - add_definitions(-DHAVE_SPARKLE) - list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h) - list(APPEND updater_DEPS ${SPARKLE_LIBRARY}) - - # Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle - # as its logic is tightly tailored around Qt frameworks - install(DIRECTORY "${SPARKLE_LIBRARY}" - DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS) - - endif() -ENDIF() - -IF( NOT WIN32 AND NOT APPLE ) - set(client_SRCS ${client_SRCS} folderwatcher_linux.cpp) -ENDIF() -IF( WIN32 ) - set(client_SRCS - ${client_SRCS} - folderwatcher_win.cpp - navigationpanehelper.h - navigationpanehelper.cpp - shellextensionsserver.cpp - ${CMAKE_SOURCE_DIR}/src/common/shellextensionutils.cpp) -ENDIF() -IF( APPLE ) - list(APPEND client_SRCS folderwatcher_mac.cpp) -ENDIF() - -set(3rdparty_SRC - ../3rdparty/QProgressIndicator/QProgressIndicator.h - ../3rdparty/QProgressIndicator/QProgressIndicator.cpp - ../3rdparty/qtlockedfile/qtlockedfile.h - ../3rdparty/qtlockedfile/qtlockedfile.cpp - ../3rdparty/qtsingleapplication/qtlocalpeer.h - ../3rdparty/qtsingleapplication/qtlocalpeer.cpp - ../3rdparty/qtsingleapplication/qtsingleapplication.h - ../3rdparty/qtsingleapplication/qtsingleapplication.cpp - ../3rdparty/qtsingleapplication/qtsinglecoreapplication.h - ../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp - ../3rdparty/kmessagewidget/kmessagewidget.h - ../3rdparty/kmessagewidget/kmessagewidget.cpp - ../3rdparty/kirigami/wheelhandler.h - ../3rdparty/kirigami/wheelhandler.cpp - ) - -set_property(SOURCE ../3rdparty/kmessagewidget/kmessagewidget.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -set_property(SOURCE ../3rdparty/kirigami/wheelhandler.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - -if(NOT WIN32) - list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp) - set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -else() - list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp ) - set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_win.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -endif() - -find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS LinguistTools) -if(Qt${QT_MAJOR_VERSION}LinguistTools_FOUND) - qt_add_translation(client_I18N ${TRANSLATIONS}) -endif() - -IF( WIN32 ) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in - ${CMAKE_CURRENT_BINARY_DIR}/version.rc - @ONLY) - set(client_version ${CMAKE_CURRENT_BINARY_DIR}/version.rc) - IF(NOT MSVC) - set(client_manifest ${CMAKE_CURRENT_SOURCE_DIR}/manifest-mingw.rc) - ENDIF() -ENDIF() - -set( final_src - ${client_SRCS} - ${client_UI_SRCS} - ${guiMoc} - ${client_I18N} - ${3rdparty_SRC} - ${3rdparty_MOC} -) - -if(Qt${QT_MAJOR_VERSION}Keychain_FOUND) - list(APPEND libsync_LINK_TARGETS Qt6::keychain) -endif() - -# add executable icon on windows and osx -include(GenerateIconsUtils) - -# For historical reasons we can not use the application_shortname -# for ownCloud but must rather set it manually. -if (NOT DEFINED APPLICATION_ICON_NAME) - set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME}) -endif() - -if(NOT DEFINED APPLICATION_FOLDER_ICON_INDEX) - set(APPLICATION_FOLDER_ICON_INDEX 0) -endif() - -set(STATE_ICONS_COLORS colored black white) - -foreach(state_icons_color ${STATE_ICONS_COLORS}) - set(STATE_ICONS_PATH "${theme_dir}/${state_icons_color}/") - - message("Generating state icons from SVG in path: ${STATE_ICONS_PATH}") - - file(GLOB_RECURSE STATE_ICONS_SVG "${STATE_ICONS_PATH}/state-*.svg") - - foreach(state_icon_svg ${STATE_ICONS_SVG}) - get_filename_component(status_icon_name_wle ${state_icon_svg} NAME_WLE) - foreach(size IN ITEMS 16;32;64;128;256) - generate_sized_png_from_svg(${state_icon_svg} ${size} OUTPUT_ICON_FULL_NAME_WLE "${status_icon_name_wle}-${size}") - endforeach() - endforeach() -endforeach() - -if ((APPLICATION_ICON_SET MATCHES "PNG") - AND - (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")) - # We may have no svg application icon in when customers use PNG - # icons in brander, but theme.qrc expects a svg icon. - file(TOUCH "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") -endif() - -if(APPLE) - set(MACOS_SIDEBAR_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-sidebar.svg") - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 16) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 32) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 64) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 128) - generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 256) -endif() - -if(WIN32) - set(STARTMENU_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-w10startmenu.svg") - generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 70) - generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 150) -endif() - -set(APP_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") - -# generate secondary icon if available (currently for Windows only)-------------------------------------- -set(APP_SECONDARY_ICONS "${theme_dir}/colored/icons") -set(APP_ICON_WIN_FOLDER_SVG "${APP_SECONDARY_ICONS}/${APPLICATION_ICON_NAME}-icon-win-folder.svg") - -set(RC_DEPENDENCIES "") - -if(WIN32) - if (EXISTS ${APP_ICON_WIN_FOLDER_SVG}) - get_filename_component(output_icon_name_win ${APP_ICON_WIN_FOLDER_SVG} NAME_WLE) - # Product icon (for smallest size) - foreach(size IN ITEMS 16;20) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") - endforeach() - - # Product icon with Windows folder (for sizes larger than 20) - foreach(size IN ITEMS 24;32;40;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_WIN_FOLDER_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") - endforeach() - - file(GLOB_RECURSE OWNCLOUD_ICONS_WIN_FOLDER "${APP_SECONDARY_ICONS}/*-${APPLICATION_ICON_NAME}-icon*") - set(APP_ICON_WIN_FOLDER_ICO_NAME "${APPLICATION_ICON_NAME}-win-folder") - set(RC_DEPENDENCIES "${RC_DEPENDENCIES} ${APP_ICON_WIN_FOLDER_ICO_NAME}.ico") - ecm_add_app_icon(APP_ICON_WIN_FOLDER ICONS "${OWNCLOUD_ICONS_WIN_FOLDER}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APP_ICON_WIN_FOLDER_ICO_NAME}" ICON_INDEX 2) - endif() -endif() -# -------------------------------------- - -if (NOT ${RC_DEPENDENCIES} STREQUAL "") - string(STRIP ${RC_DEPENDENCIES} RC_DEPENDENCIES) -endif() - -# generate primary icon from SVG (due to Win .ico vs .rc dependency issues, primary icon must always be generated last)-------------------------------------- -if(WIN32) - foreach(size IN ITEMS 16;20;24;32;40;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) - endforeach() -else() - foreach(size IN ITEMS 16;24;32;48;64;128;256;512;1024) - generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) - endforeach() -endif() - -file(GLOB_RECURSE OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*") - -if(APPLE) - file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*") - MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}") -endif() - -ecm_add_app_icon(APP_ICON RC_DEPENDENCIES ${RC_DEPENDENCIES} ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}" ICON_INDEX 1) -# -------------------------------------- - -if(WIN32) -# merge *.rc.in files for Windows (multiple ICON resources must be placed in a single file, otherwise, this won't work de to a bug in Windows compiler https://developercommunity.visualstudio.com/t/visual-studio-2017-prof-1557-cvt1100-duplicate-res/363156) - function(merge_files IN_FILE OUT_FILE) - file(READ ${IN_FILE} CONTENTS) - message("Merging ${IN_FILE} into ${OUT_FILE}") - file(APPEND ${OUT_FILE} "${CONTENTS}") - endfunction() - message("APP_ICON is: ${APP_ICON}") - if(APP_ICON) - get_filename_component(RC_IN_FOLDER ${APP_ICON}} DIRECTORY) - - file(GLOB_RECURSE RC_IN_FILES "${RC_IN_FOLDER}/*rc.in") - - foreach(rc_in_file IN ITEMS ${RC_IN_FILES}) - get_filename_component(rc_in_file_name ${rc_in_file} NAME) - get_filename_component(app_icon_name "${APP_ICON}.in" NAME) - if(NOT "${rc_in_file_name}" STREQUAL "${app_icon_name}") - merge_files(${rc_in_file} "${APP_ICON}.in") - if (DEFINED APPLICATION_FOLDER_ICON_INDEX) - MATH(EXPR APPLICATION_FOLDER_ICON_INDEX "${APPLICATION_FOLDER_ICON_INDEX}+1") - message("APPLICATION_FOLDER_ICON_INDEX is now set to: ${APPLICATION_FOLDER_ICON_INDEX}") - endif() - endif() - endforeach() - endif() -endif() -# -------------------------------------- - -if(UNIX AND NOT APPLE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") -endif() - -add_library(nextcloudCore STATIC ${final_src}) - -target_link_libraries(nextcloudCore - PUBLIC - Nextcloud::sync - Qt::Widgets - Qt::Gui - Qt::Svg - Qt::Network - Qt::Xml - Qt::Qml - Qt::Quick - Qt::QuickControls2 - Qt::QuickWidgets - KF6::Archive - ) - -if(KF6GuiAddons_FOUND) - target_link_libraries(nextcloudCore - PUBLIC - KF6::GuiAddons - ) - add_definitions(-DHAVE_KGUIADDONS) -endif() - -add_subdirectory(socketapi) - -# skip unity inclusion for files which cause problems with a CMake unity build -set_property(SOURCE - ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketapi.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketuploadjob.cpp - PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) - -foreach(FILE IN LISTS client_UI_SRCS) - set_property(SOURCE ${FILE} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) -endforeach() - -if(WITH_WEBENGINE) - target_link_libraries(nextcloudCore PUBLIC Qt::WebEngineWidgets Qt::WebEngineCore) -endif() - -set_target_properties(nextcloudCore - PROPERTIES - AUTOUIC ON - AUTOMOC ON -) - -target_include_directories(nextcloudCore - PUBLIC - ${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator - ${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile - ${CMAKE_SOURCE_DIR}/src/3rdparty/kirigami - ${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication - ${CMAKE_SOURCE_DIR}/src/3rdparty/kmessagewidget - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} -) - -if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) - if(NOT WIN32) - file(GLOB _icons "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon.png") - foreach(_file ${_icons}) - string(REPLACE "${theme_dir}/colored/" "" _res ${_file}) - string(REPLACE "-${APPLICATION_ICON_NAME}-icon.png" "" _res ${_res}) - install(FILES ${_file} RENAME ${APPLICATION_ICON_NAME}.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${_res}x${_res}/apps) - endforeach(_file) - install(FILES ${client_I18N} DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPLICATION_EXECUTABLE}/i18n) - else() - file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*") - install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements) - install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin) - install(FILES ${client_I18N} DESTINATION i18n) - endif() - - # we may not add MACOSX_BUNDLE here, if not building one - add_executable(nextcloud WIN32 main.cpp ${client_version} ${client_manifest} ${APP_ICON}) - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_EXECUTABLE}" - ) -else() - # set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. - set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns") - - # we must add MACOSX_BUNDLE only if building a bundle - add_executable(nextcloud WIN32 MACOSX_BUNDLE main.cpp ${APP_ICON}) - - if (BUILD_OWNCLOUD_OSX_BUNDLE) - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_NAME}") - else() - set_target_properties(nextcloud PROPERTIES - OUTPUT_NAME "${APPLICATION_EXECUTABLE}") - endif() - - set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations) - install(FILES ${client_I18N} DESTINATION ${QM_DIR}) - get_target_property(_qmake Qt::qmake LOCATION) - execute_process(COMMAND ${_qmake} -query QT_INSTALL_TRANSLATIONS - OUTPUT_VARIABLE QT_TRANSLATIONS_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) - install(FILES ${qt_I18N} DESTINATION ${QM_DIR}) - file(GLOB qtbase_I18N ${QT_TRANSLATIONS_DIR}/qtbase_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) - install(FILES ${qtbase_I18N} DESTINATION ${QM_DIR}) - file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm) - install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR}) -endif() - -IF(BUILD_UPDATER) - add_library(updater STATIC ${updater_SRCS}) - target_link_libraries(updater Nextcloud::sync ${updater_DEPS} Qt::Widgets Qt::Svg Qt::Network Qt::Xml) - target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - set_target_properties(updater PROPERTIES AUTOMOC ON) - target_link_libraries(nextcloudCore PUBLIC updater) -endif() - -set_target_properties(nextcloud PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} -) - -target_link_libraries(nextcloud PRIVATE nextcloudCore) - -if(TARGET PkgConfig::CLOUDPROVIDERS) - message("Building with libcloudproviderssupport") - target_sources(nextcloudCore PRIVATE cloudproviders/cloudprovidermanager.cpp cloudproviders/cloudproviderwrapper.cpp) - - string(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR) - string(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}") - string(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}") - if(NOT DBUS_PREFIX) - set(DBUS_PREFIX "com") - endif(NOT DBUS_PREFIX) - set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}") - set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}") - - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cloudproviders/cloudproviderconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/cloudproviderconfig.h) - target_compile_definitions(nextcloudCore PUBLIC -DWITH_LIBCLOUDPROVIDERS) - target_link_libraries(nextcloudCore - PRIVATE - PkgConfig::CLOUDPROVIDERS - PkgConfig::GLIB2 - PkgConfig::GIO - ) - - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "Implements=org.freedesktop.CloudProviders\n") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "[org.freedesktop.CloudProviders]") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "BusName=${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}") - list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "ObjectPath=${LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH}") - list(JOIN LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "\n" LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS) -endif() - -## handle DBUS for Fdo notifications -if( UNIX AND NOT APPLE ) - find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS DBus) - target_link_libraries(nextcloudCore PUBLIC Qt::DBus) - target_compile_definitions(nextcloudCore PUBLIC "USE_FDO_NOTIFICATIONS") -endif() - -if (APPLE) - if (BUILD_FILE_PROVIDER_MODULE) - target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications -framework FileProvider") - else() - target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications") - endif() -endif() - -install(TARGETS nextcloud - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - BUNDLE DESTINATION "." - ) - -if (WIN32) - install(FILES $ DESTINATION bin OPTIONAL) -endif() - -# FIXME: The following lines are dup in src/gui and src/cmd because it needs to be done after both are installed -#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unnecessary -# currently it needs to be done because the code right above needs to be executed no matter -# if building a bundle or not and the install_qt4_executable needs to be called afterwards -# -# OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option -if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) - get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) - get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY) - find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}") - - set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd) - - if(CMAKE_BUILD_TYPE MATCHES Debug) - set(NO_STRIP "-no-strip") - else() - set(NO_STRIP "") - endif() - - add_custom_command(TARGET nextcloud POST_BUILD - COMMAND "${MACDEPLOYQT_EXECUTABLE}" - "$/../.." - -qmldir=${CMAKE_SOURCE_DIR}/src/gui \ No newline at end of file +list(APPEND client_SRCS + clickablelabel.h + buttonstyle.h + ionostheme.h + whitelabeltheme.h + stratotheme.h + basetheme.h + wizard/dataprotectionpage.h + wizard/dataprotectionpage.cpp + wizard/dataprotectionsettingspage.h + wizard/dataprotectionsettingspage.cpp + ga4/datacollectionwrapper.cpp + ga4/datacollectionwrapper.h + ga4/ganalytics_worker.cpp + ga4/ganalytics_worker.h + ga4/ganalytics.cpp + ga4/ganalytics.h + sessnackbar.h + sessnackbar.cpp + sesstyle.h + sesstyle.cpp + linkbutton.h + linkbutton.cpp + buttonstylestrategy.h + sesFileIconProvider.h + sesFileIconProvider.cpp + pushbuttonstylehelper.h + pushbuttonstylehelper.cpp + moreoptionsbuttonstylehelper.h + moreoptionsbuttonstylehelper.cpp + SesComponents/syncdirvalidation.h + SesComponents/syncdirvalidation.cpp +) + +if (WITH_WEBENGINE) + list(APPEND client_SRCS + wizard/webviewpage.h + wizard/webviewpage.cpp + wizard/webview.h + wizard/webview.cpp + ) +endif() + +IF(BUILD_UPDATER) + set(updater_SRCS + updater/ocupdater.h + updater/ocupdater.cpp + updater/updateinfo.h + updater/updateinfo.cpp + updater/updater.h + updater/updater.cpp + ) +endif() + +IF( APPLE ) + list(APPEND client_SRCS cocoainitializer_mac.mm) + list(APPEND client_SRCS systray_mac_common.mm) + + list(APPEND client_SRCS systray_mac_usernotifications.mm) + + if (BUILD_FILE_PROVIDER_MODULE) + list(APPEND client_SRCS + # Symlinks to files in shell_integration/MacOSX/NextcloudIntegration/ + macOS/ClientCommunicationProtocol.h + # End of symlink files + macOS/fileprovider.h + macOS/fileprovider_mac.mm + macOS/fileproviderdomainmanager.h + macOS/fileproviderdomainmanager_mac.mm + macOS/fileproviderdomainsyncstatus.h + macOS/fileproviderdomainsyncstatus_mac.mm + macOS/fileprovidereditlocallyjob.h + macOS/fileprovidereditlocallyjob.cpp + macOS/fileprovidereditlocallyjob_mac.mm + macOS/fileprovideritemmetadata.h + macOS/fileprovideritemmetadata.cpp + macOS/fileprovideritemmetadata_mac.mm + macOS/fileprovidermaterialiseditemsmodel.h + macOS/fileprovidermaterialiseditemsmodel.cpp + macOS/fileprovidermaterialiseditemsmodel_mac.mm + macOS/fileprovidersettingscontroller.h + macOS/fileprovidersettingscontroller_mac.mm + macOS/fileprovidersocketcontroller.h + macOS/fileprovidersocketcontroller.cpp + macOS/fileprovidersocketserver.h + macOS/fileprovidersocketserver.cpp + macOS/fileprovidersocketserver_mac.mm + macOS/fileproviderstorageuseenumerationobserver.h + macOS/fileproviderstorageuseenumerationobserver.m + macOS/fileproviderutils.h + macOS/fileproviderutils_mac.mm + macOS/fileproviderxpc.h + macOS/fileproviderxpc_mac.mm + macOS/fileproviderxpc_mac_utils.h + macOS/fileproviderxpc_mac_utils.mm + macOS/progressobserver.h + macOS/progressobserver.m) + endif() + + list(APPEND client_SRCS foregroundbackground_interface.h) + list(APPEND client_SRCS foregroundbackground_mac.mm) + list(APPEND client_SRCS foregroundbackground_cocoa.mm) + + if(SPARKLE_FOUND AND BUILD_UPDATER) + # Define this, we need to check in updater.cpp + add_definitions(-DHAVE_SPARKLE) + list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h) + list(APPEND updater_DEPS ${SPARKLE_LIBRARY}) + + # Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle + # as its logic is tightly tailored around Qt frameworks + install(DIRECTORY "${SPARKLE_LIBRARY}" + DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS) + + endif() +ENDIF() + +IF( NOT WIN32 AND NOT APPLE ) + set(client_SRCS ${client_SRCS} folderwatcher_linux.cpp) +ENDIF() +IF( WIN32 ) + set(client_SRCS + ${client_SRCS} + folderwatcher_win.cpp + navigationpanehelper.h + navigationpanehelper.cpp + shellextensionsserver.cpp + ${CMAKE_SOURCE_DIR}/src/common/shellextensionutils.cpp) +ENDIF() +IF( APPLE ) + list(APPEND client_SRCS folderwatcher_mac.cpp) +ENDIF() + +set(3rdparty_SRC + ../3rdparty/QProgressIndicator/QProgressIndicator.h + ../3rdparty/QProgressIndicator/QProgressIndicator.cpp + ../3rdparty/qtlockedfile/qtlockedfile.h + ../3rdparty/qtlockedfile/qtlockedfile.cpp + ../3rdparty/qtsingleapplication/qtlocalpeer.h + ../3rdparty/qtsingleapplication/qtlocalpeer.cpp + ../3rdparty/qtsingleapplication/qtsingleapplication.h + ../3rdparty/qtsingleapplication/qtsingleapplication.cpp + ../3rdparty/qtsingleapplication/qtsinglecoreapplication.h + ../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp + ../3rdparty/kmessagewidget/kmessagewidget.h + ../3rdparty/kmessagewidget/kmessagewidget.cpp + ../3rdparty/kirigami/wheelhandler.h + ../3rdparty/kirigami/wheelhandler.cpp + ) + +set_property(SOURCE ../3rdparty/kmessagewidget/kmessagewidget.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +set_property(SOURCE ../3rdparty/kirigami/wheelhandler.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + +if(NOT WIN32) + list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp) + set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +else() + list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp ) + set_property(SOURCE ../3rdparty/qtlockedfile/qtlockedfile_win.cpp PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +endif() + +find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS LinguistTools) +if(Qt${QT_MAJOR_VERSION}LinguistTools_FOUND) + qt_add_translation(client_I18N ${TRANSLATIONS}) +endif() + +IF( WIN32 ) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/version.rc + @ONLY) + set(client_version ${CMAKE_CURRENT_BINARY_DIR}/version.rc) + IF(NOT MSVC) + set(client_manifest ${CMAKE_CURRENT_SOURCE_DIR}/manifest-mingw.rc) + ENDIF() +ENDIF() + +set( final_src + ${client_SRCS} + ${client_UI_SRCS} + ${guiMoc} + ${client_I18N} + ${3rdparty_SRC} + ${3rdparty_MOC} +) + +if(Qt${QT_MAJOR_VERSION}Keychain_FOUND) + list(APPEND libsync_LINK_TARGETS Qt6::keychain) +endif() + +# add executable icon on windows and osx +include(GenerateIconsUtils) + +# For historical reasons we can not use the application_shortname +# for ownCloud but must rather set it manually. +if (NOT DEFINED APPLICATION_ICON_NAME) + set(APPLICATION_ICON_NAME ${APPLICATION_SHORTNAME}) +endif() + +if(NOT DEFINED APPLICATION_FOLDER_ICON_INDEX) + set(APPLICATION_FOLDER_ICON_INDEX 0) +endif() + +set(STATE_ICONS_COLORS colored black white) + +foreach(state_icons_color ${STATE_ICONS_COLORS}) + set(STATE_ICONS_PATH "${theme_dir}/${state_icons_color}/") + + message("Generating state icons from SVG in path: ${STATE_ICONS_PATH}") + + file(GLOB_RECURSE STATE_ICONS_SVG "${STATE_ICONS_PATH}/state-*.svg") + + foreach(state_icon_svg ${STATE_ICONS_SVG}) + get_filename_component(status_icon_name_wle ${state_icon_svg} NAME_WLE) + foreach(size IN ITEMS 16;32;64;128;256) + generate_sized_png_from_svg(${state_icon_svg} ${size} OUTPUT_ICON_FULL_NAME_WLE "${status_icon_name_wle}-${size}") + endforeach() + endforeach() +endforeach() + +if ((APPLICATION_ICON_SET MATCHES "PNG") + AND + (NOT EXISTS "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg")) + # We may have no svg application icon in when customers use PNG + # icons in brander, but theme.qrc expects a svg icon. + file(TOUCH "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") +endif() + +if(APPLE) + set(MACOS_SIDEBAR_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-sidebar.svg") + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 16) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 32) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 64) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 128) + generate_sized_png_from_svg(${MACOS_SIDEBAR_ICON_SVG} 256) +endif() + +if(WIN32) + set(STARTMENU_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-w10startmenu.svg") + generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 70) + generate_sized_png_from_svg(${STARTMENU_ICON_SVG} 150) +endif() + +set(APP_ICON_SVG "${theme_dir}/colored/${APPLICATION_ICON_NAME}-icon.svg") + +# generate secondary icon if available (currently for Windows only)-------------------------------------- +set(APP_SECONDARY_ICONS "${theme_dir}/colored/icons") +set(APP_ICON_WIN_FOLDER_SVG "${APP_SECONDARY_ICONS}/${APPLICATION_ICON_NAME}-icon-win-folder.svg") + +# generate primary icon from SVG (due to Win .ico vs .rc dependency issues, primary icon must always be generated last)-------------------------------------- +if(WIN32) + foreach(size IN ITEMS 16;20;24;32;40;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) + endforeach() +else() + foreach(size IN ITEMS 16;24;32;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size}) + endforeach() +endif() + +file(GLOB OWNCLOUD_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon*") + +if(APPLE) + file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*") + MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}") +endif() + +ecm_add_app_icon(APP_ICON ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}") + +if(WIN32 AND EXISTS ${APP_ICON_WIN_FOLDER_SVG}) + get_filename_component(output_icon_name_win ${APP_ICON_WIN_FOLDER_SVG} NAME_WLE) + # Product icon (for smallest size) + foreach(size IN ITEMS 16;20) + generate_sized_png_from_svg(${APP_ICON_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") + endforeach() + + # Product icon with Windows folder (for sizes larger than 20) + foreach(size IN ITEMS 24;32;40;48;64;128;256;512;1024) + generate_sized_png_from_svg(${APP_ICON_WIN_FOLDER_SVG} ${size} OUTPUT_ICON_NAME ${output_icon_name_win} OUTPUT_ICON_PATH "${APP_SECONDARY_ICONS}/") + endforeach() + + file(GLOB OWNCLOUD_ICONS_WIN_FOLDER "${APP_SECONDARY_ICONS}/*-${APPLICATION_ICON_NAME}-icon*") + set(APP_ICON_WIN_FOLDER_ICO_NAME "${APPLICATION_ICON_NAME}-win-folder") + ecm_add_app_icon(APP_ICON ICONS ${OWNCLOUD_ICONS_WIN_FOLDER} OUTFILE_BASENAME "${APP_ICON_WIN_FOLDER_ICO_NAME}") + + # We need to patch the resource files generated by `ecm_add_app_icon` to allow multiple icons in the same executable. + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${APP_ICON_WIN_FOLDER_ICO_NAME}.rc.in" "\n") # avoid resource linker complaining about duplicate icon resources + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.rc.in" "IDI_ICON1 ICON DISCARDABLE \"${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.ico\"\n") + file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_ICON_NAME}.rc.in" "IDI_ICON2 ICON DISCARDABLE \"${CMAKE_CURRENT_BINARY_DIR}/${APP_ICON_WIN_FOLDER_ICO_NAME}.ico\"\n") + + # The icon index used in code is 0-indexed, whereas the resource starts indexing from 1. + set(APPLICATION_FOLDER_ICON_INDEX 1) +endif() + +# -------------------------------------- + +if(UNIX AND NOT APPLE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") +endif() + +add_library(nextcloudCore STATIC ${final_src}) + +target_link_libraries(nextcloudCore + PUBLIC + Nextcloud::sync + Qt::Widgets + Qt::Svg + Qt::Network + Qt::Xml + Qt::Qml + Qt::Quick + Qt::QuickControls2 + Qt::QuickWidgets + KF6::Archive + ) + +if(KF6GuiAddons_FOUND) + target_link_libraries(nextcloudCore + PUBLIC + KF6::GuiAddons + ) + add_definitions(-DHAVE_KGUIADDONS) +endif() + +add_subdirectory(socketapi) + +# skip unity inclusion for files which cause problems with a CMake unity build +set_property(SOURCE + ${CMAKE_CURRENT_SOURCE_DIR}/socketapi/socketapi.cpp + PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) + +foreach(FILE IN LISTS client_UI_SRCS) + set_property(SOURCE ${FILE} PROPERTY SKIP_UNITY_BUILD_INCLUSION ON) +endforeach() + +if(WITH_WEBENGINE) + target_link_libraries(nextcloudCore PUBLIC Qt::WebEngineWidgets Qt::WebEngineCore) +endif() + +set_target_properties(nextcloudCore + PROPERTIES + AUTOUIC ON + AUTOMOC ON +) + +target_include_directories(nextcloudCore + PUBLIC + ${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile + ${CMAKE_SOURCE_DIR}/src/3rdparty/kirigami + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication + ${CMAKE_SOURCE_DIR}/src/3rdparty/kmessagewidget + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} +) + +if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) + if(NOT WIN32) + file(GLOB _icons "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-icon.png") + foreach(_file ${_icons}) + string(REPLACE "${theme_dir}/colored/" "" _res ${_file}) + string(REPLACE "-${APPLICATION_ICON_NAME}-icon.png" "" _res ${_res}) + install(FILES ${_file} RENAME ${APPLICATION_ICON_NAME}.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${_res}x${_res}/apps) + endforeach(_file) + install(FILES ${client_I18N} DESTINATION ${CMAKE_INSTALL_DATADIR}/${APPLICATION_EXECUTABLE}/i18n) + else() + file(GLOB_RECURSE VISUAL_ELEMENTS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-w10startmenu*") + install(FILES ${VISUAL_ELEMENTS} DESTINATION bin/visualelements) + install(FILES "${theme_dir}/${APPLICATION_EXECUTABLE}.VisualElementsManifest.xml" DESTINATION bin) + install(FILES ${client_I18N} DESTINATION i18n) + endif() + + # we may not add MACOSX_BUNDLE here, if not building one + add_executable(nextcloud WIN32 main.cpp ${client_version} ${client_manifest} ${APP_ICON}) + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_EXECUTABLE}" + ) +else() + # set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. + set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns") + + # we must add MACOSX_BUNDLE only if building a bundle + add_executable(nextcloud WIN32 MACOSX_BUNDLE main.cpp ${APP_ICON}) + + if (BUILD_OWNCLOUD_OSX_BUNDLE) + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_NAME}") + else() + set_target_properties(nextcloud PROPERTIES + OUTPUT_NAME "${APPLICATION_EXECUTABLE}") + endif() + + set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations) + install(FILES ${client_I18N} DESTINATION ${QM_DIR}) + get_target_property(_qmake Qt::qmake LOCATION) + execute_process(COMMAND ${_qmake} -query QT_INSTALL_TRANSLATIONS + OUTPUT_VARIABLE QT_TRANSLATIONS_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + file(GLOB qt_I18N ${QT_TRANSLATIONS_DIR}/qt_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) + install(FILES ${qt_I18N} DESTINATION ${QM_DIR}) + file(GLOB qtbase_I18N ${QT_TRANSLATIONS_DIR}/qtbase_??.qm ${QT_TRANSLATIONS_DIR}/qt_??_??.qm) + install(FILES ${qtbase_I18N} DESTINATION ${QM_DIR}) + file(GLOB qtkeychain_I18N ${QT_TRANSLATIONS_DIR}/qtkeychain*.qm) + install(FILES ${qtkeychain_I18N} DESTINATION ${QM_DIR}) +endif() + +IF(BUILD_UPDATER) + add_library(updater STATIC ${updater_SRCS}) + target_link_libraries(updater Nextcloud::sync ${updater_DEPS} Qt::Widgets Qt::Svg Qt::Network Qt::Xml) + target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + set_target_properties(updater PROPERTIES AUTOMOC ON) + target_link_libraries(nextcloudCore PUBLIC updater) +endif() + +set_target_properties(nextcloud PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY} +) + +target_link_libraries(nextcloud PRIVATE nextcloudCore) + +if(TARGET PkgConfig::CLOUDPROVIDERS) + message("Building with libcloudproviderssupport") + target_sources(nextcloudCore PRIVATE cloudproviders/cloudprovidermanager.cpp cloudproviders/cloudproviderwrapper.cpp) + + string(TOLOWER "${APPLICATION_VENDOR}" DBUS_VENDOR) + string(REGEX REPLACE "[^A-z0-9]" "" DBUS_VENDOR "${DBUS_VENDOR}") + string(REGEX REPLACE "[^A-z0-9]" "" DBUS_APPLICATION_NAME "${APPLICATION_SHORTNAME}") + if(NOT DBUS_PREFIX) + set(DBUS_PREFIX "com") + endif(NOT DBUS_PREFIX) + set(LIBCLOUDPROVIDERS_DBUS_BUS_NAME "${DBUS_PREFIX}.${DBUS_VENDOR}.${DBUS_APPLICATION_NAME}") + set(LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH "/${DBUS_PREFIX}/${DBUS_VENDOR}/${DBUS_APPLICATION_NAME}") + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cloudproviders/cloudproviderconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/cloudproviderconfig.h) + target_compile_definitions(nextcloudCore PUBLIC -DWITH_LIBCLOUDPROVIDERS) + target_link_libraries(nextcloudCore + PRIVATE + PkgConfig::CLOUDPROVIDERS + PkgConfig::GLIB2 + PkgConfig::GIO + ) + + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "Implements=org.freedesktop.CloudProviders\n") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "[org.freedesktop.CloudProviders]") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "BusName=${LIBCLOUDPROVIDERS_DBUS_BUS_NAME}") + list(APPEND LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "ObjectPath=${LIBCLOUDPROVIDERS_DBUS_OBJECT_PATH}") + list(JOIN LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS "\n" LIBCLOUDPROVIDERS_DESKTOP_IMPLEMENTS) +endif() + +## handle DBUS for Fdo notifications +if( UNIX AND NOT APPLE ) + find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} COMPONENTS DBus) + target_link_libraries(nextcloudCore PUBLIC Qt::DBus) + target_compile_definitions(nextcloudCore PUBLIC "USE_FDO_NOTIFICATIONS") +endif() + +if (APPLE) + if (BUILD_FILE_PROVIDER_MODULE) + target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications -framework FileProvider") + else() + target_link_libraries(nextcloudCore PUBLIC "-framework UserNotifications") + endif() +endif() + +install(TARGETS nextcloud + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + BUNDLE DESTINATION "." + ) + +if (WIN32) + install(FILES $ DESTINATION bin OPTIONAL) +endif() + +# FIXME: The following lines are dup in src/gui and src/cmd because it needs to be done after both are installed +#FIXME: find a nice solution to make the second if(BUILD_OWNCLOUD_OSX_BUNDLE) unnecessary +# currently it needs to be done because the code right above needs to be executed no matter +# if building a bundle or not and the install_qt4_executable needs to be called afterwards +# +# OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option +if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) + get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) + get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY) + find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}") + + set(cmd_NAME ${APPLICATION_EXECUTABLE}cmd) + + if(CMAKE_BUILD_TYPE MATCHES Debug) + set(NO_STRIP "-no-strip") + else() + set(NO_STRIP "") + endif() + + add_custom_command(TARGET nextcloud POST_BUILD + COMMAND "${MACDEPLOYQT_EXECUTABLE}" + "$/../.." + -qmldir=${CMAKE_SOURCE_DIR}/src/gui + -always-overwrite + -executable=$/${cmd_NAME} + ${NO_STRIP} + COMMAND "${CMAKE_COMMAND}" + -E rm -rf "${BIN_OUTPUT_DIRECTORY}/${OWNCLOUD_OSX_BUNDLE}/Contents/PlugIns/bearer" + COMMENT "Running macdeployqt..." + ) +endif() + +if(NOT BUILD_OWNCLOUD_OSX_BUNDLE AND NOT WIN32) + configure_file(${CMAKE_SOURCE_DIR}/mirall.desktop.in + ${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LINUX_APPLICATION_ID}.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ) + + configure_file(owncloud.xml.in ${APPLICATION_EXECUTABLE}.xml) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_EXECUTABLE}.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages ) + + find_package(SharedMimeInfo) + if(SharedMimeInfo_FOUND) + update_xdg_mimetypes( ${CMAKE_INSTALL_DATADIR}/mime/packages ) + endif(SharedMimeInfo_FOUND) +endif() + +configure_file(configgui.h.in ${CMAKE_CURRENT_BINARY_DIR}/configgui.h) diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index 0d8369658570a..fc10ce2706e6d 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -138,7 +138,14 @@ Show Server &Notifications - + + + + + Show &Quota Warning Notifications + + + diff --git a/src/gui/tray/usermodel.cpp b/src/gui/tray/usermodel.cpp index aeaa5497e4378..4ad8083e12621 100644 --- a/src/gui/tray/usermodel.cpp +++ b/src/gui/tray/usermodel.cpp @@ -1546,7 +1546,7 @@ void UserModel::removeAccount(const int id) "

      Note: This will not delete any files.

      ") .arg(Utility::escape(_users[id]->name())), QMessageBox::NoButton); - const auto * const yesButton = messageBox.addButton(tr("Remove connection"), QMessageBox::YesRole); + QPushButton * yesButton = messageBox.addButton(tr("Remove connection"), QMessageBox::YesRole); messageBox.addButton(tr("Cancel"), QMessageBox::NoRole); styleMessageBox(messageBox, yesButton); diff --git a/src/gui/wizard/flow2authcredspage.h b/src/gui/wizard/flow2authcredspage.h index 243a4d851cc43..36b8cadb186d4 100644 --- a/src/gui/wizard/flow2authcredspage.h +++ b/src/gui/wizard/flow2authcredspage.h @@ -32,6 +32,7 @@ class Flow2AuthCredsPage : public AbstractCredentialsWizardPage void initializePage() override; void cleanupPage() override; + [[nodiscard]] int nextId() const override; void setConnected(); [[nodiscard]] bool isComplete() const override; diff --git a/src/gui/wizard/flow2authwidget.ui b/src/gui/wizard/flow2authwidget.ui index 7ab39ab757ad2..a59ddd6ad94d7 100644 --- a/src/gui/wizard/flow2authwidget.ui +++ b/src/gui/wizard/flow2authwidget.ui @@ -162,6 +162,19 @@
      + + + + An error occurred while connecting. Please try again. + + + Qt::PlainText + + + Qt::AlignCenter + + + From 2f669339400658f09567dce3a32504277c4f1552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 15:10:24 +0200 Subject: [PATCH 005/148] SES-466 - Used correct import --- src/gui/UserStatusMessageView.qml | 2 +- src/gui/UserStatusSetStatusView.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/UserStatusMessageView.qml b/src/gui/UserStatusMessageView.qml index 965f2fe0e31b3..511326b8a383c 100644 --- a/src/gui/UserStatusMessageView.qml +++ b/src/gui/UserStatusMessageView.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import QtQuick.Controls import QtQuick.Window -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient as NC import Style import "./tray" diff --git a/src/gui/UserStatusSetStatusView.qml b/src/gui/UserStatusSetStatusView.qml index abff60d1e16a5..04bc304956c56 100644 --- a/src/gui/UserStatusSetStatusView.qml +++ b/src/gui/UserStatusSetStatusView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.nextcloud.desktopclient as NC +import com.ionos.hidrivenext.desktopclient as NC import Style import "./tray" From 419e46e3b6482127a6432f4f063715417cde8243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 15:13:26 +0200 Subject: [PATCH 006/148] SES-466 - moved style setting --- src/gui/main.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 0717691425337..d7fa9941aaca5 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -70,6 +70,8 @@ int main(int argc, char **argv) Q_INIT_RESOURCE(resources); Q_INIT_RESOURCE(theme); + Q_INIT_RESOURCE(ionos); + Q_INIT_RESOURCE(ionos_theme); // OpenSSL 1.1.0: No explicit initialisation or de-initialisation is necessary. #ifdef Q_OS_MACOS @@ -110,11 +112,11 @@ int main(int argc, char **argv) #endif #ifdef IONOS_BUILD - OCC::Application app(argc, argv); - app.setStyle(new sesStyle(QStyleFactory::create("WindowsVista"))); - QQuickStyle::setStyle(qmlStyle); QQuickStyle::setFallbackStyle(QStringLiteral("Fusion")); + + OCC::Application app(argc, argv); + app.setStyle(new sesStyle(QStyleFactory::create("WindowsVista"))); #elif QQuickStyle::setStyle(qmlStyle); From 0efb1321ec0e49c8d1ce74bbdec452d6a6a70103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 15:14:00 +0200 Subject: [PATCH 007/148] SES-466 - used lowercase identifier --- src/gui/owncloudgui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index a6f0cfe4e19e7..203edbfef6fd3 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -139,11 +139,11 @@ ownCloudGui::ownCloudGui(Application *parent) // TODO SES-459 check casing / spelling qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "QAbstractItemModel", "QAbstractItemModel"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "Activity", "Activity"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "TalkNotificationData", "TalkNotificationData"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "activity", "Activity"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "talkNotificationData", "TalkNotificationData"); qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "UserStatus", "Access to Status enum"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "Sharee", "Access to Type enum"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "userStatus", "Access to Status enum"); + qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "sharee", "Access to Type enum"); qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "ClientSideEncryptionTokenSelector", "Access to the certificate selector"); qRegisterMetaType("ActivityListModel*"); From 8d4a85c428c207aa33974bcbbaf8a2bafdc2d83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 10 Apr 2026 15:43:01 +0200 Subject: [PATCH 008/148] SES-466 - QML Merge Fixes --- src/gui/tray/ActivityItemContent.qml | 3 +-- src/gui/tray/UserLine.qml | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 2d694a3c83d2a..6a813a6eede3e 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -269,9 +269,8 @@ RowLayout { wrapMode: Text.Wrap maximumLineCount: 2 font: root.font - color: Style.sesTrayFontColor + color: Style.sesTrayFontColor visible: text !== "" - color: root.adaptiveTextColor } ActivityItemActions { diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 67667dcb589bf..a4b7497a53c43 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -91,7 +91,6 @@ AbstractButton { visible: model.statusMessage !== "" text: statusMessage elide: Text.ElideRight - font: userLine.font leftPadding: Style.accountLabelsSpacing font.pixelSize: Style.subLinePixelSize @@ -128,7 +127,6 @@ AbstractButton { width: Style.sesAccountMenuWidth height: Math.min(implicitHeight, maxMenuHeight) closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape - height: implicitHeight bottomInset: 0 topInset: 0 From 1ae0a6756d369e4505504f9d3ddc6f72657f2120 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 13 Apr 2026 14:50:34 +0200 Subject: [PATCH 009/148] only use slotUpdateCheckNow when building Updater --- src/gui/generalsettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index c8e1b0140b6ba..be80e549cb012 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -304,13 +304,13 @@ GeneralSettings::GeneralSettings(QWidget *parent) // accountAdded means the wizard was finished and the wizard might change some options. connect(AccountManager::instance(), &AccountManager::accountAdded, this, &GeneralSettings::loadMiscSettings); - connect(_ui->checkUpdateLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotUpdateCheckNow); connect(_ui->moreInfoLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenMoreInformationLink); connect(_ui->legalNoticeLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenLegalNoticeLink); connect(_ui->openSourceLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenOpenSourceLink); connect(_ui->privacyLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotOpenPrivacyLink); connect(_ui->sendAnonymousData_checkbox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleSendData); #if defined(BUILD_UPDATER) + connect(_ui->checkUpdateLinkButton, &OCC::LinkButton::clicked, this, &GeneralSettings::slotUpdateCheckNow); loadUpdateChannelsList(); #endif From c54d494ffa09d9a60f8c1a1c71da886de540be8b Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 13 Apr 2026 15:42:56 +0200 Subject: [PATCH 010/148] SES-466 use tryFontColor for Unshare Button --- src/gui/tray/SecondaryPillButton.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml index e9b9e89019a1f..d7e5a25632f73 100644 --- a/src/gui/tray/SecondaryPillButton.qml +++ b/src/gui/tray/SecondaryPillButton.qml @@ -13,7 +13,7 @@ Button{ property bool isMouseOver: false property bool removeBorder: false - property color textColor: "black" + property color textColor: Style.sesTrayFontColor property color backgroundColor: Style.sesPillButtonSecondaryBackgroundColor contentItem: Row { From 1ad1e216b03f93c5f48308e4b7a2c6da671205da Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 13 Apr 2026 16:13:46 +0200 Subject: [PATCH 011/148] SES-466 fix wrong textcolor of checkbox labels --- src/gui/filedetails/ShareDetailsPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index aaab19f69e0de..a01591bada9cb 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -39,7 +39,7 @@ Page { font.family: Style.sesOpenSansRegular font.pixelSize: Style.sesFontPixelSize font.weight: Style.sesFontNormalWeight - palette.windowText: Style.sesTrayFontColor + palette.text: Style.sesTrayFontColor property bool backgroundsVisible: true property color accentColor: Style.ncBlue From 78de7eeed91fd93cc386ef33f13b128a4043b12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 14 Apr 2026 09:22:47 +0200 Subject: [PATCH 012/148] SES-466 - Removed old code slipped in while rebase --- .../mac-crafter/Sources/Commands/Build.swift | 86 +------------------ 1 file changed, 1 insertion(+), 85 deletions(-) diff --git a/admin/osx/mac-crafter/Sources/Commands/Build.swift b/admin/osx/mac-crafter/Sources/Commands/Build.swift index 447d7accac26a..5afcce43458b0 100644 --- a/admin/osx/mac-crafter/Sources/Commands/Build.swift +++ b/admin/osx/mac-crafter/Sources/Commands/Build.swift @@ -312,88 +312,4 @@ struct Build: AsyncParsableCommand { print("Done!") print(stopwatch.report()) } -} - -struct Codesign: ParsableCommand { - static let configuration = CommandConfiguration(abstract: "Codesigning script for the client.") - - @Argument(help: "Path to the Nextcloud Desktop Client app bundle.") - var appBundlePath = "\(FileManager.default.currentDirectoryPath)/product/IONOS HiDrive Next.app" - - @Option(name: [.short, .long], help: "Code signing identity for desktop client and libs.") - var codeSignIdentity: String - - @Option(name: [.short, .long], help: "Entitlements to apply to the app bundle.") - var entitlementsPath: String? - - mutating func run() throws { - let absolutePath = appBundlePath.hasPrefix("/") - ? appBundlePath - : "\(FileManager.default.currentDirectoryPath)/\(appBundlePath)" - - try codesignClientAppBundle( - at: absolutePath, - withCodeSignIdentity: codeSignIdentity, - usingEntitlements: entitlementsPath - ) - } -} - -struct Package: ParsableCommand { - static let configuration = CommandConfiguration(abstract: "Packaging script for the client.") - - @Option(name: [.short, .long], help: "Architecture.") - var arch = "arm64" - - @Option(name: [.short, .long], help: "Path for build files to be written.") - var buildPath = "\(FileManager.default.currentDirectoryPath)/build" - - @Option(name: [.short, .long], help: "Path for the final product to be put.") - var productPath = "\(FileManager.default.currentDirectoryPath)/product" - - @Option(name: [.long], help: "Nextcloud Desktop Client craft blueprint name.") - var craftBlueprintName = "nextcloud-client" - - @Option(name: [.long], help: "The application's branded name.") - var appName = "IONOS HiDrive Next" - - @Option(name: [.long], help: "Apple ID, used for notarisation.") - var appleId: String? - - @Option(name: [.long], help: "Apple ID password, used for notarisation.") - var applePassword: String? - - @Option(name: [.long], help: "Apple Team ID, used for notarisation.") - var appleTeamId: String? - - @Option(name: [.long], help: "Apple package signing ID.") - var packageSigningId: String? - - @Option(name: [.long], help: "Sparkle package signing key.") - var sparklePackageSignKey: String? - - mutating func run() throws { - try packageAppBundle( - productPath: productPath, - buildPath: buildPath, - craftTarget: archToCraftTarget(arch), - craftBlueprintName: craftBlueprintName, - appName: appName, - packageSigningId: packageSigningId, - appleId: appleId, - applePassword: applePassword, - appleTeamId: appleTeamId, - sparklePackageSignKey: sparklePackageSignKey - ) - } -} - -struct MacCrafter: ParsableCommand { - static let configuration = CommandConfiguration( - abstract: "A tool to easily build a fully-functional Nextcloud Desktop Client for macOS.", - subcommands: [Build.self, Codesign.self, Package.self], - defaultSubcommand: Build.self - ) -} - -MacCrafter.main() +} \ No newline at end of file From 7a3d4262932c084cdde26c7eb4532c6827c19991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 14 Apr 2026 09:31:35 +0200 Subject: [PATCH 013/148] SES-466 - possible improvements in MacBuild --- admin/osx/ionos_macmaker/start.sh | 40 +++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/admin/osx/ionos_macmaker/start.sh b/admin/osx/ionos_macmaker/start.sh index 7644c702c6fac..b9e80ae5f433e 100755 --- a/admin/osx/ionos_macmaker/start.sh +++ b/admin/osx/ionos_macmaker/start.sh @@ -45,7 +45,13 @@ done export MACOSX_DEPLOYMENT_TARGET=10.15 # Some variables -PRODUCT_NAME="IONOS HiDrive Next" +# The product name depends on whether we build an OSX bundle or not. +# See src/gui/CMakeLists.txt: OUTPUT_NAME is set to APPLICATION_NAME (bundle) or APPLICATION_EXECUTABLE (non-bundle). +if [ "$OSX_BUNDLE" == "true" ]; then + PRODUCT_NAME="IONOS HiDrive Next" +else + PRODUCT_NAME="ionos-hidrive-next" +fi REPO_ROOT_DIR="../../.." CRAFT_DIR=~/Craft64 PRODUCT_DIR=$BUILD_DIR/product @@ -102,22 +108,30 @@ if [ "$CLEAN_REBUILD" == "true" ] && [ "$BUILD_UPDATER" == "true" ]; then fi # Build the client -cmake -S $REPO_ROOT_DIR/ -B $BUILD_DIR \ - -DQT_TRANSLATIONS_DIR=$REPO_ROOT_DIR/translations \ - -DCMAKE_INSTALL_PREFIX=$PRODUCT_DIR \ - -DBUILD_TESTING=OFF \ +# Only reconfigure if this is a clean build or no CMakeCache exists yet +if [ "$CLEAN_REBUILD" == "true" ] || [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then + cmake -S $REPO_ROOT_DIR/ -B $BUILD_DIR \ + -G Ninja \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DQT_TRANSLATIONS_DIR=$REPO_ROOT_DIR/translations \ + -DCMAKE_INSTALL_PREFIX=$PRODUCT_DIR \ + -DBUILD_TESTING=OFF \ -DBUILD_UPDATER=$(if [ $BUILD_UPDATER == true ]; then echo "ON"; else echo "OFF"; fi) \ - -DMIRALL_VERSION_BUILD=`date +%Y%m%d` \ - -DMIRALL_VERSION_SUFFIX="stable" \ + -DMIRALL_VERSION_BUILD=`date +%Y%m%d` \ + -DMIRALL_VERSION_SUFFIX="stable" \ -DBUILD_OWNCLOUD_OSX_BUNDLE=$(if [ $OSX_BUNDLE == true ]; then echo "ON"; else echo "OFF"; fi) \ - -DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURE \ + -DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURE \ -DBUILD_FILE_PROVIDER_MODULE=$(if [ $BUILD_FILEPROVIDER == true ]; then echo "ON"; else echo "OFF"; fi) \ - -DCMAKE_PREFIX_PATH=$CRAFT_DIR \ - -DSPARKLE_LIBRARY=$SPARKLE_DIR/Sparkle.framework \ - -DSOCKETAPI_TEAM_IDENTIFIER_PREFIX="$TEAM_IDENTIFIER." \ - -DARG_SIDEBAR_ICONS=ON \ + -DCMAKE_PREFIX_PATH=$CRAFT_DIR \ + -DSPARKLE_LIBRARY=$SPARKLE_DIR/Sparkle.framework \ + -DSOCKETAPI_TEAM_IDENTIFIER_PREFIX="$TEAM_IDENTIFIER." \ + -DARG_SIDEBAR_ICONS=ON \ + -DLOCALBUILD=ON \ + -DWHITELABEL_NAME=ionos +fi -make install -C $BUILD_DIR -j4 +ninja -C $BUILD_DIR install # --------------------------------------------------- # Sign the client From 54a6a1b0f1d85f0b9894e4d4d737459aafa8f526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 14 Apr 2026 13:43:53 +0200 Subject: [PATCH 014/148] SES-468 - Removed debug code --- admin/osx/macosx.entitlements.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/admin/osx/macosx.entitlements.cmake b/admin/osx/macosx.entitlements.cmake index 638c3264b762f..b206b92465afc 100644 --- a/admin/osx/macosx.entitlements.cmake +++ b/admin/osx/macosx.entitlements.cmake @@ -6,6 +6,5 @@ 5TDLCVD243.com.ionos.hidrivenext.desktopclient -@DEBUG_ENTITLEMENTS@ From a8fc7b030fd2113eb8e610d456f0e8f96d989bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 14 Apr 2026 14:04:37 +0200 Subject: [PATCH 015/148] SES-468 - adjusted nextcloud <-> hidrivenext in MacOs Shell Integration --- .../FileProviderExt/FileProviderExtension+CustomActions.swift | 4 ++-- .../MacOSX/NextcloudIntegration/FileProviderExt/Info.plist | 4 ++-- .../FileProviderUIExt/DocumentActionViewController.swift | 2 +- .../MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist | 2 +- .../xcshareddata/xcschemes/NextcloudDev.xcscheme | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+CustomActions.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+CustomActions.swift index dbc8c64b49c26..2314bb8f48a22 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+CustomActions.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+CustomActions.swift @@ -14,13 +14,13 @@ extension FileProviderExtension: NSFileProviderCustomAction { completionHandler: @escaping ((any Error)?) -> Void ) -> Progress { switch actionIdentifier.rawValue { - case "com.nextcloud.desktopclient.FileProviderExt.KeepDownloadedAction": + case "com.ionos.hidrive.desktopclient.FileProviderExt.KeepDownloadedAction": return performKeepDownloadedAction( keepDownloaded: true, onItemsWithIdentifiers: itemIdentifiers, completionHandler: completionHandler ) - case "com.nextcloud.desktopclient.FileProviderExt.AutoEvictAction": + case "com.ionos.hidrive.desktopclient.FileProviderExt.AutoEvictAction": return performKeepDownloadedAction( keepDownloaded: false, onItemsWithIdentifiers: itemIdentifiers, diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist index efb5462421ae5..24545ff277167 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist @@ -24,7 +24,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayKeepDownloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderExt.KeepDownloadedAction + com.ionos.hidrive.desktopclient.FileProviderExt.KeepDownloadedAction NSExtensionFileProviderActionName Always keep downloaded @@ -32,7 +32,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayAllowAutoEvicting == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderExt.AutoEvictAction + com.ionos.hidrive.desktopclient.FileProviderExt.AutoEvictAction NSExtensionFileProviderActionName Allow automatic freeing up space diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift index cdd21c7683d1e..afc1fc3cfbd5c 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/DocumentActionViewController.swift @@ -70,7 +70,7 @@ class DocumentActionViewController: FPUIActionExtensionViewController { prepare(childViewController: LockViewController(itemIdentifiers, locking: true, serviceResolver: serviceResolver, log: log)) case "com.ionos.hidrivenext.desktopclient.FileProviderUIExt.UnlockFileAction": prepare(childViewController: LockViewController(itemIdentifiers, locking: false, serviceResolver: serviceResolver, log: log)) - case "com.nextcloud.desktopclient.FileProviderUIExt.EvictAction": + case "com.ionos.hidrive.desktopclient.FileProviderUIExt.EvictAction": evict(itemsWithIdentifiers: itemIdentifiers, inDomain: domain); extensionContext.completeRequest(); default: diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist index e9d819e6ccd90..8dd133e54fcf3 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist @@ -48,7 +48,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.downloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.nextcloud.desktopclient.FileProviderUIExt.EvictAction + com.ionos.hidrive.desktopclient.FileProviderUIExt.EvictAction NSExtensionFileProviderActionName Free up space diff --git a/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/xcshareddata/xcschemes/NextcloudDev.xcscheme b/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/xcshareddata/xcschemes/NextcloudDev.xcscheme index 19e87d61f6c65..0e76b4c2e7cf0 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/xcshareddata/xcschemes/NextcloudDev.xcscheme +++ b/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/xcshareddata/xcschemes/NextcloudDev.xcscheme @@ -42,7 +42,7 @@ allowLocationSimulation = "YES"> From 70c32fa304a08db94488ded8970477dd9c5c512b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 14 Apr 2026 16:50:40 +0200 Subject: [PATCH 016/148] SES-468 - Removed comment and hide the items at other place because its caused a crash --- .../FileProviderUIExt/Sharing/ShareOptionsView.swift | 6 ++++++ .../FileProviderUIExt/Sharing/ShareViewController.xib | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift index 5d1436b7ac3bd..95b9c978bce44 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift @@ -194,6 +194,12 @@ class ShareOptionsView: NSView { caps.defaultPermissions & NKShare.Permission.update.rawValue != 0 ? .on : .off + groupShareMenuItem.isHidden = true + emailShareMenuItem.isHidden = true + federatedCloudShareMenuItem.isHidden = true + teamShare.isHidden = true + talkConversationShare.isHidden = true + switch type { case .publicLink: passwordProtectCheckbox.isHidden = false diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib index 637098ad0032c..eace38615eb07 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareViewController.xib @@ -243,8 +243,6 @@ - + From 759af87442c1b9b57025ba20744224cac88a4c97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 15 Apr 2026 08:09:24 +0200 Subject: [PATCH 017/148] SES-467 - Hide some items in general settings --- src/gui/generalsettings.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index be80e549cb012..7838e54f5ad99 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -221,10 +221,12 @@ GeneralSettings::GeneralSettings(QWidget *parent) connect(_ui->serverNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleOptionalServerNotifications); _ui->serverNotificationsCheckBox->setToolTip(tr("Server notifications that require attention.")); + _ui->serverNotificationsCheckBox->setVisible(false); - // connect(_ui->chatNotificationsCheckBox, &QAbstractButton::toggled, - // this, &GeneralSettings::slotToggleChatNotifications); - // _ui->chatNotificationsCheckBox->setToolTip(tr("Show chat notification dialogs.")); + connect(_ui->chatNotificationsCheckBox, &QAbstractButton::toggled, + this, &GeneralSettings::slotToggleChatNotifications); + _ui->chatNotificationsCheckBox->setToolTip(tr("Show chat notification dialogs.")); + _ui->chatNotificationsCheckBox->setVisible(false); connect(_ui->callNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleCallNotifications); @@ -232,6 +234,7 @@ GeneralSettings::GeneralSettings(QWidget *parent) connect(_ui->quotaWarningNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleQuotaWarningNotifications); _ui->quotaWarningNotificationsCheckBox->setToolTip(tr("Show notification when quota usage exceeds 80%.")); + _ui->quotaWarningNotificationsCheckBox->setVisible(false); connect(_ui->showInExplorerNavigationPaneCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotShowInExplorerNavigationPane); From 5455d1f23ba6d99916db1f2fd2e6c8d7d73288ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 15 Apr 2026 08:09:44 +0200 Subject: [PATCH 018/148] SES-467 - Fixed some margins and paddings --- src/gui/generalsettings.cpp | 2 +- src/gui/generalsettings.ui | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 7838e54f5ad99..d96d15dd3bb1d 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -798,7 +798,7 @@ void GeneralSettings::customizeStyle() setPalette(QPalette(QPalette::Window, WLTheme.dialogBackgroundColor())); this->setStyleSheet( - QStringLiteral("QGroupBox { border: %1; font-size: %2; font-weight: %3; color: %4; }").arg( + QStringLiteral("QGroupBox { border: %1; font-size: %2; font-weight: %3; color: %4; padding-top: 8px; margin-top: 8px; }").arg( Theme::instance()->systemPalette()["base"].value().name(), WLTheme.settingsTitleSize(), WLTheme.settingsTitleWeight600(), diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index fc10ce2706e6d..dfe3c6894e77c 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -19,7 +19,7 @@ 24 - 32 + 16 24 @@ -29,7 +29,7 @@ - + General Settings @@ -46,7 +46,7 @@ - 32 + 12 @@ -96,7 +96,7 @@ - + Updates @@ -107,7 +107,7 @@ - 32 + 12 @@ -461,7 +461,7 @@ - 32 + 12 From 211206e67b015a09cb11528e7f9dc3bfe533af5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 15 Apr 2026 10:27:09 +0200 Subject: [PATCH 019/148] SES-478 - applied nextcloud changes for shorter socket path cherry picked and modifed 978c2ead2ceda85928aa3ba09b71edaa6c6fa7e7 --- .../FinderSyncExt/FinderSync.m | 13 +---------- src/gui/socketapi/socketapi.cpp | 22 ++++++++++++++----- src/gui/socketapi/socketapi.h | 4 ++-- src/gui/socketapi/socketapi_mac.mm | 9 ++++---- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FinderSyncExt/FinderSync.m b/shell_integration/MacOSX/NextcloudIntegration/FinderSyncExt/FinderSync.m index 97f32c8a3a47f..ea1782037be12 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FinderSyncExt/FinderSync.m +++ b/shell_integration/MacOSX/NextcloudIntegration/FinderSyncExt/FinderSync.m @@ -45,19 +45,8 @@ - (instancetype)init [syncController setBadgeImage:warning label:@"Ignored" forBadgeIdentifier:@"IGNORE+SWM"]; [syncController setBadgeImage:error label:@"Error" forBadgeIdentifier:@"ERROR+SWM"]; - // The Mach port name needs to: - // - Be prefixed with the code signing Team ID - // - Then infixed with the sandbox App Group - // - The App Group itself must be a prefix of (or equal to) the application bundle identifier - // We end up in the official signed client with: 9B5WD74GWJ.com.owncloud.desktopclient.socket - // With ad-hoc signing (the '-' signing identity) we must drop the Team ID. - // When the code isn't sandboxed (e.g. the OC client or the legacy overlay icon extension) - // the OS doesn't seem to put any restriction on the port name, so we just follow what - // the sandboxed App Extension needs. - // https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW24 - NSURL *container = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:socketApiPrefix]; - NSURL *socketPath = [container URLByAppendingPathComponent:@".socket" isDirectory:NO]; + NSURL *socketPath = [container URLByAppendingPathComponent:@"s" isDirectory:NO]; NSLog(@"Socket path: %@", socketPath.path); diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index dcd8940acdd8e..ff29142a0e83c 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -258,7 +258,9 @@ SocketApi::SocketApi(QObject *parent) // + Theme::instance()->appName(); } else if (Utility::isMac()) { #ifdef Q_OS_MACOS - socketPath = socketApiSocketPath(); + socketPath = socketApiSocketUrl().toLocalFile(); + qCDebug(lcSocketApi) << "macOS socket path:" << socketPath; + /* CFURLRef url = (CFURLRef)CFAutorelease((CFURLRef)CFBundleCopyBundleURL(CFBundleGetMainBundle())); QString bundlePath = QUrl::fromCFURL(url).path(); @@ -276,7 +278,7 @@ SocketApi::SocketApi(QObject *parent) _system(QStringLiteral("pluginkit"), { QStringLiteral("-a"), QStringLiteral("%1Contents/PlugIns/FinderSyncExt.appex/").arg(bundlePath) }); // Tell Finder to use the Extension (checking it from System Preferences -> Extensions) _system(QStringLiteral("pluginkit"), { QStringLiteral("-e"), QStringLiteral("use"), QStringLiteral("-i"), QStringLiteral(APPLICATION_REV_DOMAIN ".FinderSyncExt") }); - + */ #endif } else if (Utility::isLinux() || Utility::isBSD()) { QString runtimeDir; @@ -301,10 +303,20 @@ SocketApi::SocketApi(QObject *parent) } } } - if (!_localServer.listen(socketPath)) { - qCWarning(lcSocketApi) << "can't start server" << socketPath; + const bool result = _localServer.listen(socketPath); + qCDebug(lcSocketApi) << "Full server name:" << _localServer.fullServerName(); + + if (result) { + qCInfo(lcSocketApi) << "Listen started."; + + if (!QFile::exists(socketPath)) { // verify the socket actually exists + qCWarning(lcSocketApi) << "Socket file doesn't exist despite listen() success! Server is listening:" + << _localServer.isListening() + << "Full name:" + << _localServer.fullServerName(); + } } else { - qCInfo(lcSocketApi) << "server started, listening at " << socketPath; + qCWarning(lcSocketApi) << "Listen failed:" << _localServer.errorString(); } connect(&_localServer, &QLocalServer::newConnection, this, &SocketApi::slotNewConnection); diff --git a/src/gui/socketapi/socketapi.h b/src/gui/socketapi/socketapi.h index d3667d0ad39b9..50211f2c9a0b8 100644 --- a/src/gui/socketapi/socketapi.h +++ b/src/gui/socketapi/socketapi.h @@ -15,7 +15,7 @@ #include -class QUrl; +#include class QLocalSocket; class QFileInfo; @@ -30,7 +30,7 @@ class SocketApiJob; Q_DECLARE_LOGGING_CATEGORY(lcSocketApi) #ifdef Q_OS_MACOS -QString socketApiSocketPath(); +QUrl socketApiSocketUrl(); #endif /** diff --git a/src/gui/socketapi/socketapi_mac.mm b/src/gui/socketapi/socketapi_mac.mm index ac0fabf15da74..15ffccea41c4a 100644 --- a/src/gui/socketapi/socketapi_mac.mm +++ b/src/gui/socketapi/socketapi_mac.mm @@ -4,14 +4,14 @@ */ #import -#import +#import #include "application.h" namespace OCC { -QString socketApiSocketPath() +QUrl socketApiSocketUrl() { // This must match the code signing Team setting of the extension // Example for developer builds (with ad-hoc signing identity): "" "com.owncloud.desktopclient" ".socket" @@ -19,8 +19,9 @@ QString socketApiSocketPath() NSString *appGroupId = @SOCKETAPI_TEAM_IDENTIFIER_PREFIX APPLICATION_REV_DOMAIN; NSURL *container = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; - NSURL *socketPath = [container URLByAppendingPathComponent:@".socket" isDirectory:false]; - return QString::fromNSString(socketPath.path); + NSURL *socket = [container URLByAppendingPathComponent:@"s" isDirectory:false]; + + return QUrl::fromNSURL(socket); } } From 7e9ea7d4d717a48040ea85fc5f78af8833407b2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 15 Apr 2026 10:37:58 +0200 Subject: [PATCH 020/148] SES-478 - applied nextcloud changes for shorter socket path 2 cherry picked and modifed 28421ec96ab0d18af5869a7c155bfa9a3ec09fe9 --- .../FileProviderExt/FileProviderExtension.swift | 3 +-- src/gui/macOS/fileprovidersocketserver.cpp | 7 ++++++- src/gui/macOS/fileprovidersocketserver_mac.mm | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift index cbc14fdc75e27..5d28e6253baf3 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift @@ -33,8 +33,7 @@ import OSLog return nil; } - let socketPath = containerUrl.appendingPathComponent( - ".fileprovidersocket", conformingTo: .archive) + let socketPath = containerUrl.appendingPathComponent("fps", conformingTo: .archive) let lineProcessor = FileProviderSocketLineProcessor(delegate: self, log: log) return LocalSocketClient(socketPath: socketPath.path, lineProcessor: lineProcessor) }() diff --git a/src/gui/macOS/fileprovidersocketserver.cpp b/src/gui/macOS/fileprovidersocketserver.cpp index 7774c4a4d9b4f..d703e6f6d7b5d 100644 --- a/src/gui/macOS/fileprovidersocketserver.cpp +++ b/src/gui/macOS/fileprovidersocketserver.cpp @@ -30,9 +30,14 @@ void FileProviderSocketServer::startListening() QLocalServer::removeServer(_socketPath); const auto serverStarted = _socketServer.listen(_socketPath); + if (!serverStarted) { qCWarning(lcFileProviderSocketServer) << "Could not start file provider socket server" - << _socketPath; + << _socketPath + << "Error:" + << _socketServer.errorString() + << "Error code:" + << _socketServer.serverError(); } else { qCInfo(lcFileProviderSocketServer) << "File provider socket server started, listening" << _socketPath; diff --git a/src/gui/macOS/fileprovidersocketserver_mac.mm b/src/gui/macOS/fileprovidersocketserver_mac.mm index 3c0b4a8e12bc4..7330705f09e4f 100644 --- a/src/gui/macOS/fileprovidersocketserver_mac.mm +++ b/src/gui/macOS/fileprovidersocketserver_mac.mm @@ -22,8 +22,9 @@ QString fileProviderSocketPath() NSString *appGroupId = @SOCKETAPI_TEAM_IDENTIFIER_PREFIX APPLICATION_REV_DOMAIN; NSURL *container = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupId]; - NSURL *socketPath = [container URLByAppendingPathComponent:@".fileprovidersocket" isDirectory:false]; - return QString::fromNSString(socketPath.path); + NSURL *socket = [container URLByAppendingPathComponent:@"fps" isDirectory:false]; + + return QString::fromNSString(socket.path); } } // namespace Mac From c2bda32c43df8f0b5c38dd17a83927a7d5fdc417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 15 Apr 2026 13:32:45 +0200 Subject: [PATCH 021/148] SES-467 - Tried to adjust margins in GeneralSettings Dialog --- src/gui/generalsettings.cpp | 9 +++++++-- src/gui/generalsettings.ui | 10 +++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index d96d15dd3bb1d..bc5307e34ff3c 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -798,14 +798,18 @@ void GeneralSettings::customizeStyle() setPalette(QPalette(QPalette::Window, WLTheme.dialogBackgroundColor())); this->setStyleSheet( - QStringLiteral("QGroupBox { border: %1; font-size: %2; font-weight: %3; color: %4; padding-top: 8px; margin-top: 8px; }").arg( - Theme::instance()->systemPalette()["base"].value().name(), + QStringLiteral("QGroupBox { border: none; font-size: %2; font-weight: %3; color: %4; padding-top: 8px; margin-top: 8px; }").arg( WLTheme.settingsTitleSize(), WLTheme.settingsTitleWeight600(), WLTheme.black() ) ); + const auto margins = _ui->generalBoxLayout->contentsMargins(); + _ui->generalBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); + _ui->updateGroupBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); + _ui->dataProtectionBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); + this->setStyleSheet( this->styleSheet() + QStringLiteral("QCheckBox { font-size: %1; font-weight: %2; margin-left: %3 px; color: %4; }").arg( WLTheme.settingsTextSize(), @@ -895,6 +899,7 @@ void GeneralSettings::customizeStyle() // updater info slotUpdateInfo(); #else + _ui->checkUpdateLinkButton->setVisible(false); _ui->updatesContainer->setVisible(false); #endif } diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index dfe3c6894e77c..b18be339e83c5 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -19,7 +19,7 @@ 24 - 16 + 24 24 @@ -46,7 +46,7 @@ - 12 + 0 @@ -105,9 +105,9 @@ - + - 12 + 0 @@ -461,7 +461,7 @@ - 12 + 0 From 98d0e29abab54903e93b4ac5cf255f8a1ed094dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 16 Apr 2026 08:15:55 +0200 Subject: [PATCH 022/148] SES-467 - Fixed some QML Problems based on logged errors / warnings --- src/gui/SesComponents/SesErrorBox.qml | 2 +- src/gui/basetheme.h | 4 +- src/gui/owncloudgui.cpp | 2 +- src/gui/tray/ActivityItemContent.qml | 2 +- src/gui/tray/HeaderButton.qml | 2 - src/gui/tray/MainWindow.qml | 88 +++++++++++++------------- src/gui/tray/TrayFoldersMenuButton.qml | 2 - src/gui/tray/TrayWindowAccountMenu.qml | 6 +- src/gui/tray/UserLine.qml | 22 ++++--- 9 files changed, 64 insertions(+), 66 deletions(-) diff --git a/src/gui/SesComponents/SesErrorBox.qml b/src/gui/SesComponents/SesErrorBox.qml index 6a0d6ea2ba8a4..f597d509672b0 100644 --- a/src/gui/SesComponents/SesErrorBox.qml +++ b/src/gui/SesComponents/SesErrorBox.qml @@ -38,7 +38,7 @@ Item { anchors.fill: parent anchors.margins: Style.standardSpacing - anchors.leftMargin: Style.standardSpacing + solidStripe.width + anchors.leftMargin: Style.standardSpacing columns: 2 diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h index 79613bd07c42d..077aa6cf3b5f5 100644 --- a/src/gui/basetheme.h +++ b/src/gui/basetheme.h @@ -164,8 +164,8 @@ class BaseTheme : public QObject{ return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); } - virtual QString syncOfflineIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-state-offline.svg"); + virtual QString syncOfflineIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-state-offline.svg"); } virtual QString snackbarErrorIcon() const { diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 203edbfef6fd3..e757f241a531c 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -87,7 +87,7 @@ ownCloudGui::ownCloudGui(Application *parent) _tray = Systray::instance(); _tray->setTrayEngine(new QQmlApplicationEngine(this)); // for the beginning, set the offline icon until the account was verified - _tray->setIcon(QIcon(WLTheme.syncOfflineIcon())); + _tray->setIcon(QIcon(WLTheme.syncOfflineIcon("tray"))); _tray->show(); diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 6a813a6eede3e..46a9137469dc8 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -290,7 +290,7 @@ RowLayout { maxActionButtons: activityModel.maxActionButtons - onTriggerAction: activityModel.slotTriggerAction(activityData.activityIndex, actionIndex) + onTriggerAction: (activityData, actionIndex) => activityModel.slotTriggerAction(activityData.activityIndex, actionIndex) onShowReplyField: isTalkReplyOptionVisible = true talkReplyButtonVisible: root.activityData.messageSent === "" && !isTalkReplyOptionVisible diff --git a/src/gui/tray/HeaderButton.qml b/src/gui/tray/HeaderButton.qml index 6a9e4078e6b46..e66620705d012 100644 --- a/src/gui/tray/HeaderButton.qml +++ b/src/gui/tray/HeaderButton.qml @@ -67,8 +67,6 @@ Button { width: imageWidth height: imageHeight - - anchors.verticalCenter: parent } Text { diff --git a/src/gui/tray/MainWindow.qml b/src/gui/tray/MainWindow.qml index 4879e6c9439c1..517b6957fe4e2 100644 --- a/src/gui/tray/MainWindow.qml +++ b/src/gui/tray/MainWindow.qml @@ -112,9 +112,9 @@ ApplicationWindow { fileDetailsDrawer.close(); if (Systray.isOpen) { - trayWindowHeaderBackground.currentAccountHeaderButton.accountMenu.close(); - trayWindowHeaderBackground.appsMenu.close(); - trayWindowHeaderBackground.openLocalFolderButton.closeMenu() + trayWindowHeaderBackground?.currentAccountHeaderButton?.accountMenu?.close() + trayWindowHeaderBackground?.appsMenu?.close(); + trayWindowHeaderBackground?.openLocalFolderButton?.closeMenu() } } @@ -143,50 +143,50 @@ ApplicationWindow { } } - Drawer { - id: userStatusDrawer - width: parent.width - height: parent.height - Style.trayDrawerMargin - padding: 0 + Drawer { + id: userStatusDrawer + width: parent.width + height: parent.height - Style.trayDrawerMargin + padding: 0 edge: Qt.BottomEdge modal: true visible: false - - background: Rectangle { - radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius - border.width: Style.trayWindowBorderWidth - border.color: palette.dark - color: Style.colorWithoutTransparency(palette.base) - } - - property int userIndex: 0 - property string modeSetStatus: "setStatus" - property string modeStatusMessage: "statusMessage" - property string initialMode: modeSetStatus - - function openUserStatusDrawer(index, mode) { - console.log(`About to show dialog for user with index ${index}`); - userIndex = index; - initialMode = mode ? mode : modeSetStatus; - open(); - } - - function openUserStatusMessageDrawer(index) { - openUserStatusDrawer(index, modeStatusMessage); - } - - Loader { - id: userStatusContents - anchors.fill: parent - active: userStatusDrawer.visible - sourceComponent: UserStatusSelectorPage { - anchors.fill: parent - userIndex: userStatusDrawer.userIndex - mode: userStatusDrawer.initialMode - onFinished: userStatusDrawer.close() - } - } - } + + background: Rectangle { + radius: Systray.useNormalWindow ? 0.0 : Style.trayWindowRadius + border.width: Style.trayWindowBorderWidth + border.color: palette.dark + color: Style.colorWithoutTransparency(palette.base) + } + + property int userIndex: 0 + property string modeSetStatus: "setStatus" + property string modeStatusMessage: "statusMessage" + property string initialMode: modeSetStatus + + function openUserStatusDrawer(index, mode) { + console.log(`About to show dialog for user with index ${index}`); + userIndex = index; + initialMode = mode ? mode : modeSetStatus; + open(); + } + + function openUserStatusMessageDrawer(index) { + openUserStatusDrawer(index, modeStatusMessage); + } + + Loader { + id: userStatusContents + anchors.fill: parent + active: userStatusDrawer.visible + sourceComponent: UserStatusSelectorPage { + anchors.fill: parent + userIndex: userStatusDrawer.userIndex + mode: userStatusDrawer.initialMode + onFinished: userStatusDrawer.close() + } + } + } Drawer { id: fileDetailsDrawer diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index e3428a4708ce3..79992c98c9949 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -86,8 +86,6 @@ HeaderButton { width: imageWidth height: imageHeight - - anchors.verticalCenter: parent } Text { diff --git a/src/gui/tray/TrayWindowAccountMenu.qml b/src/gui/tray/TrayWindowAccountMenu.qml index b1627fceac56b..3364801cdadf6 100644 --- a/src/gui/tray/TrayWindowAccountMenu.qml +++ b/src/gui/tray/TrayWindowAccountMenu.qml @@ -111,8 +111,8 @@ Button { } onClicked: UserModel.currentUserId = model.index; } - onObjectAdded: accountMenu.insertItem(index, object) - onObjectRemoved: accountMenu.removeItem(object) + onObjectAdded: (index, object) => accountMenu.insertItem(index, object) + onObjectRemoved: (index, object) => accountMenu.removeItem(object) } Rectangle { @@ -241,7 +241,7 @@ Button { text: UserModel.currentUser.name elide: Text.ElideRight color: Style.currentUserHeaderTextColor - font: root.font + font: currentAccountButton.font } RowLayout { diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index a4b7497a53c43..64aad4498cb95 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -18,6 +18,16 @@ AbstractButton { property bool isHovered: userLine.hovered || userLine.visualFocus property bool isActive: userLine.pressed + readonly property color statusItemColor: { + if (!userLine.parent) + return Style.sesTrayFontColor; + if (!userLine.parent.enabled) + return userLine.parent.palette.mid; + if ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows") + return userLine.parent.palette.highlightedText; + return userLine.parent.palette.text; + } + signal showUserStatusSelector(int id) signal showUserStatusMessageSelector(int id) @@ -78,11 +88,7 @@ AbstractButton { visible: model.statusEmoji !== "" text: statusEmoji - color: !userLine.parent.enabled - ? userLine.parent.palette.mid - : ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows" - ? userLine.parent.palette.highlightedText - : userLine.parent.palette.text) + color: userLine.statusItemColor } EnforcedPlainTextLabel { @@ -94,11 +100,7 @@ AbstractButton { leftPadding: Style.accountLabelsSpacing font.pixelSize: Style.subLinePixelSize - color: !userLine.parent.enabled - ? userLine.parent.palette.mid - : ((userLine.parent.highlighted || userLine.parent.down) && Qt.platform.os !== "windows" - ? userLine.parent.palette.highlightedText - : userLine.parent.palette.text) + color: userLine.statusItemColor } } } From 51a663ffad4e4c9d7ce466cff619071f2375c057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 16 Apr 2026 08:58:07 +0200 Subject: [PATCH 023/148] SES-467 - Font related fixes --- src/gui/tray/ActivityItemContent.qml | 2 -- src/gui/tray/SyncStatus.qml | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 46a9137469dc8..7f6ffe37bf647 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -142,7 +142,6 @@ RowLayout { elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 - font: root.font visible: text !== "" color: root.adaptiveTextColor } @@ -268,7 +267,6 @@ RowLayout { elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 - font: root.font color: Style.sesTrayFontColor visible: text !== "" } diff --git a/src/gui/tray/SyncStatus.qml b/src/gui/tray/SyncStatus.qml index 98076662b6860..7e5daf7df55a0 100644 --- a/src/gui/tray/SyncStatus.qml +++ b/src/gui/tray/SyncStatus.qml @@ -57,7 +57,6 @@ RowLayout { text: syncStatus.syncStatusString verticalAlignment: Text.AlignVCenter - font: root.font wrapMode: Text.Wrap } @@ -81,7 +80,6 @@ RowLayout { text: syncStatus.syncStatusDetailString visible: syncStatus.syncStatusDetailString !== "" - font: root.font wrapMode: Text.Wrap } } @@ -105,8 +103,8 @@ RowLayout { PrimaryPillButton { Layout.rightMargin: Style.trayHorizontalMargin - font.pixelSize: pixelSize - font.weight: fontWeight + font.pixelSize: Style.sesFontPixelSize + font.weight: Style.sesFontBoldWeight text: qsTr("Resolve conflicts") From 0d4799db662618b633867d8719b1510a0a8824be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 16 Apr 2026 08:58:48 +0200 Subject: [PATCH 024/148] NoIssue - Faster Build (?) --- .vscode/settings.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index d8b381bfbe634..ddd0933655a24 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,9 @@ "BUILD_TESTING":"OFF", "LOCALBUILD": "ON", "WHITELABEL_NAME": "ionos", + "CMAKE_CXX_CLANG_TIDY": "", }, + "cmake.buildArgs": ["-j", "16"], "cmake.buildDirectory": "${workspaceFolder}/../build/${buildKitTargetOs}-${buildKitVendor}-${buildKitTargetArch}/${buildType}", "files.associations": { "qwizardpage": "cpp", From 7efd84de15442bc4818746266ba1324699a21178 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 16 Apr 2026 10:34:46 +0200 Subject: [PATCH 025/148] SES-467 fix font colors for Activity Items --- src/gui/tray/ActivityList.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/tray/ActivityList.qml b/src/gui/tray/ActivityList.qml index 3b62c5382d56c..13d5e1e84c2f9 100644 --- a/src/gui/tray/ActivityList.qml +++ b/src/gui/tray/ActivityList.qml @@ -99,9 +99,9 @@ ScrollView { delegate: ActivityItem { - background: Rectangle { - color: Style.sesBackgroundColor - } + palette.highlight: Style.sesHover + palette.text: Style.sesTrayFontColor + palette.highlightedText: Style.sesTrayFontColor width: activityList.contentItem.width From 00cad4d61f42527395c7c635d1bfdec6f612ae35 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 16 Apr 2026 11:03:57 +0200 Subject: [PATCH 026/148] SES-467 add margin to clipboard icon --- src/gui/filedetails/ShareDelegate.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/filedetails/ShareDelegate.qml b/src/gui/filedetails/ShareDelegate.qml index a547906b41277..b0bd2c07ec0f0 100644 --- a/src/gui/filedetails/ShareDelegate.qml +++ b/src/gui/filedetails/ShareDelegate.qml @@ -183,6 +183,7 @@ GridLayout { Layout.alignment: Qt.AlignCenter Layout.preferredWidth: shareLinkCopied ? implicitWidth : Style.iconButtonWidth Layout.preferredHeight: Style.iconButtonWidth + Layout.rightMargin: Style.sesSmallMargin toolTipText: qsTr("Copy share link location") From d57401a638f6ec1c03f7848455edcfb037cbaa0a Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 16 Apr 2026 12:13:35 +0200 Subject: [PATCH 027/148] SES-467 use SesCheckbox to disable hover --- src/gui/filedetails/ShareDetailsPage.qml | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index a01591bada9cb..b6a70730adca4 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -18,6 +18,10 @@ import "../" Page { id: root + component SesCheckBox: CheckBox { + hoverEnabled: false + } + signal closeShareDetails signal deleteShare signal createNewLinkShare @@ -275,8 +279,7 @@ Page { width: parent.width - - CheckBox { + SesCheckBox { id: passwordProtectEnabledMenuItem Layout.fillWidth: true @@ -367,7 +370,7 @@ Page { } } - CheckBox { + SesCheckBox { id: expireDateEnabledMenuItem Layout.fillWidth: true @@ -442,7 +445,7 @@ Page { height: visible ? implicitHeight : 0 spacing: Style.extraSmallSpacing - CheckBox { + SesCheckBox { id: noteEnabledMenuItem Layout.fillWidth: true @@ -516,7 +519,7 @@ Page { Layout.fillWidth: true active: !root.isFolderItem && !root.isEncryptedItem visible: active - sourceComponent: CheckBox { + sourceComponent: SesCheckBox { font.pixelSize: pixelSize font.weight: fontWeight @@ -548,7 +551,7 @@ Page { id: permissionModeRadioButtonsGroup } - CheckBox { + SesCheckBox { id: customPermissionsCheckBox Layout.fillWidth: true enabled: !root.isSharePermissionChangeInProgress @@ -564,7 +567,7 @@ Page { font.weight: fontWeight } - CheckBox { + SesCheckBox { readonly property int permissionMode: ShareModel.ModeViewOnly Layout.fillWidth: true Layout.leftMargin: 30 @@ -582,7 +585,7 @@ Page { font.weight: fontWeight } - CheckBox { + SesCheckBox { readonly property int permissionMode: ShareModel.ModeUploadAndEditing Layout.fillWidth: true Layout.leftMargin: 30 @@ -600,7 +603,7 @@ Page { font.weight: fontWeight } - CheckBox { + SesCheckBox { readonly property int permissionMode: ShareModel.ModeFileDropOnly Layout.fillWidth: true Layout.leftMargin: 30 @@ -620,7 +623,7 @@ Page { } } - CheckBox { + SesCheckBox { id: allowResharingCheckBox Layout.fillWidth: true @@ -652,7 +655,7 @@ Page { active: root.isLinkShare visible: active sourceComponent: ColumnLayout { - CheckBox { + SesCheckBox { id: hideDownloadEnabledMenuItem anchors.left: parent.left From 27d749990a88563995592b8dedb0ea20bd23b9e0 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 16 Apr 2026 16:20:52 +0200 Subject: [PATCH 028/148] SES-467 fix colors of "scrollToTopButton" --- src/gui/tray/ActivityList.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/tray/ActivityList.qml b/src/gui/tray/ActivityList.qml index 13d5e1e84c2f9..9aabb5eaae717 100644 --- a/src/gui/tray/ActivityList.qml +++ b/src/gui/tray/ActivityList.qml @@ -137,6 +137,11 @@ ScrollView { Button { id: scrollToTopButton + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesMenuBorder + } + anchors.bottom: parent.bottom anchors.right: parent.right @@ -150,6 +155,7 @@ ScrollView { icon.source: "image://svgimage-custom-color/chevron-double-up.svg/" + palette.buttonText icon.width: Style.activityListButtonIconSize icon.height: Style.activityListButtonIconSize + icon.color: Style.sesTrayFontColor onClicked: controlRoot.scrollToTop() From ebb82058f4e92cc2b6771a7c2a83edcad9d8775e Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 16 Apr 2026 16:21:39 +0200 Subject: [PATCH 029/148] SES-467 fix colors of search field in Share Details --- src/gui/filedetails/ShareeSearchField.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gui/filedetails/ShareeSearchField.qml b/src/gui/filedetails/ShareeSearchField.qml index 57e1a0200732c..d89f50d5eb74e 100644 --- a/src/gui/filedetails/ShareeSearchField.qml +++ b/src/gui/filedetails/ShareeSearchField.qml @@ -40,6 +40,8 @@ TextField { placeholderText: enabled ? qsTr("Search for users or groups…") : qsTr("Sharing is not available for this folder") placeholderTextColor: placeholderColor + color: Style.sesTrayFontColor + Component.onCompleted: contentItem.cursorColor = Style.sesTrayFontColor verticalAlignment: Qt.AlignVCenter implicitHeight: Math.max(Style.talkReplyTextFieldPreferredHeight, contentHeight) @@ -166,6 +168,11 @@ TextField { width: root.width y: root.height + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesMenuBorder + } + contentItem: ScrollView { id: suggestionsScrollView @@ -186,7 +193,7 @@ TextField { highlight: Rectangle { anchors.fill: shareeListView.currentItem - color: palette.highlight + color: Style.sesHover } highlightFollowsCurrentItem: true highlightMoveDuration: 0 From df0925ef54b19d551382a7a59604790bc2532004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 17 Apr 2026 09:37:31 +0200 Subject: [PATCH 030/148] SES-467 - Guard empty path --- src/gui/systray.cpp | 4 ++++ src/gui/tray/ActivityItemContent.qml | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index 0fa0c0b7d93a1..6e98f6633bbd1 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -451,6 +451,10 @@ void Systray::createFileActivityDialog(const QString &localPath) void Systray::presentShareViewInTray(const QString &localPath) { + if (localPath.isEmpty()) { + return; + } + const auto folder = FolderMan::instance()->folderForPath(localPath); if (!folder) { qCWarning(lcSystray) << "Could not open file details view in tray for" << localPath << "no responsible folder found"; diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 7f6ffe37bf647..8fc77d97abc5d 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -196,7 +196,11 @@ RowLayout { rightPadding: 0 visible: model.showFileDetails - onClicked: Systray.presentShareViewInTray(model.openablePath) + onClicked: { + if (model.openablePath) { + Systray.presentShareViewInTray(model.openablePath) + } + } } IconButton { From 666250fded61578ed58857138ea53ff268dee239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 17 Apr 2026 09:38:04 +0200 Subject: [PATCH 031/148] SES-467 - Fix hover & click color --- src/gui/tray/ActivityItem.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml index 3b311a52e2224..974e0472554d1 100644 --- a/src/gui/tray/ActivityItem.qml +++ b/src/gui/tray/ActivityItem.qml @@ -31,6 +31,11 @@ ItemDelegate { Accessible.name: (model.path !== "" && model.displayPath !== "") ? qsTr("Open %1 locally").arg(model.displayPath) : model.message Accessible.onPressAction: root.clicked() + background: Rectangle { + color: root.hovered ? root.down ? Style.sesWhite : Style.sesHover : Style.sesWhite + radius: Style.mediumRoundedButtonRadius + } + ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && !activityContent.childHovered && model.displayLocation !== "" From 98a73b06e54e13a781b3a33dc7a12eef8544e095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 16 Apr 2026 11:48:30 +0200 Subject: [PATCH 032/148] SES-467 - Adjusted GeneralSettings to also fit on Mac --- src/gui/generalsettings.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index bc5307e34ff3c..f3cfd120e1556 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -805,11 +805,6 @@ void GeneralSettings::customizeStyle() ) ); - const auto margins = _ui->generalBoxLayout->contentsMargins(); - _ui->generalBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); - _ui->updateGroupBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); - _ui->dataProtectionBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); - this->setStyleSheet( this->styleSheet() + QStringLiteral("QCheckBox { font-size: %1; font-weight: %2; margin-left: %3 px; color: %4; }").arg( WLTheme.settingsTextSize(), @@ -881,10 +876,17 @@ void GeneralSettings::customizeStyle() ) ); + + const auto margins = _ui->generalBoxLayout->contentsMargins(); #if defined(Q_OS_MAC) - // _ui->generalBoxLayout->setMargin(16); - // _ui->dataProtectionBoxLayout->setMargin(16); + _ui->generalBoxLayout->setContentsMargins(margins.left(), 32, margins.right(), margins.bottom()); + _ui->updateGroupBoxLayout->setContentsMargins(margins.left(), 32, margins.right(), margins.bottom()); + _ui->dataProtectionBoxLayout->setContentsMargins(margins.left(), 32, margins.right(), margins.bottom()); +#else + _ui->generalBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); + _ui->updateGroupBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); + _ui->dataProtectionBoxLayout->setContentsMargins(margins.left(), 16, margins.right(), margins.bottom()); #endif #ifdef IONOS_BUILD From 2550f5598ed632b3aae34444d34bf5645cedd7eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 17 Apr 2026 12:00:12 +0200 Subject: [PATCH 033/148] SES-467 - Possible Fix for Mac Finder Icon --- IONOS.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IONOS.cmake b/IONOS.cmake index 40c8b3a6df33d..246d7f7354f48 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -48,8 +48,8 @@ if(LOCALBUILD) endif() - -if(APPLE AND "${APPLICATION_NAME}" MATCHES "HiDrive Next") +string(TOLOWER "${APPLICATION_NAME}" app_name_lower) +if(APPLE AND app_name_lower MATCHES "hidrive") set(APPLICATION_ICON_NAME "${APPLICATION_EXECUTABLE}-macOS") message("Using macOS-specific application icon: ${APPLICATION_ICON_NAME}") endif() From 033e9e0796ce619a6d20c79161329af398dd152e Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Fri, 17 Apr 2026 16:50:14 +0200 Subject: [PATCH 034/148] SES-467 use custom state colors for log in/out button --- src/gui/tray/UserLine.qml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 64aad4498cb95..82f3a0b72f8a3 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -184,6 +184,18 @@ AbstractButton { } accountMenu.close() } + + background: Item { + height: parent.height + width: parent.menu.width + Rectangle { + radius: 0 + anchors.fill: parent + anchors.margins: 1 + color: logInOutButton.isActive ? Style.sesButtonPressed : + logInOutButton.isHovered ? Style.sesAccountMenuHover : "transparent" + } + } } MenuItem { From a64eddc6b2bb09e60c1aa629eefad33ffb3d1e73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 17 Apr 2026 17:11:24 +0200 Subject: [PATCH 035/148] SES-467 - Fixed Button Color of VFS on Mac --- src/gui/macOS/ui/FileProviderEvictionDialog.qml | 6 ++++++ src/gui/macOS/ui/FileProviderSettings.qml | 7 +++++++ src/gui/macOS/ui/FileProviderStorageInfo.qml | 7 +++++++ src/gui/macOS/ui/FileProviderSyncStatus.qml | 6 +++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/gui/macOS/ui/FileProviderEvictionDialog.qml b/src/gui/macOS/ui/FileProviderEvictionDialog.qml index f7f9bd7f48333..dcdcad5d333a2 100644 --- a/src/gui/macOS/ui/FileProviderEvictionDialog.qml +++ b/src/gui/macOS/ui/FileProviderEvictionDialog.qml @@ -53,9 +53,15 @@ ApplicationWindow { } Button { + id: reloadButton padding: Style.smallSpacing text: qsTr("Reload") onClicked: reloadMaterialisedItems(accountUserIdAtHost) + background: Rectangle { + color: reloadButton.hovered ? reloadButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } } } diff --git a/src/gui/macOS/ui/FileProviderSettings.qml b/src/gui/macOS/ui/FileProviderSettings.qml index a5623092633da..5182b681ac864 100644 --- a/src/gui/macOS/ui/FileProviderSettings.qml +++ b/src/gui/macOS/ui/FileProviderSettings.qml @@ -107,8 +107,15 @@ Page { } Button { + id: resetVfsButton text: qsTr("Reset virtual files environment") onPressed: root.controller.resetVfsForAccount(root.accountUserIdAtHost); + + background: Rectangle { + color: resetVfsButton.hovered ? resetVfsButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } } } } diff --git a/src/gui/macOS/ui/FileProviderStorageInfo.qml b/src/gui/macOS/ui/FileProviderStorageInfo.qml index 5b81e0b28e338..c666ebb49502c 100644 --- a/src/gui/macOS/ui/FileProviderStorageInfo.qml +++ b/src/gui/macOS/ui/FileProviderStorageInfo.qml @@ -44,11 +44,18 @@ GridLayout { } Button { + id: storageInfoButton Layout.row: 0 Layout.column: 2 Layout.alignment: Layout.AlignRight | Layout.AlignVCenter text: qsTr("Free up space …") onPressed: root.evictDialogRequested() + + background: Rectangle { + color: storageInfoButton.hovered ? storageInfoButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } } ProgressBar { diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml index bb00f3ab79576..a3c49613b7a98 100644 --- a/src/gui/macOS/ui/FileProviderSyncStatus.qml +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -62,9 +62,13 @@ GridLayout { visible: !root.syncStatus.syncing hoverEnabled: true onClicked: root.domainSignalRequested() - ToolTip.visible: hovered ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval ToolTip.text: qsTr("Request a sync of changes for the VFS environment.\nmacOS may ignore or delay this request.") + background: Rectangle { + color: requestSyncButton.hovered ? requestSyncButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } } } From 215be05e3573be4282bb843f4b2080c98f2da7b0 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Fri, 17 Apr 2026 17:19:17 +0200 Subject: [PATCH 036/148] SES-467 use fontCinfogurationCss to fix font color issue --- src/gui/invalidfilenamedialog.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gui/invalidfilenamedialog.cpp b/src/gui/invalidfilenamedialog.cpp index ca0a623646f10..ee22a5dabda95 100644 --- a/src/gui/invalidfilenamedialog.cpp +++ b/src/gui/invalidfilenamedialog.cpp @@ -327,11 +327,14 @@ void InvalidFilenameDialog::onRemoteSourceFileDoesNotExist(QNetworkReply *reply) void InvalidFilenameDialog::customizeStyle() { this->setStyleSheet( - QStringLiteral("QDialog {background-color: %1; } QLabel{ font-family: %2; font-size: %3; font-weight: %4; }").arg( + QStringLiteral("QDialog {background-color: %1; } QLabel{ %2 }").arg( WLTheme.dialogBackgroundColor(), - WLTheme.settingsFont(), - WLTheme.settingsTextSize(), - WLTheme.settingsTextWeight() + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) ) ); From 9de23545dda363c6ae338de81aab02058a09840d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 20 Apr 2026 09:39:33 +0200 Subject: [PATCH 037/148] SES-482 - WIP, try to fix Mac VFS Storage Dialog --- .../fileprovidersettingscontroller_mac.mm | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gui/macOS/fileprovidersettingscontroller_mac.mm b/src/gui/macOS/fileprovidersettingscontroller_mac.mm index 9e4468798739c..e211351b6fccd 100644 --- a/src/gui/macOS/fileprovidersettingscontroller_mac.mm +++ b/src/gui/macOS/fileprovidersettingscontroller_mac.mm @@ -161,7 +161,8 @@ explicit MacImplementation(FileProviderSettingsController *const parent) void signalFileProviderDomain(const QString &userIdAtHost) const { qCInfo(lcFileProviderSettingsController) << "Signalling file provider domain" << userIdAtHost; - NSFileProviderDomain * const domain = FileProviderUtils::domainForIdentifier(userIdAtHost); + const auto domainId = FileProviderUtils::domainIdentifierForAccountIdentifier(userIdAtHost); + NSFileProviderDomain * const domain = FileProviderUtils::domainForIdentifier(domainId); NSFileProviderManager * const manager = [NSFileProviderManager managerForDomain:domain]; [domain release]; [manager signalEnumeratorForContainerItemIdentifier:NSFileProviderRootContainerItemIdentifier @@ -204,8 +205,10 @@ void enumerateMaterialisedFilesForDomainManager(NSFileProviderManager * const ma const auto items = storageUseObserver.materialisedItems; Q_ASSERT(items != nil); - // Remember that OCC::Account::userIdAtHost == domain.identifier for us const auto qDomainIdentifier = QString::fromNSString(domain.identifier); + OCC::ConfigFile cfg; + const auto accountUserIdAtHost = cfg.accountIdFromFileProviderDomainUuid(qDomainIdentifier); + const auto key = accountUserIdAtHost.isEmpty() ? qDomainIdentifier : accountUserIdAtHost; QVector qMaterialisedItems; qMaterialisedItems.reserve(items.count); unsigned long long storageUsage = 0; @@ -218,11 +221,11 @@ void enumerateMaterialisedFilesForDomainManager(NSFileProviderManager * const ma << "with total size" << storageUsage; qMaterialisedItems.append(itemMetadata); } - _storageUsage.insert(qDomainIdentifier, storageUsage); - _materialisedFiles.insert(qDomainIdentifier, qMaterialisedItems); + _storageUsage.insert(key, storageUsage); + _materialisedFiles.insert(key, qMaterialisedItems); - emit q->localStorageUsageForAccountChanged(qDomainIdentifier); - emit q->materialisedItemsForAccountChanged(qDomainIdentifier); + emit q->localStorageUsageForAccountChanged(key); + emit q->materialisedItemsForAccountChanged(key); [storageUseObserver release]; [enumerator release]; @@ -445,8 +448,9 @@ void initialCheck() void FileProviderSettingsController::refreshMaterialisedItemsForAccount(const QString &userIdAtHost) { - d->enumerateMaterialisedFilesForDomainManager(FileProviderUtils::managerForDomainIdentifier(userIdAtHost), - FileProviderUtils::domainForIdentifier(userIdAtHost)); + const auto domainId = FileProviderUtils::domainIdentifierForAccountIdentifier(userIdAtHost); + d->enumerateMaterialisedFilesForDomainManager(FileProviderUtils::managerForDomainIdentifier(domainId), + FileProviderUtils::domainForIdentifier(domainId)); } void FileProviderSettingsController::signalFileProviderDomain(const QString &userIdAtHost) From 58c01b4943b218718acb34eb5ac24d6dcf610901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 20 Apr 2026 10:17:26 +0200 Subject: [PATCH 038/148] SES-482 - WIP added import --- src/gui/macOS/fileprovidersettingscontroller_mac.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/macOS/fileprovidersettingscontroller_mac.mm b/src/gui/macOS/fileprovidersettingscontroller_mac.mm index e211351b6fccd..834c63dbbfd36 100644 --- a/src/gui/macOS/fileprovidersettingscontroller_mac.mm +++ b/src/gui/macOS/fileprovidersettingscontroller_mac.mm @@ -8,6 +8,7 @@ #include #include +#include "configfile.h" #include "gui/systray.h" #include "gui/userinfo.h" #include "gui/macOS/fileprovider.h" From ddbdbb7afdb69fccdb1d18b9d6ba7fb7099eb4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 20 Apr 2026 10:17:57 +0200 Subject: [PATCH 039/148] SES-467 - Fixed ToolTip Color --- src/gui/macOS/ui/FileProviderSyncStatus.qml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml index a3c49613b7a98..1a8492fc19f10 100644 --- a/src/gui/macOS/ui/FileProviderSyncStatus.qml +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -62,9 +62,20 @@ GridLayout { visible: !root.syncStatus.syncing hoverEnabled: true onClicked: root.domainSignalRequested() - ToolTip.visible: hovered - ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval - ToolTip.text: qsTr("Request a sync of changes for the VFS environment.\nmacOS may ignore or delay this request.") + ToolTip { + visible: requestSyncButton.hovered + delay: Qt.styleHints.mousePressAndHoldInterval + contentItem: Text { + text: qsTr("Request a sync of changes for the VFS environment.\nmacOS may ignore or delay this request.") + color: Style.sesTrayFontColor + wrapMode: Text.Wrap + } + background: Rectangle { + color: Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } + } background: Rectangle { color: requestSyncButton.hovered ? requestSyncButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor border.width: 1 From cf77dd539ccd1bc0b2f54c635ebd1848433952af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 07:40:34 +0200 Subject: [PATCH 040/148] SES-464 - Reshown Server Notification Checkbox --- src/gui/generalsettings.cpp | 1 - src/gui/generalsettings.ui | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index f3cfd120e1556..9fdf458046d54 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -221,7 +221,6 @@ GeneralSettings::GeneralSettings(QWidget *parent) connect(_ui->serverNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleOptionalServerNotifications); _ui->serverNotificationsCheckBox->setToolTip(tr("Server notifications that require attention.")); - _ui->serverNotificationsCheckBox->setVisible(false); connect(_ui->chatNotificationsCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleChatNotifications); diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index b18be339e83c5..71e0b008b20a3 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -55,6 +55,13 @@ + + + + Show Server &Notifications + + + @@ -131,13 +138,6 @@ Check Now - - - - - Show Server &Notifications - - From 6485c38df5e1213d2015a1da8f50deaaa3c9f329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 08:26:57 +0200 Subject: [PATCH 041/148] SES-481 Hide E2E-Message --- src/gui/accountsettings.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 8b517189cc3e7..b01decd622bb9 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1537,6 +1537,8 @@ void AccountSettings::slotAccountStateChanged() void AccountSettings::checkClientSideEncryptionState() { + return; // E2E encryption message disabled + /* TODO: We should probably do something better here. * Verify if the user has a private key already uploaded to the server, * if it has, do not offer to create one. From 286c034519b6e2c35dcb4315ca554984972ba6c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 10:18:35 +0200 Subject: [PATCH 042/148] SES-482 - Fixded Button Color --- src/gui/macOS/ui/FileProviderFileDelegate.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gui/macOS/ui/FileProviderFileDelegate.qml b/src/gui/macOS/ui/FileProviderFileDelegate.qml index 39e8769f3039f..2e4ac295eec18 100644 --- a/src/gui/macOS/ui/FileProviderFileDelegate.qml +++ b/src/gui/macOS/ui/FileProviderFileDelegate.qml @@ -85,6 +85,11 @@ Item { text: qsTr("Delete") onClicked: root.evictItem(root.identifier, root.domainIdentifier) + background: Rectangle { + color: deleteButton.hovered ? deleteButton.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesBackgroundColor + border.width: 1 + border.color: Style.sesBorderColor + } } } } From e6c3e88e1e584fb56e3025698e0d90a79545cb7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 10:40:25 +0200 Subject: [PATCH 043/148] SES-481 Hide E2E-Message 2 --- src/gui/accountsettings.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index b01decd622bb9..7bd3a52f534c1 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -296,6 +296,7 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) connect(this, &AccountSettings::folderChanged, _model, &FolderStatusModel::resetFolders); // Connect E2E stuff + _ui->encryptionMessage->setVisible(false); if (_accountState->isConnected()) { setupE2eEncryption(); } else { @@ -323,6 +324,7 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) void AccountSettings::slotE2eEncryptionMnemonicReady() { + return; // E2E encryption message disabled const auto actionDisableEncryption = addActionToEncryptionMessage(tr("Forget encryption setup"), e2EeUiActionForgetEncryptionId); connect(actionDisableEncryption, &QAction::triggered, this, [this] { forgetEncryptionOnDeviceForAccount(_accountState->account()); From 9cb62e07223a442022255d82b7b3b7bd86d414ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 10:41:23 +0200 Subject: [PATCH 044/148] NoIssue - Set GA_MEASUREMENT_ID for debug --- src/gui/ga4/datacollectionwrapper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/ga4/datacollectionwrapper.cpp b/src/gui/ga4/datacollectionwrapper.cpp index b9df10731ff0b..5c3dd5047c8ac 100644 --- a/src/gui/ga4/datacollectionwrapper.cpp +++ b/src/gui/ga4/datacollectionwrapper.cpp @@ -2,7 +2,7 @@ #ifdef BUILDTYPE_RELWITHDEBINFO // const QString GA_MEASUREMENT_ID = "G-P9KD4TLW0V"; // Verwende diesen String nur wenn wir in Debug bauen - const QString GA_MEASUREMENT_ID = "G-5XHQT73DSV"; // Verwende diesen String nur wenn wir in Debug bauen + const QString GA_MEASUREMENT_ID = "G-P9KD4TLW0V"; // Verwende diesen String nur wenn wir in Debug bauen #else #ifdef Q_OS_WIN const QString GA_MEASUREMENT_ID = "G-270CYZ49V0"; // Verwende diesen String nur wenn wir in Release bauen From 3c01ef8e1b5941720968f79a354d63e5d83abf6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 15:56:33 +0200 Subject: [PATCH 045/148] SES-467 - Fixed tooltip background color --- src/gui/filedetails/FileDetailsPage.qml | 6 ++++++ src/gui/macOS/ui/FileProviderSyncStatus.qml | 1 + src/gui/tray/ActivityItem.qml | 6 ++++++ src/gui/tray/ActivityItemContent.qml | 12 ++++++++++++ src/gui/tray/IconButton.qml | 6 ++++++ src/gui/tray/SecondaryPillButton.qml | 6 ++++++ src/gui/tray/TrayFolderListItem.qml | 6 ++++++ src/gui/tray/TrayFoldersMenuButton.qml | 8 +++++++- src/gui/tray/UnifiedSearchResultListItem.qml | 6 ++++++ 9 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/gui/filedetails/FileDetailsPage.qml b/src/gui/filedetails/FileDetailsPage.qml index 9ea069205eb43..c7bdc958057f3 100644 --- a/src/gui/filedetails/FileDetailsPage.qml +++ b/src/gui/filedetails/FileDetailsPage.qml @@ -222,6 +222,12 @@ Page { font.pixelSize: Style.sesFontPixelSize font.weight: Style.sesFontNormalWeight + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } } } diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml index 1a8492fc19f10..e81b06a6f55c7 100644 --- a/src/gui/macOS/ui/FileProviderSyncStatus.qml +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -74,6 +74,7 @@ GridLayout { color: Style.sesBackgroundColor border.width: 1 border.color: Style.sesBorderColor + radius: 4 } } background: Rectangle { diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml index 974e0472554d1..725297e03d645 100644 --- a/src/gui/tray/ActivityItem.qml +++ b/src/gui/tray/ActivityItem.qml @@ -40,6 +40,12 @@ ItemDelegate { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && !activityContent.childHovered && model.displayLocation !== "" text: qsTr("In %1").arg(model.displayLocation) + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } // TODO: the current style does not support customization of this control diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index 8fc77d97abc5d..c61ed756b779a 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -190,6 +190,12 @@ RowLayout { popupType: Qt.platform.os === "windows" ? Popup.Item : Qt.platform.os === "windows" ? Popup.Item : Popup.Native text: qsTr("Open file details") visible: parent.hovered + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } leftPadding: 0 @@ -221,6 +227,12 @@ RowLayout { popupType: Qt.platform.os === "windows" ? Popup.Item : Qt.platform.os === "windows" ? Popup.Item : Popup.Native text: qsTr("Dismiss") visible: parent.hovered + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } visible: root.showDismissButton diff --git a/src/gui/tray/IconButton.qml b/src/gui/tray/IconButton.qml index 95d84055f40bc..70804b9283a72 100644 --- a/src/gui/tray/IconButton.qml +++ b/src/gui/tray/IconButton.qml @@ -29,6 +29,12 @@ Button{ ToolTip { text: root.toolTipText visible: root.toolTipText && root.isMouseOver + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } background: Rectangle { diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml index d7e5a25632f73..2e913dbdbcb30 100644 --- a/src/gui/tray/SecondaryPillButton.qml +++ b/src/gui/tray/SecondaryPillButton.qml @@ -58,5 +58,11 @@ Button{ ToolTip { text: root.toolTipText visible: root.toolTipText && root.isMouseOver + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } } \ No newline at end of file diff --git a/src/gui/tray/TrayFolderListItem.qml b/src/gui/tray/TrayFolderListItem.qml index feb8303830447..901709b5ac5a8 100644 --- a/src/gui/tray/TrayFolderListItem.qml +++ b/src/gui/tray/TrayFolderListItem.qml @@ -20,6 +20,12 @@ MenuItem { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && root.toolTipText !== "" text: root.toolTipText + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } contentItem: RowLayout { diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index 79992c98c9949..d810c48a3ba82 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -60,7 +60,13 @@ HeaderButton { id: tooltip popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && !foldersMenuLoader.isMenuVisible - text: root.userHasGroupFolders ? qsTr("Open local or team folders") : qsTr("Open local folder") + text: root.userHasGroupFolders ? qsTr("Open local or group folders") : qsTr("Open local folder") + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } diff --git a/src/gui/tray/UnifiedSearchResultListItem.qml b/src/gui/tray/UnifiedSearchResultListItem.qml index e82db2b0549f9..137444f304431 100644 --- a/src/gui/tray/UnifiedSearchResultListItem.qml +++ b/src/gui/tray/UnifiedSearchResultListItem.qml @@ -33,6 +33,12 @@ MouseArea { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: unifiedSearchResultMouseArea.containsMouse text: isFetchMoreTrigger ? qsTr("Load more results") : model.resultTitle + "\n\n" + model.subline + background: Rectangle { + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } } Rectangle { From 5fad9c63217d1e8df3424096db69186b02579358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 15:56:47 +0200 Subject: [PATCH 046/148] SES-467 - Fixed color of Share --- src/gui/filedetails/ShareDetailsPage.qml | 15 ++++++++++++--- src/gui/filedetails/ShareeDelegate.qml | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index b6a70730adca4..4792ea80e5db6 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -20,6 +20,14 @@ Page { component SesCheckBox: CheckBox { hoverEnabled: false + palette.base: Style.sesBackgroundColor + contentItem: Text { + text: parent.text + color: Style.sesTrayFontColor + font: parent.font + leftPadding: parent.indicator.width + parent.spacing + verticalAlignment: Text.AlignVCenter + } } signal closeShareDetails @@ -228,7 +236,7 @@ Page { Layout.rightMargin: headerGridLayout.textRightMargin text: root.fileDetails.name - + color: Style.sesTrayFontColor font.pixelSize: titlePixelSize font.weight: titleFontWeight @@ -258,6 +266,7 @@ Page { text: `${root.fileDetails.sizeString}, ${root.fileDetails.lastChangedString}` wrapMode: Text.Wrap + color: Style.sesTrayFontColor font.pixelSize: hintPixelSize font.weight: hintFontWeight @@ -365,7 +374,7 @@ Page { radius: Style.slightlyRoundedButtonRadius border.width: Style.thickBorderWidth border.color: Style.sesTrayInputField - color: palette.base + color: Style.sesBackgroundColor z: -1 } } @@ -435,7 +444,7 @@ Page { radius: Style.slightlyRoundedButtonRadius border.width: Style.thickBorderWidth border.color: Style.sesTrayInputField - color: palette.base + color: Style.sesBackgroundColor z: -1 } } diff --git a/src/gui/filedetails/ShareeDelegate.qml b/src/gui/filedetails/ShareeDelegate.qml index a62ecefd47ea4..72aa2d1e71630 100644 --- a/src/gui/filedetails/ShareeDelegate.qml +++ b/src/gui/filedetails/ShareeDelegate.qml @@ -53,6 +53,7 @@ ItemDelegate { Layout.preferredHeight: unifiedSearchResultSkeletonItemDetails.iconWidth Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft + color: Style.sesTrayFontColor font.pixelSize: Style.sesFontPixelSize font.weight: Style.sesFontNormalWeight From 9ffc6a78fbc0c332e2f3164f9c837451242220d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 21 Apr 2026 16:01:14 +0200 Subject: [PATCH 047/148] SES-481 Hide E2E-Message 3 --- src/gui/accountsettings.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 7bd3a52f534c1..3950703eff89d 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -297,6 +297,7 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) // Connect E2E stuff _ui->encryptionMessage->setVisible(false); + _ui->encryptionMessage->hide(); if (_accountState->isConnected()) { setupE2eEncryption(); } else { From 99f18553244b8906f9ec983a6c7efa790a1f47c2 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 22 Apr 2026 08:46:59 +0200 Subject: [PATCH 048/148] Remove not needed postfixlineedit --- src/gui/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 654da93a172f7..869ed8dbe4255 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -235,8 +235,6 @@ set(client_SRCS creds/webflowcredentials.cpp creds/webflowcredentialsdialog.h creds/webflowcredentialsdialog.cpp - wizard/postfixlineedit.h - wizard/postfixlineedit.cpp wizard/abstractcredswizardpage.h wizard/abstractcredswizardpage.cpp wizard/owncloudadvancedsetuppage.h From e86f229db7adc0c4d1c3c63e2b8cc1093fae923b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 22 Apr 2026 09:09:01 +0200 Subject: [PATCH 049/148] SES-467 SES-483 - Fixed color and sice of conflict dialog --- src/gui/ResolveConflictsDialog.qml | 10 +++++++++- theme/Style/Style.qml | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gui/ResolveConflictsDialog.qml b/src/gui/ResolveConflictsDialog.qml index 91a53776aeef4..91754479a15eb 100644 --- a/src/gui/ResolveConflictsDialog.qml +++ b/src/gui/ResolveConflictsDialog.qml @@ -20,6 +20,10 @@ ApplicationWindow { flags: Qt.Window | Qt.Dialog visible: true + color: Style.sesBackgroundColor + palette.base: Style.sesBackgroundColor + palette.windowText: Style.sesTrayFontColor + palette.text: Style.sesTrayFontColor LayoutMirroring.enabled: Application.layoutDirection === Qt.RightToLeft LayoutMirroring.childrenInherit: true @@ -131,7 +135,7 @@ ApplicationWindow { delegate: ConflictDelegate { width: conflictListView.contentItem.width - height: 100 + height: 140 } } } @@ -141,6 +145,10 @@ ApplicationWindow { id: buttonBox Layout.fillWidth: true + background: Rectangle { + color: Style.sesBackgroundColor + } + readonly property int pixelSize: Style.sesFontPixelSize readonly property int fontWeight: Style.sesFontNormalWeight diff --git a/theme/Style/Style.qml b/theme/Style/Style.qml index d2f206481624e..2909f8b6ff000 100644 --- a/theme/Style/Style.qml +++ b/theme/Style/Style.qml @@ -171,8 +171,8 @@ QtObject { readonly property int bigFontPixelSizeResolveConflictsDialog: 20 readonly property int fontPixelSizeResolveConflictsDialog: 15 - readonly property int minimumWidthResolveConflictsDialog: 600 - readonly property int minimumHeightResolveConflictsDialog: 300 + readonly property int minimumWidthResolveConflictsDialog: 615 + readonly property int minimumHeightResolveConflictsDialog: 350 readonly property double smallIconScaleFactor: 0.6 From e751a8ae58d9588813877dd63cf402cf6b595a7d Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 22 Apr 2026 13:26:03 +0200 Subject: [PATCH 050/148] SES-467 set tooltip font color explicitly --- src/gui/filedetails/FileDetailsPage.qml | 5 ++++- src/gui/tray/ActivityItem.qml | 5 ++++- src/gui/tray/ActivityItemContent.qml | 5 ++++- src/gui/tray/IconButton.qml | 5 ++++- src/gui/tray/SecondaryPillButton.qml | 15 +++++++++------ src/gui/tray/TrayFolderListItem.qml | 15 +++++++++------ src/gui/tray/TrayFoldersMenuButton.qml | 4 ++++ src/gui/tray/UnifiedSearchResultListItem.qml | 15 +++++++++------ 8 files changed, 47 insertions(+), 22 deletions(-) diff --git a/src/gui/filedetails/FileDetailsPage.qml b/src/gui/filedetails/FileDetailsPage.qml index c7bdc958057f3..e353dd44e54bb 100644 --- a/src/gui/filedetails/FileDetailsPage.qml +++ b/src/gui/filedetails/FileDetailsPage.qml @@ -218,7 +218,6 @@ Page { ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: hoverHandler.hovered - text: tagRepeater.fileTagModel.overflowTagsString font.pixelSize: Style.sesFontPixelSize font.weight: Style.sesFontNormalWeight @@ -228,6 +227,10 @@ Page { border.width: 1 radius: 4 } + contentItem: Text { + text: tagRepeater.fileTagModel.overflowTagsString + color: Style.sesTrayFontColor + } } } } diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml index 725297e03d645..cc0d4c2e4c7cf 100644 --- a/src/gui/tray/ActivityItem.qml +++ b/src/gui/tray/ActivityItem.qml @@ -39,13 +39,16 @@ ItemDelegate { ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && !activityContent.childHovered && model.displayLocation !== "" - text: qsTr("In %1").arg(model.displayLocation) background: Rectangle { color: Style.sesBackgroundColor border.color: Style.sesBorderColor border.width: 1 radius: 4 } + contentItem: Text { + text: qsTr("In %1").arg(model.displayLocation) + color: Style.sesTrayFontColor + } } // TODO: the current style does not support customization of this control diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index c61ed756b779a..f2dd363df7980 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -188,7 +188,6 @@ RowLayout { ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Qt.platform.os === "windows" ? Popup.Item : Popup.Native - text: qsTr("Open file details") visible: parent.hovered background: Rectangle { color: Style.sesBackgroundColor @@ -196,6 +195,10 @@ RowLayout { border.width: 1 radius: 4 } + contentItem: Text { + text: qsTr("Open file details") + color: Style.sesTrayFontColor + } } leftPadding: 0 diff --git a/src/gui/tray/IconButton.qml b/src/gui/tray/IconButton.qml index 70804b9283a72..87d1d211a71b8 100644 --- a/src/gui/tray/IconButton.qml +++ b/src/gui/tray/IconButton.qml @@ -27,7 +27,6 @@ Button{ } ToolTip { - text: root.toolTipText visible: root.toolTipText && root.isMouseOver background: Rectangle { color: Style.sesBackgroundColor @@ -35,6 +34,10 @@ Button{ border.width: 1 radius: 4 } + contentItem: Text { + text: root.toolTipText + color: Style.sesTrayFontColor + } } background: Rectangle { diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml index 2e913dbdbcb30..9d9575c9453db 100644 --- a/src/gui/tray/SecondaryPillButton.qml +++ b/src/gui/tray/SecondaryPillButton.qml @@ -56,13 +56,16 @@ Button{ } ToolTip { - text: root.toolTipText visible: root.toolTipText && root.isMouseOver background: Rectangle { - color: Style.sesBackgroundColor - border.color: Style.sesBorderColor - border.width: 1 - radius: 4 - } + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } + contentItem: Text { + text: root.toolTipText + color: Style.sesTrayFontColor + } } } \ No newline at end of file diff --git a/src/gui/tray/TrayFolderListItem.qml b/src/gui/tray/TrayFolderListItem.qml index 901709b5ac5a8..00dff9cce1718 100644 --- a/src/gui/tray/TrayFolderListItem.qml +++ b/src/gui/tray/TrayFolderListItem.qml @@ -19,13 +19,16 @@ MenuItem { ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && root.toolTipText !== "" - text: root.toolTipText background: Rectangle { - color: Style.sesBackgroundColor - border.color: Style.sesBorderColor - border.width: 1 - radius: 4 - } + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } + contentItem: Text { + text: root.toolTipText + color: Style.sesTrayFontColor + } } contentItem: RowLayout { diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index d810c48a3ba82..27a49db684ee5 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -67,6 +67,10 @@ HeaderButton { border.width: 1 radius: 4 } + contentItem: Text { + text: tooltip.text + color: Style.sesTrayFontColor + } } diff --git a/src/gui/tray/UnifiedSearchResultListItem.qml b/src/gui/tray/UnifiedSearchResultListItem.qml index 137444f304431..3027a988dd1a1 100644 --- a/src/gui/tray/UnifiedSearchResultListItem.qml +++ b/src/gui/tray/UnifiedSearchResultListItem.qml @@ -32,13 +32,16 @@ MouseArea { ToolTip { popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: unifiedSearchResultMouseArea.containsMouse - text: isFetchMoreTrigger ? qsTr("Load more results") : model.resultTitle + "\n\n" + model.subline background: Rectangle { - color: Style.sesBackgroundColor - border.color: Style.sesBorderColor - border.width: 1 - radius: 4 - } + color: Style.sesBackgroundColor + border.color: Style.sesBorderColor + border.width: 1 + radius: 4 + } + contentItem: Text { + text: isFetchMoreTrigger ? qsTr("Load more results") : model.resultTitle + "\n\n" + model.subline + color: Style.sesTrayFontColor + } } Rectangle { From cbc34db7294629ec4eb0c9cd359216120a4b5f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 22 Apr 2026 14:14:25 +0200 Subject: [PATCH 051/148] SES-491 - check for ionos and mac before used cached theme icon --- src/libsync/theme.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index 3a23f03a1e7d5..f08482fd277d5 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -280,11 +280,12 @@ QIcon Theme::themeIcon(const QString &name, bool sysTray) const QString key = name + "," + flavor; QIcon &cached = _iconCache[key]; if (cached.isNull()) { + #if !(defined(IONOS_BUILD) && defined(IONOS_BUILD)) if (QIcon::hasThemeIcon(name)) { // use from theme return cached = QIcon::fromTheme(name); } - + #endif const QString svgName = QString(Theme::themePrefix) + QString::fromLatin1("%1/%2.svg").arg(flavor).arg(name); QSvgRenderer renderer(svgName); const auto createPixmapFromSvg = [&renderer] (int size) { From ef976468d0b6bb15aa46cf53681454e9baa19e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 22 Apr 2026 15:16:47 +0200 Subject: [PATCH 052/148] SES-467 SES-485 - Fixed Dialog sometimes not opening --- src/gui/tray/ActivityItemContent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index f2dd363df7980..fc56ef64d7c32 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -307,7 +307,7 @@ RowLayout { maxActionButtons: activityModel.maxActionButtons - onTriggerAction: (activityData, actionIndex) => activityModel.slotTriggerAction(activityData.activityIndex, actionIndex) + onTriggerAction: (actionIndex) => activityModel.slotTriggerAction(activityData.activityIndex, actionIndex) onShowReplyField: isTalkReplyOptionVisible = true talkReplyButtonVisible: root.activityData.messageSent === "" && !isTalkReplyOptionVisible From fcacd58cec5d863190050b27bf2b1cac29bb50d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 22 Apr 2026 15:17:04 +0200 Subject: [PATCH 053/148] SES-467 - Settings Clipped on mac --- src/gui/generalsettings.ui | 2 +- src/gui/settingsdialog.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index 71e0b008b20a3..47b0b3499ad3c 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -7,7 +7,7 @@ 0 0 601 - 663 + 700 diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 94600e186d6a8..f2cbff8067760 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -177,8 +177,8 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint & Qt::Window); cfg.restoreGeometry(this); resize(width() > WLTheme.minimalSettingsDialogWidth() + 50 ? width(): WLTheme.minimalSettingsDialogWidth() + 50, - (height() > generalSettings->sizeHint().height() + 75 ? height(): generalSettings->sizeHint().height()) + 75); - setMinimumSize(WLTheme.minimalSettingsDialogWidth() + 50, generalSettings->sizeHint().height() + 75); + (height() > generalSettings->sizeHint().height() + 100 ? height(): generalSettings->sizeHint().height()) + 100); + setMinimumSize(WLTheme.minimalSettingsDialogWidth() + 50, generalSettings->sizeHint().height() + 100); } From 7abad0dbef58456c9581d408352efae5f1ea1bf4 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 22 Apr 2026 15:55:46 +0200 Subject: [PATCH 054/148] SES-467 set preferredWidth and Height to Sync Status Icon --- src/gui/tray/SyncStatus.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/tray/SyncStatus.qml b/src/gui/tray/SyncStatus.qml index 7e5daf7df55a0..dfdaaab036c46 100644 --- a/src/gui/tray/SyncStatus.qml +++ b/src/gui/tray/SyncStatus.qml @@ -33,6 +33,8 @@ RowLayout { Layout.rightMargin: 0 Layout.bottomMargin: 16 Layout.leftMargin: Style.sesActivityItemDistanceToFrame + Layout.preferredWidth: Style.sesIconSize + Layout.preferredHeight: Style.sesIconSize padding: 0 imageSource: syncStatus.syncIcon From da9fddeff38c98ae1d92288f82612dd53d929c1e Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 23 Apr 2026 14:10:36 +0200 Subject: [PATCH 055/148] fix "Note to recipient" by using nextclouds stable-4.0 logic --- src/gui/filedetails/ShareDetailsPage.qml | 103 ++++++++++------------- 1 file changed, 45 insertions(+), 58 deletions(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 4792ea80e5db6..9e30386d1f06b 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -449,80 +449,67 @@ Page { } } - ColumnLayout { + SesCheckBox { + id: noteEnabledMenuItem + Layout.fillWidth: true - height: visible ? implicitHeight : 0 - spacing: Style.extraSmallSpacing - SesCheckBox { - id: noteEnabledMenuItem + spacing: scrollContentsColumn.indicatorSpacing + leftPadding: scrollContentsColumn.itemPadding + rightPadding: scrollContentsColumn.itemPadding + indicator.width: scrollContentsColumn.indicatorItemWidth + indicator.height: scrollContentsColumn.indicatorItemWidth - Layout.fillWidth: true + checkable: true + checked: root.noteEnabled + text: qsTr("Note to recipient") + enabled: !root.waitingForNoteChange - font.pixelSize: pixelSize - font.weight: fontWeight + onClicked: { + if (!checked && root.note !== "") { + root.setNote(""); + root.waitingForNoteChange = true; + } + } + } + RowLayout { + Layout.fillWidth: true + height: visible ? implicitHeight : 0 + spacing: scrollContentsColumn.indicatorSpacing - spacing: scrollContentsColumn.indicatorSpacing - padding: scrollContentsColumn.itemPadding - indicator.width: scrollContentsColumn.indicatorItemWidth - indicator.height: scrollContentsColumn.indicatorItemWidth + visible: noteEnabledMenuItem.checked - checkable: true - checked: root.noteEnabled - text: qsTr("Note to recipient") - enabled: !root.waitingForNoteEnabledChange + Image { + Layout.preferredWidth: scrollContentsColumn.indicatorItemWidth + Layout.fillHeight: true - onClicked: { - root.toggleNoteToRecipient(checked); - root.waitingForNoteEnabledChange = true; - } - } - - Text{ - text: qsTr("Enter the note to recipient") - color: Style.sesGray - padding: scrollContentsColumn.itemPadding - visible: root.noteEnabled - font.family: root.font.family - font.pixelSize: pixelSize - font.weight: fontWeight + verticalAlignment: Image.AlignVCenter + horizontalAlignment: Image.AlignHCenter + fillMode: Image.Pad + + source: "image://svgimage-custom-color/comment.svg/" + palette.windowText + sourceSize.width: scrollContentsColumn.rowIconWidth + sourceSize.height: scrollContentsColumn.rowIconWidth } - TextEdit { - id: noteTextEdit - visible: root.noteEnabled - font.family: root.font.family - font.pixelSize: pixelSize - font.weight: fontWeight - color: Style.sesTrayFontColor + NCInputTextArea { + id: noteTextArea + Layout.fillWidth: true - Layout.leftMargin: 3 - Layout.rightMargin: 3 - height: visible ? 64 : 0 - wrapMode: TextEdit.Wrap - selectByMouse: true - padding: scrollContentsColumn.itemPadding - enabled: root.noteEnabled && - !root.waitingForNoteChange && - !root.waitingForNoteEnabledChange + // no height here -- let the textarea figure it out how much it needs + submitButton.height: Math.min(Style.talkReplyTextFieldPreferredHeight, height - 2) + + text: root.note + placeholderText: qsTr("Enter a note for the recipient") + enabled: noteEnabledMenuItem.checked && !root.waitingForNoteChange - onEditingFinished: if(text !== "") { + onEditingFinished: if (text !== "" && text !== root.note) { root.setNote(text); root.waitingForNoteChange = true; } - - Rectangle { - id: noteTextBorder - anchors.fill: parent - radius: Style.slightlyRoundedButtonRadius - border.width: Style.thickBorderWidth - border.color: Style.sesTrayInputField - color: palette.base - z: -1 - } } - } + } Loader { Layout.fillWidth: true From 3e6dfbc654b180306d8e6108c37323c8d58fd4b6 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 23 Apr 2026 14:58:46 +0200 Subject: [PATCH 056/148] SES-348 use prettyName instead of long userID --- src/libsync/account.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp index d4af4830eb724..656d3bfa6ae2f 100644 --- a/src/libsync/account.cpp +++ b/src/libsync/account.cpp @@ -176,7 +176,7 @@ QString Account::displayName() const credentialsUser = _credentials->user(); } - auto displayName = QStringLiteral("%1@%2").arg(credentialsUser, _url.host()); + auto displayName = QStringLiteral("%1").arg(prettyName()); const auto port = url().port(); if (port > 0 && port != 80 && port != 443) { displayName.append(QLatin1Char(':')); From 8f5f34eec8040d239ea5cfa78b05eaf4702c72c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 23 Apr 2026 14:15:34 +0200 Subject: [PATCH 057/148] SES-391 - ensure sendData is only set true, when agreed --- src/gui/wizard/dataprotectionpage.cpp | 6 ++++-- src/gui/wizard/dataprotectionsettingspage.cpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/wizard/dataprotectionpage.cpp b/src/gui/wizard/dataprotectionpage.cpp index 7ae7c3551b4b5..b4309cd74e082 100644 --- a/src/gui/wizard/dataprotectionpage.cpp +++ b/src/gui/wizard/dataprotectionpage.cpp @@ -27,8 +27,10 @@ namespace OCC{ void DataProtectionPage::initializePage() { ConfigFile cfgFile; - cfgFile.setSendData(true); - connect(_ui->agreeButton, &QPushButton::clicked, this, [this]() { + cfgFile.setSendData(false); + + connect(_ui->agreeButton, &QPushButton::clicked, this, [this, &cfgFile]() { + cfgFile.setSendData(true); _nextPage = WizardCommon::Page_AdvancedSetup; _ocWizard->next(); }); diff --git a/src/gui/wizard/dataprotectionsettingspage.cpp b/src/gui/wizard/dataprotectionsettingspage.cpp index 1b8ab34546a54..49ef731d655cc 100644 --- a/src/gui/wizard/dataprotectionsettingspage.cpp +++ b/src/gui/wizard/dataprotectionsettingspage.cpp @@ -32,6 +32,7 @@ namespace OCC{ void DataProtectionSettingsPage::setupPage() { ConfigFile cfgFile; + cfgFile.setSendData(false); connect(_ui->backButton, &QPushButton::clicked, this, [this, &cfgFile]() { _ui->anonymousDataCheckBox->setChecked(false); From 0410476955bb6a3840f0e50040aaf737d922aead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 23 Apr 2026 15:21:41 +0200 Subject: [PATCH 058/148] SES-391 - Ensure connects are not executed multiple times --- src/gui/wizard/dataprotectionpage.cpp | 21 ++++++++++--------- src/gui/wizard/dataprotectionsettingspage.cpp | 5 +++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/gui/wizard/dataprotectionpage.cpp b/src/gui/wizard/dataprotectionpage.cpp index b4309cd74e082..71da6a64d9e77 100644 --- a/src/gui/wizard/dataprotectionpage.cpp +++ b/src/gui/wizard/dataprotectionpage.cpp @@ -22,23 +22,24 @@ namespace OCC{ void DataProtectionPage::setupUi() { _ui->setupUi(this); - } - - void DataProtectionPage::initializePage() - { - ConfigFile cfgFile; - cfgFile.setSendData(false); - connect(_ui->agreeButton, &QPushButton::clicked, this, [this, &cfgFile]() { + connect(_ui->agreeButton, &QPushButton::clicked, this, [this]() { + ConfigFile cfgFile; cfgFile.setSendData(true); - _nextPage = WizardCommon::Page_AdvancedSetup; + _nextPage = WizardCommon::Page_AdvancedSetup; _ocWizard->next(); }); - connect(_ui->settingsButton, &QPushButton::clicked, this, [this](){ - _nextPage = WizardCommon::Page_DataProtectionSettings; + connect(_ui->settingsButton, &QPushButton::clicked, this, [this]() { + _nextPage = WizardCommon::Page_DataProtectionSettings; _ocWizard->next(); }); + } + + void DataProtectionPage::initializePage() + { + ConfigFile cfgFile; + cfgFile.setSendData(false); QString dataProtectionLogo = QString(); diff --git a/src/gui/wizard/dataprotectionsettingspage.cpp b/src/gui/wizard/dataprotectionsettingspage.cpp index 49ef731d655cc..8e539d21a3125 100644 --- a/src/gui/wizard/dataprotectionsettingspage.cpp +++ b/src/gui/wizard/dataprotectionsettingspage.cpp @@ -34,12 +34,13 @@ namespace OCC{ ConfigFile cfgFile; cfgFile.setSendData(false); - connect(_ui->backButton, &QPushButton::clicked, this, [this, &cfgFile]() { + connect(_ui->backButton, &QPushButton::clicked, this, [this]() { _ui->anonymousDataCheckBox->setChecked(false); _ocWizard->back(); }); - connect(_ui->saveButton, &QPushButton::clicked, this, [this, &cfgFile](){ + connect(_ui->saveButton, &QPushButton::clicked, this, [this]() { + ConfigFile cfgFile; cfgFile.setSendData(_ui->anonymousDataCheckBox->isChecked()); _ocWizard->next(); }); From 42e26f46409bfdaca2bbb082e41e9d3ca876d89d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 23 Apr 2026 15:23:04 +0200 Subject: [PATCH 059/148] NoIssue - Deactivate Proxy --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index ddd0933655a24..d40b76680f637 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,7 @@ "LOCALBUILD": "ON", "WHITELABEL_NAME": "ionos", "CMAKE_CXX_CLANG_TIDY": "", + "DO_NOT_USE_PROXY": "ON", }, "cmake.buildArgs": ["-j", "16"], "cmake.buildDirectory": "${workspaceFolder}/../build/${buildKitTargetOs}-${buildKitVendor}-${buildKitTargetArch}/${buildType}", From 3ed37e0e296da5871fd8167a2467905a86785d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 24 Apr 2026 11:18:40 +0200 Subject: [PATCH 060/148] NoIssue - RevertMe - increase build speed on mac --- CMakeLists.txt | 8 ++++---- src/gui/CMakeLists.txt | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60d8934f3f4e5..7869e449d5bc1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,10 +17,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED 20) include(FeatureSummary) -find_program(CLANG_TIDY_EXE NAMES "clang-tidy") -if (CLANG_TIDY_EXE) - set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_EXE} -checks=-*,modernize-use-auto,modernize-use-using,modernize-use-nodiscard,modernize-use-nullptr,modernize-use-override,cppcoreguidelines-pro-type-static-cast-downcast,modernize-use-default-member-init,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-init-variables) -endif() +# find_program(CLANG_TIDY_EXE NAMES "clang-tidy") +# if (CLANG_TIDY_EXE) +# set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_EXE} -checks=-*,modernize-use-auto,modernize-use-using,modernize-use-nodiscard,modernize-use-nullptr,modernize-use-override,cppcoreguidelines-pro-type-static-cast-downcast,modernize-use-default-member-init,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-init-variables) +# endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME NO) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 869ed8dbe4255..552872e8c1192 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -762,7 +762,8 @@ endif() # if building a bundle or not and the install_qt4_executable needs to be called afterwards # # OSX: Run macdeployqt for src/gui and for src/cmd using the -executable option -if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY) +option(SKIP_MACDEPLOYQT "Skip macdeployqt post-build step for faster incremental build" OFF) +if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY AND NOT SKIP_MACDEPLOYQT) get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY) find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}") From 726c3f1c58caa869b004efa88cfc60d58506f8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 24 Apr 2026 11:19:04 +0200 Subject: [PATCH 061/148] NoIssue - increase build speed on mac 2 --- admin/osx/ionos_macmaker/start.sh | 43 ++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/admin/osx/ionos_macmaker/start.sh b/admin/osx/ionos_macmaker/start.sh index b9e80ae5f433e..a31ca94d20dce 100755 --- a/admin/osx/ionos_macmaker/start.sh +++ b/admin/osx/ionos_macmaker/start.sh @@ -24,7 +24,7 @@ export -f sign_folder_content set -xe # Parse the command line arguments -while getopts "a:b:s:cifou" opt; do +while getopts "a:b:s:cifoum" opt; do case ${opt} in a ) ARCHITECTURE=$OPTARG ;; b )BUILD_DIR=$OPTARG;; @@ -34,6 +34,7 @@ while getopts "a:b:s:cifou" opt; do f )BUILD_FILEPROVIDER=true ;; o )OSX_BUNDLE=true ;; u )BUILD_UPDATER=true ;; + m )SKIP_MACDEPLOY=true ;; \? ) echo "Usage: start.sh [-b ] [-s ] [-c] [-i]" exit 1 @@ -42,7 +43,8 @@ while getopts "a:b:s:cifou" opt; do done # Set the deployment target -export MACOSX_DEPLOYMENT_TARGET=10.15 +export MACOSX_DEPLOYMENT_TARGET=13.0 +# export MACOSX_DEPLOYMENT_TARGET=10.15 # Some variables # The product name depends on whether we build an OSX bundle or not. @@ -107,9 +109,14 @@ if [ "$CLEAN_REBUILD" == "true" ] && [ "$BUILD_UPDATER" == "true" ]; then fi fi +# Nach Zeile ~133, vor dem eigentlichen Build-Befehl (ninja/cmake --build) +# QML-Ressourcen invalidieren damit Änderungen erkannt werden +find "$BUILD_DIR" -name "*.qmlc" -delete +find "$BUILD_DIR" -name "qrc_*.cpp" -delete + # Build the client # Only reconfigure if this is a clean build or no CMakeCache exists yet -if [ "$CLEAN_REBUILD" == "true" ] || [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then +# if [ "$CLEAN_REBUILD" == "true" ] || [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then cmake -S $REPO_ROOT_DIR/ -B $BUILD_DIR \ -G Ninja \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ @@ -128,10 +135,12 @@ if [ "$CLEAN_REBUILD" == "true" ] || [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then -DSOCKETAPI_TEAM_IDENTIFIER_PREFIX="$TEAM_IDENTIFIER." \ -DARG_SIDEBAR_ICONS=ON \ -DLOCALBUILD=ON \ - -DWHITELABEL_NAME=ionos -fi + -DSKIP_MACDEPLOYQT=$(if [ $SKIP_MACDEPLOY == true ]; then echo "ON"; else echo "OFF"; fi) \ + -DWHITELABEL_NAME=ionos \ + -DDO_NOT_USE_PROXY=ON -ninja -C $BUILD_DIR install +# fi +ninja -C $BUILD_DIR install -v # --------------------------------------------------- # Sign the client @@ -141,6 +150,16 @@ ninja -C $BUILD_DIR install if [ -z "$CODE_SIGN_IDENTITY" ]; then echo "Code sign identity not set. Exiting." open $PRODUCT_DIR + + export CRAFT="$HOME/Craft64" + + export DYLD_LIBRARY_PATH="$CRAFT/lib" + export DYLD_FRAMEWORK_PATH="$CRAFT/lib" + export QT_PLUGIN_PATH="$CRAFT/plugins" + export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" + export QML2_IMPORT_PATH="$CRAFT/qml" + + $BUILD_DIR/bin/IONOS\ HiDrive\ Next.app/Contents/MacOS/IONOS\ HiDrive\ Next exit 0 fi @@ -155,7 +174,7 @@ find "$CLIENT_FRAMEWORKS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign " find "$CLIENT_PLUGINS_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" find "$CLIENT_RESOURCES_DIR" -print0 | xargs -0 -I {} bash -c 'recursive_sign "$@" "$CODE_SIGN_IDENTITY"' _ {} "$CODE_SIGN_IDENTITY" -codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=4 --deep --options=runtime --timestamp "$PRODUCT_PATH" +codesign -s "$CODE_SIGN_IDENTITY" --force --preserve-metadata=entitlements --verbose=0 --deep --options=runtime "$PRODUCT_PATH" # Sign the client @@ -202,3 +221,13 @@ xcrun stapler staple $PACKAGE_FILENAME xcrun stapler validate $PACKAGE_FILENAME open $PRODUCT_DIR + +export CRAFT="$HOME/Craft64" + +export DYLD_LIBRARY_PATH="$CRAFT/lib" +export DYLD_FRAMEWORK_PATH="$CRAFT/lib" +export QT_PLUGIN_PATH="$CRAFT/plugins" +export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" +export QML2_IMPORT_PATH="$CRAFT/qml" + +$BUILD_DIR/bin/IONOS\ HiDrive\ Next.app/Contents/MacOS/IONOS\ HiDrive\ Next From 7a87e552cda7ebdb3df7d54db866cc9967064b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 24 Apr 2026 16:27:38 +0200 Subject: [PATCH 062/148] SES-493 Fixed Leagcy import darkmode --- src/gui/application.cpp | 7 ++++++ src/gui/legacyaccountselectiondialog.cpp | 31 +++++++++++++++++++++++- src/gui/legacyaccountselectiondialog.h | 2 ++ src/gui/main.cpp | 2 -- 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/gui/application.cpp b/src/gui/application.cpp index f28de29bd4887..6a4322ced650a 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -36,10 +36,13 @@ #endif #include "owncloudsetupwizard.h" +#include "sesstyle.h" #include "version.h" #include "csync_exclude.h" #include "common/vfs.h" +#include + #include "config.h" #if defined(Q_OS_WIN) @@ -389,6 +392,10 @@ Application::Application(int &argc, char **argv) connect(this, &SharedTools::QtSingleApplication::messageReceived, this, &Application::slotParseMessage); +#ifdef IONOS_BUILD + setStyle(new sesStyle(QStyleFactory::create("WindowsVista"))); +#endif + // create accounts and folders from a legacy desktop client or from the current config file setupAccountsAndFolders(); diff --git a/src/gui/legacyaccountselectiondialog.cpp b/src/gui/legacyaccountselectiondialog.cpp index 67fa1a11af14e..6626986181700 100644 --- a/src/gui/legacyaccountselectiondialog.cpp +++ b/src/gui/legacyaccountselectiondialog.cpp @@ -5,10 +5,13 @@ */ #include "legacyaccountselectiondialog.h" - +#include "whitelabeltheme.h" +#include "buttonStyle.h" #include #include #include +#include +#include #include namespace OCC @@ -19,6 +22,7 @@ LegacyAccountSelectionDialog::LegacyAccountSelectionDialog(const QVectoraddWidget(new QLabel(tr("Select the accounts to import from the legacy configuration:"), this)); @@ -31,9 +35,15 @@ LegacyAccountSelectionDialog::LegacyAccountSelectionDialog(const QVectorbutton(QDialogButtonBox::Ok)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); + buttonBox->button(QDialogButtonBox::Cancel)->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Secondary)); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); layout->addWidget(buttonBox); + + customizeStyle(); } QStringList LegacyAccountSelectionDialog::selectedAccountIds() const @@ -47,5 +57,24 @@ QStringList LegacyAccountSelectionDialog::selectedAccountIds() const return selectedAccount; } +void LegacyAccountSelectionDialog::customizeStyle() +{ + this->setStyleSheet( + QStringLiteral("QDialog { background-color: %1; }" + " QLabel { %2 }" + " QCheckBox { color: %3; %2 }") + .arg( + WLTheme.dialogBackgroundColor(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ), + WLTheme.black() + ) + ); +} + } // namespace OCC diff --git a/src/gui/legacyaccountselectiondialog.h b/src/gui/legacyaccountselectiondialog.h index 5cc8fc6fa2bed..bbe0e5ac6065d 100644 --- a/src/gui/legacyaccountselectiondialog.h +++ b/src/gui/legacyaccountselectiondialog.h @@ -30,6 +30,8 @@ class LegacyAccountSelectionDialog : public QDialog private: QMap _checkBoxes; + + void customizeStyle(); }; } // namespace OCC diff --git a/src/gui/main.cpp b/src/gui/main.cpp index d7fa9941aaca5..e8ec666e817a9 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -33,7 +33,6 @@ #include #include #include -#include "sesstyle.h" #include "ga4/ganalytics.h" #include "ga4/datacollectionwrapper.h" @@ -116,7 +115,6 @@ int main(int argc, char **argv) QQuickStyle::setFallbackStyle(QStringLiteral("Fusion")); OCC::Application app(argc, argv); - app.setStyle(new sesStyle(QStyleFactory::create("WindowsVista"))); #elif QQuickStyle::setStyle(qmlStyle); From 187b79c523e9202ae60434c58ef0bcb4a5d093b2 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 27 Apr 2026 09:41:02 +0200 Subject: [PATCH 063/148] SES-330 fix button styling to match our design --- src/gui/conflictsolver.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/gui/conflictsolver.cpp b/src/gui/conflictsolver.cpp index 1bdd584055b9b..9de7dc7ba7270 100644 --- a/src/gui/conflictsolver.cpp +++ b/src/gui/conflictsolver.cpp @@ -5,11 +5,13 @@ #include "conflictsolver.h" +#include #include #include #include "common/utility.h" #include "filesystem.h" +#include "buttonstyle.h" namespace OCC { @@ -196,8 +198,15 @@ bool ConflictSolver::confirmDeletion() QFileInfo info(_localVersionFilename); const auto message = FileSystem::isDir(_localVersionFilename) ? tr("Do you want to delete the directory %1 and all its contents permanently?").arg(Utility::escape(info.dir().dirName())) - : tr("Do you want to delete the file %1 permanently?").arg(Utility::escape(info.fileName())); - const auto result = QMessageBox::question(_parentWidget, tr("Confirm deletion"), message, buttons); + : tr("Do you want to delete the file %1 permanently?").arg(Utility::escape(info.fileName())); + + QMessageBox msgBox(_parentWidget); + msgBox.setWindowTitle(tr("Confirm deletion")); + msgBox.setText(message); + msgBox.setStandardButtons(buttons); + msgBox.button(QMessageBox::Yes)->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + + const auto result = static_cast(msgBox.exec()); switch (result) { case QMessageBox::YesToAll: From 88966038c24591aae4cfc89b64de2113711789cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 27 Apr 2026 09:46:43 +0200 Subject: [PATCH 064/148] SES-499 - Special Treatment for macOS Hover effect --- src/gui/basetheme.h | 4 ++++ src/gui/sesstyle.cpp | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h index 077aa6cf3b5f5..1d8ff5fe0d9fd 100644 --- a/src/gui/basetheme.h +++ b/src/gui/basetheme.h @@ -519,6 +519,10 @@ class BaseTheme : public QObject{ return "#E6F9FC"; } + virtual QString treeViewHoverColor() const { + return "#e5f3ff"; + } + private: inline static const QString _sesFolder = QStringLiteral("ses/"); }; diff --git a/src/gui/sesstyle.cpp b/src/gui/sesstyle.cpp index f0dc452ba8467..5a166e1f3e742 100644 --- a/src/gui/sesstyle.cpp +++ b/src/gui/sesstyle.cpp @@ -42,7 +42,20 @@ void sesStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *option, QP case PE_FrameFocusRect: // nothing, we don't want focus rects break; - #ifdef Q_OS_MAC + +#ifdef Q_OS_MAC + case PE_PanelItemViewItem: + if (option->state & State_MouseOver) { + painter->save(); + painter->setRenderHint(QPainter::Antialiasing, true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(OCC::WLTheme.treeViewHoverColor())); + painter->drawRoundedRect(option->rect, 4, 4); + painter->restore(); + } else { + super::drawPrimitive(pe, option, painter, widget); + } + break; case PE_IndicatorBranch: { From 55f8faa8e58b27f7e79aaf2742f5ebb498d5deaa Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 27 Apr 2026 10:23:49 +0200 Subject: [PATCH 065/148] SES-329 fix note to recipient darkmode problems --- src/gui/filedetails/ShareDetailsPage.qml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 9e30386d1f06b..03ab3b56d40c0 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -508,6 +508,16 @@ Page { root.setNote(text); root.waitingForNoteChange = true; } + + Rectangle { + id: noteTextBorder + anchors.fill: parent + radius: Style.slightlyRoundedButtonRadius + border.width: Style.thickBorderWidth + border.color: Style.sesTrayInputField + color: Style.sesBackgroundColor + z: -1 + } } } From 6a936ddcb2b470f6107f2251d24c31a40de4245c Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 27 Apr 2026 11:58:21 +0200 Subject: [PATCH 066/148] SES-330 set background and font color for conflict dialog --- src/gui/conflictsolver.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gui/conflictsolver.cpp b/src/gui/conflictsolver.cpp index 9de7dc7ba7270..c7f56565612c6 100644 --- a/src/gui/conflictsolver.cpp +++ b/src/gui/conflictsolver.cpp @@ -12,6 +12,7 @@ #include "common/utility.h" #include "filesystem.h" #include "buttonstyle.h" +#include "whitelabeltheme.h" namespace OCC { @@ -206,6 +207,18 @@ bool ConflictSolver::confirmDeletion() msgBox.setStandardButtons(buttons); msgBox.button(QMessageBox::Yes)->setProperty("buttonStyle", QVariant::fromValue(OCC::ButtonStyleName::Primary)); + msgBox.setStyleSheet( + QStringLiteral("QMessageBox { background-color: %1; } QLabel { %2 }").arg( + WLTheme.dialogBackgroundColor(), + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTextWeight(), + WLTheme.titleColor() + ) + ) + ); + const auto result = static_cast(msgBox.exec()); switch (result) { From 764dfd2407cd0a4b2a287da7e65b526cde9da53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 27 Apr 2026 13:57:05 +0200 Subject: [PATCH 067/148] SES-494 - Fixed Tool Tip Color --- src/gui/accountsettings.cpp | 21 +++++++++++++-------- src/gui/settingsdialog.cpp | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 3950703eff89d..aea739e402b41 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1838,16 +1838,21 @@ void AccountSettings::customizeStyle() auto msg = _ui->connectLabel->text(); Theme::replaceLinkColorStringBackgroundAware(msg); _ui->connectLabel->setText(msg); - + const auto color = palette().highlight().color(); - _ui->quotaProgressBar->setStyleSheet(progressBarStyle().arg(WLTheme.dialogBackgroundColor(), WLTheme.quotaProgressColor())); - + const auto toolTipStyle = QStringLiteral("QToolTip { color: %1; background-color: %2; border: 1px solid %1; }") + .arg(WLTheme.titleColor(), WLTheme.dialogBackgroundColor()); + _ui->quotaProgressBar->setStyleSheet(progressBarStyle().arg(WLTheme.dialogBackgroundColor(), WLTheme.quotaProgressColor()) + toolTipStyle); + _ui->quotaInfoLabel->setStyleSheet( - WLTheme.fontConfigurationCss( - WLTheme.settingsFont(), - WLTheme.settingsTextSize(), - WLTheme.settingsTitleWeight600(), - WLTheme.titleColor() + QStringLiteral("QLabel { %1 } %2").arg( + WLTheme.fontConfigurationCss( + WLTheme.settingsFont(), + WLTheme.settingsTextSize(), + WLTheme.settingsTitleWeight600(), + WLTheme.titleColor() + ), + toolTipStyle ) ); diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index f2cbff8067760..c18332058efc1 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -50,6 +50,7 @@ const QString TOOLBAR_CSS() "QMenu::item::checked { background: %7; color: %4; }" "QMenu::item::selected { background: %3; color: %4; }" "QMenu::item::pressed { background: %6; color: %4; }" + "QToolTip { color: %4; background-color: %1; border: 1px solid %2; }" ); #else return QStringLiteral("QToolBar { background: %1; margin: 0; padding: 0; border: none; border-bottom: 1px solid %2; spacing: 0; } " From f5224d690f41a66bef8c2f47e8bbffe5a6d10c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 27 Apr 2026 15:18:48 +0200 Subject: [PATCH 068/148] SES-428 Fixed Share Dialog Search --- src/gui/filedetails/ShareeDelegate.qml | 4 ++++ src/gui/sharee.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/filedetails/ShareeDelegate.qml b/src/gui/filedetails/ShareeDelegate.qml index 72aa2d1e71630..6361703665a63 100644 --- a/src/gui/filedetails/ShareeDelegate.qml +++ b/src/gui/filedetails/ShareeDelegate.qml @@ -18,6 +18,10 @@ ItemDelegate { text: model.display + background: Rectangle { + color: root.hovered ? root.pressed ? Style.sesButtonPressed : Style.sesHover : Style.sesWhite + } + contentItem: RowLayout { height: visible ? implicitHeight : 0 diff --git a/src/gui/sharee.cpp b/src/gui/sharee.cpp index bdaecd502d628..4034d1f3511e6 100644 --- a/src/gui/sharee.cpp +++ b/src/gui/sharee.cpp @@ -94,11 +94,15 @@ bool Sharee::updateIconUrl() if (_iconUrl.isEmpty() || !_isIconColourful) { return false; } - + const auto iconUrlColoured = _iconUrlColoured; +#ifdef IONOS_BUILD + _iconColor = QStringLiteral("black"); +#else _iconColor = (!_isIconColourful || !Theme::instance()->darkMode()) ? QStringLiteral("black") : QStringLiteral("white"); +#endif _iconUrlColoured = QStringLiteral("image://svgimage-custom-color/") + _iconUrl + QStringLiteral("/") + _iconColor; - + return iconUrlColoured != _iconUrlColoured; } From 10882cee03b80f1812a99f132e1b42cc54812d48 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 27 Apr 2026 16:17:53 +0200 Subject: [PATCH 069/148] set primary button style to apply button in selective sync in main settings window --- src/gui/accountsettings.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index aea739e402b41..586b100768219 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1638,6 +1638,7 @@ void AccountSettings::slotSelectiveSyncChanged(const QModelIndex &topLeft, } _ui->selectiveSyncApply->setEnabled(true); + _ui->selectiveSyncApply->setProperty("buttonStyle", QVariant::fromValue(ButtonStyleName::Primary)); _ui->selectiveSyncButtons->setVisible(true); if (shouldBeVisible != wasVisible) { From 2a65913e5eb34fb3d62aab597e0356ebb9201b45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 08:37:53 +0200 Subject: [PATCH 070/148] SES-317 - Stack Buttons when clipping into each other --- src/gui/filedetails/ShareDetailsPage.qml | 98 +++++++++++++----------- 1 file changed, 52 insertions(+), 46 deletions(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 03ab3b56d40c0..c3626b675cd32 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -685,15 +685,12 @@ Page { } } - footer: GridLayout { + footer: ColumnLayout { id: buttonGrid - columns: 1 - rows: 2 + spacing: 0 PrimaryPillButton { - Layout.columnSpan: buttonGrid.columns - iconSource: Style.sesLightPlus font.pixelSize: pixelSize @@ -705,67 +702,76 @@ Page { Layout.leftMargin: 16 Layout.bottomMargin: 16 - Layout.row: 0 onClicked: root.createNewLinkShare() } - SecondaryPillButton { - id: unshareButton + GridLayout { + id: actionButtonsGrid - font.pixelSize: pixelSize - font.weight: fontWeight - text: qsTr("Unshare") + readonly property bool buttonsOverflow: unshareButton.implicitWidth + copyShareLinkButton.implicitWidth + columnSpacing + 16 + 20 > root.width - Layout.bottomMargin: 16 + Layout.fillWidth: true Layout.leftMargin: 16 - Layout.rightMargin: 60 - Layout.row: 1 - onClicked: root.deleteShare() - } + Layout.rightMargin: 20 + Layout.bottomMargin: 16 + columns: buttonsOverflow ? 1 : 3 + columnSpacing: 8 + rowSpacing: 8 - PrimaryPillButton { - id: copyShareLinkButton + SecondaryPillButton { + id: unshareButton - function copyShareLink() { - clipboardHelper.text = root.link; - clipboardHelper.selectAll(); - clipboardHelper.copy(); - clipboardHelper.clear(); + font.pixelSize: pixelSize + font.weight: fontWeight + text: qsTr("Unshare") - shareLinkCopied = true; - shareLinkCopyTimer.start(); + onClicked: root.deleteShare() } - property bool shareLinkCopied: false + Item { + Layout.fillWidth: true + visible: !actionButtonsGrid.buttonsOverflow + } - iconSource: Style.sesLightClipboard + PrimaryPillButton { + id: copyShareLinkButton - text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") + function copyShareLink() { + clipboardHelper.text = root.link; + clipboardHelper.selectAll(); + clipboardHelper.copy(); + clipboardHelper.clear(); - visible: root.isLinkShare - enabled: visible + shareLinkCopied = true; + shareLinkCopyTimer.start(); + } - onClicked: copyShareLink() + property bool shareLinkCopied: false - Layout.alignment: Qt.AlignRight - Layout.bottomMargin: 16 - Layout.rightMargin: 20 - Layout.row: 1 + iconSource: Style.sesLightClipboard - Behavior on Layout.preferredWidth { - SmoothedAnimation { duration: Style.shortAnimationDuration } - } + text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") - TextEdit { - id: clipboardHelper - visible: false - } + visible: root.isLinkShare + enabled: visible + + onClicked: copyShareLink() + + Behavior on implicitWidth { + SmoothedAnimation { duration: Style.shortAnimationDuration } + } - Timer { - id: shareLinkCopyTimer - interval: Style.veryLongAnimationDuration - onTriggered: copyShareLinkButton.shareLinkCopied = false + TextEdit { + id: clipboardHelper + visible: false + } + + Timer { + id: shareLinkCopyTimer + interval: Style.veryLongAnimationDuration + onTriggered: copyShareLinkButton.shareLinkCopied = false + } } } } From a51182aae4854c089e5f810be619a5f6c3d40224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 08:57:12 +0200 Subject: [PATCH 071/148] SES-317 - add word wrap when buttons gets too large --- src/gui/filedetails/ShareDetailsPage.qml | 5 +++++ src/gui/tray/PrimaryPillButton.qml | 8 ++++++++ src/gui/tray/SecondaryPillButton.qml | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index c3626b675cd32..9950ed98a0d50 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -702,6 +702,7 @@ Page { Layout.leftMargin: 16 Layout.bottomMargin: 16 + Layout.maximumWidth: actionButtonsGrid.width onClicked: root.createNewLinkShare() } @@ -722,6 +723,8 @@ Page { SecondaryPillButton { id: unshareButton + Layout.maximumWidth: actionButtonsGrid.width + font.pixelSize: pixelSize font.weight: fontWeight text: qsTr("Unshare") @@ -753,6 +756,8 @@ Page { text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") + Layout.maximumWidth: actionButtonsGrid.width + visible: root.isLinkShare enabled: visible diff --git a/src/gui/tray/PrimaryPillButton.qml b/src/gui/tray/PrimaryPillButton.qml index 178d4be1e88f8..ce4b96cf90aa2 100644 --- a/src/gui/tray/PrimaryPillButton.qml +++ b/src/gui/tray/PrimaryPillButton.qml @@ -13,22 +13,30 @@ Button{ hoverEnabled: false // turn off default button hover contentItem: Row { + id: contentRow spacing: Style.sesPillButtonVerticalPadding padding: Style.sesPillButtonVerticalPadding leftPadding: Style.sesPillButtonHorizontalPadding rightPadding: Style.sesPillButtonHorizontalPadding anchors.centerIn: parent Text { + id: pillText text: root.text color: "white" font.weight: Style.sesFontNormalWeight font.pixelSize: Style.sesFontHintPixelSize + maximumLineCount: 2 + elide: Text.ElideRight + wrapMode: Text.WordWrap + width: Math.min(implicitWidth, root.width - contentRow.leftPadding - contentRow.rightPadding - (root.iconSource ? Style.sesPillIconSize + contentRow.spacing : 0)) + anchors.verticalCenter: parent.verticalCenter } Image { visible: root.iconSource source: root.iconSource width: Style.sesPillIconSize height: Style.sesPillIconSize + anchors.verticalCenter: parent.verticalCenter } } diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml index 9d9575c9453db..e4aa2d28ebe58 100644 --- a/src/gui/tray/SecondaryPillButton.qml +++ b/src/gui/tray/SecondaryPillButton.qml @@ -17,6 +17,7 @@ Button{ property color backgroundColor: Style.sesPillButtonSecondaryBackgroundColor contentItem: Row { + id: contentRow spacing: Style.sesPillButtonVerticalPadding padding: Style.sesPillButtonVerticalPadding leftPadding: Style.sesPillButtonHorizontalPadding @@ -27,12 +28,18 @@ Button{ color: textColor font.weight: Style.sesFontNormalWeight font.pixelSize: Style.sesFontHintPixelSize + maximumLineCount: 2 + elide: Text.ElideRight + wrapMode: Text.WordWrap + width: Math.min(implicitWidth, root.width - contentRow.leftPadding - contentRow.rightPadding - (root.iconSource ? Style.sesPillIconSize + contentRow.spacing : 0)) + anchors.verticalCenter: parent.verticalCenter } Image { visible: root.iconSource source: root.iconSource width: Style.sesPillIconSize height: Style.sesPillIconSize + anchors.verticalCenter: parent.verticalCenter } } From eb060acbcd736bd4279b41a823ba4bbc9a6c9a94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 11:40:37 +0200 Subject: [PATCH 072/148] SES-344 - Show Email Share --- .../FileProviderUIExt/Sharing/ShareOptionsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift index 95b9c978bce44..23019b377ca47 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareOptionsView.swift @@ -195,7 +195,7 @@ class ShareOptionsView: NSView { ? .on : .off groupShareMenuItem.isHidden = true - emailShareMenuItem.isHidden = true + emailShareMenuItem.isHidden = false federatedCloudShareMenuItem.isHidden = true teamShare.isHidden = true talkConversationShare.isHidden = true From 88bfa4ad4d917d08966ce3abe54c3416ae659b02 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Tue, 28 Apr 2026 12:45:02 +0200 Subject: [PATCH 073/148] SES-350 show accountStatus only when errors exist --- src/gui/accountsettings.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 586b100768219..e899cc629d059 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1283,19 +1283,13 @@ void AccountSettings::migrateCertificateForAccount(const AccountPtr &account) void AccountSettings::showConnectionLabel(const QString &message, QStringList errors) { + _ui->accountStatus->setVisible(false); - #ifndef IONOS_BUILD - //SES-4 Removed const auto errStyle = QLatin1String("color:#ffffff; background-color:#bb4d4d;padding:5px;" "border-width: 1px; border-style: solid; border-color: #aaaaaa;" "border-radius:5px;"); - if (errors.isEmpty()) { - auto msg = message; - Theme::replaceLinkColorStringBackgroundAware(msg); - _ui->connectLabel->setText(msg); - _ui->connectLabel->setToolTip({}); - _ui->connectLabel->setStyleSheet({}); - } else { + if (!errors.isEmpty()) { + _ui->accountStatus->setVisible(true); errors.prepend(message); auto userFriendlyMsg = errors.join(QLatin1String("
      ")); qCDebug(lcAccountSettings) << userFriendlyMsg; @@ -1304,8 +1298,7 @@ void AccountSettings::showConnectionLabel(const QString &message, QStringList er _ui->connectLabel->setToolTip({}); _ui->connectLabel->setStyleSheet(errStyle); } - #endif - _ui->accountStatus->setVisible(false); + } void AccountSettings::slotEnableCurrentFolder(bool terminate) From ed8dfcf0146378e1311e39edf245d75557edc5d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 13:00:02 +0200 Subject: [PATCH 074/148] SES-317 - Stopped button from animating on page loading --- src/gui/filedetails/ShareDetailsPage.qml | 16 +++++++++++++--- src/gui/tray/PrimaryPillButton.qml | 3 ++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 9950ed98a0d50..387a7ca595652 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -751,20 +751,30 @@ Page { } property bool shareLinkCopied: false + property bool hasBeenClicked: false + clip: true iconSource: Style.sesLightClipboard + textWrapMode: widthAnimation.running ? Text.NoWrap : Text.WordWrap - text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") + text: shareLinkCopied ? qsTr("Share link copied!") : qsTr("Copy share link") Layout.maximumWidth: actionButtonsGrid.width visible: root.isLinkShare enabled: visible - onClicked: copyShareLink() + onClicked: { + hasBeenClicked = true; + copyShareLink(); + } Behavior on implicitWidth { - SmoothedAnimation { duration: Style.shortAnimationDuration } + enabled: copyShareLinkButton.hasBeenClicked + SmoothedAnimation { + id: widthAnimation + duration: Style.shortAnimationDuration + } } TextEdit { diff --git a/src/gui/tray/PrimaryPillButton.qml b/src/gui/tray/PrimaryPillButton.qml index ce4b96cf90aa2..670f6c58b6acf 100644 --- a/src/gui/tray/PrimaryPillButton.qml +++ b/src/gui/tray/PrimaryPillButton.qml @@ -7,6 +7,7 @@ import Style Button{ id: root property string iconSource + property int textWrapMode: Text.WordWrap property bool isMouseOver: false @@ -27,7 +28,7 @@ Button{ font.pixelSize: Style.sesFontHintPixelSize maximumLineCount: 2 elide: Text.ElideRight - wrapMode: Text.WordWrap + wrapMode: root.textWrapMode width: Math.min(implicitWidth, root.width - contentRow.leftPadding - contentRow.rightPadding - (root.iconSource ? Style.sesPillIconSize + contentRow.spacing : 0)) anchors.verticalCenter: parent.verticalCenter } From 8d329576197f2613fa9dc6d0b829c409f7594320 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Tue, 28 Apr 2026 13:25:03 +0200 Subject: [PATCH 075/148] SES-329 change noteTextArea to TextEdit to match styling --- src/gui/filedetails/ShareDetailsPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 387a7ca595652..991a6064ad962 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -493,7 +493,7 @@ Page { sourceSize.height: scrollContentsColumn.rowIconWidth } - NCInputTextArea { + TextEdit { id: noteTextArea Layout.fillWidth: true From 545d1af96c3eafa14c12d4a6632e8fc707e8e3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 13:34:52 +0200 Subject: [PATCH 076/148] SES-350 - just added the IONOS_BUILD Flag again --- src/gui/accountsettings.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index e899cc629d059..671516e6f84b9 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1283,6 +1283,28 @@ void AccountSettings::migrateCertificateForAccount(const AccountPtr &account) void AccountSettings::showConnectionLabel(const QString &message, QStringList errors) { + #ifndef IONOS_BUILD + const auto errStyle = QLatin1String("color:#ffffff; background-color:#bb4d4d;padding:5px;" + "border-width: 1px; border-style: solid; border-color: #aaaaaa;" + "border-radius:5px;"); + if (errors.isEmpty()) { + auto msg = message; + Theme::replaceLinkColorStringBackgroundAware(msg); + _ui->connectLabel->setText(msg); + _ui->connectLabel->setToolTip({}); + _ui->connectLabel->setStyleSheet({}); + } else { + errors.prepend(message); + auto userFriendlyMsg = errors.join(QLatin1String("
      ")); + qCDebug(lcAccountSettings) << userFriendlyMsg; + Theme::replaceLinkColorString(userFriendlyMsg, QColor("#c1c8e6")); + _ui->connectLabel->setText(userFriendlyMsg); + _ui->connectLabel->setToolTip({}); + _ui->connectLabel->setStyleSheet(errStyle); + } + _ui->accountStatus->setVisible(false); + #else + _ui->accountStatus->setVisible(false); const auto errStyle = QLatin1String("color:#ffffff; background-color:#bb4d4d;padding:5px;" @@ -1298,7 +1320,7 @@ void AccountSettings::showConnectionLabel(const QString &message, QStringList er _ui->connectLabel->setToolTip({}); _ui->connectLabel->setStyleSheet(errStyle); } - + #endif } void AccountSettings::slotEnableCurrentFolder(bool terminate) From 9d5bcd939f1e0f7d9adc8701fd608b1824b939aa Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Tue, 28 Apr 2026 14:14:40 +0200 Subject: [PATCH 077/148] Revert "SES-329 change noteTextArea to TextEdit to match styling" This reverts commit 7ee995a8bf914a06feac976045464040ef9d0c43. --- src/gui/filedetails/ShareDetailsPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 991a6064ad962..387a7ca595652 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -493,7 +493,7 @@ Page { sourceSize.height: scrollContentsColumn.rowIconWidth } - TextEdit { + NCInputTextArea { id: noteTextArea Layout.fillWidth: true From e232e33f53cee34654c4733a55da668a5a20b0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 15:00:44 +0200 Subject: [PATCH 078/148] trans - added italian --- translation_scripts/Readme.md | 2 +- translation_scripts/merge_translation.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md index 32e8b1357e0e5..cbea44fe0939d 100644 --- a/translation_scripts/Readme.md +++ b/translation_scripts/Readme.md @@ -33,7 +33,7 @@ Die Lokalisierung erfolgt in mehreren Schritten. Für eine bessere Vergleichbark - Mit folgendem Befehl die `.ts`Dateien auf den neuesten Stand bringen: ``` -C:\Craft64\bin\lupdate.exe -locations none -no-obsolete -no-ui-lines .\src\libsync\ .\src\gui\ .\src\csync\ .\src\common\ .\src\cmd\ -ts .\translations\client_de.ts .\translations\client_en.ts .\translations\client_en_GB.ts .\translations\client_fr.ts .\translations\client_es.ts .\translations\client_nl.ts +C:\Craft64\bin\lupdate.exe -locations none -no-obsolete -no-ui-lines .\src\libsync\ .\src\gui\ .\src\csync\ .\src\common\ .\src\cmd\ -ts .\translations\client_de.ts .\translations\client_en.ts .\translations\client_en_GB.ts .\translations\client_es.ts .\translations\client_fr.ts .\translations\client_it.ts .\translations\client_nl.ts ``` Danach die .ts Dateien mit folgendem Befehl sortieren: diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 80dddbeb35484..2af291be7ff69 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -278,6 +278,7 @@ def run_lupdate(ts_files, mode="default"): ts_files = [r"..\translations\client_de.ts" , r"..\translations\client_es.ts" , r"..\translations\client_fr.ts" + , r"..\translations\client_it.ts" , r"..\translations\client_nl.ts" , r"..\translations\client_en.ts" , r"..\translations\client_en_GB.ts" @@ -286,6 +287,7 @@ def run_lupdate(ts_files, mode="default"): diff_files = [r".\de_DE.ts" , r".\es.ts" , r".\fr.ts" + , r".\it.ts" , r".\nl.ts" , r".\en.ts" , r".\en_GB.ts" From f68856dffcf5d883d9a3400a7eb9d335c6df9819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 15:01:55 +0200 Subject: [PATCH 079/148] trans - some typos --- translation_scripts/Readme.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md index cbea44fe0939d..3e1a24ec01515 100644 --- a/translation_scripts/Readme.md +++ b/translation_scripts/Readme.md @@ -10,26 +10,28 @@ Diese Anleitung beschreibt den Prozess zur Lokalisierung des HiDrive Next Client # Vorgehen bei Release -Um in einem Release zu erstellen und einen valider PR zur übersetuen zu haben ist folgendes Vorgehen notwendig: +Um in einem Release zu erstellen und einen valider PR zur Übersetzung zu haben ist folgendes Vorgehen notwendig: 0. (Optional) Einbeziehen unserer Änderungen aus Phrase. Dieser Schritt ist optional, da die Änderungen in der Regel schon in der Diff-Datei enthalten sind. Sollte es dennoch notwendig sein, können die Änderungen aus Phrase in die `.ts`-Diff-Dateien gemerged werden. -1. Es wird ein neuer `treanslations_` branch erstellt. Abgeleitet vom entsprechenden `develop_`. (z.b. translations_stable-3.16) +1. Es wird ein neuer `translations_` branch erstellt. Abgeleitet vom entsprechenden `develop_`. (z.b. translations_stable-3.16) 2. Durchlaufen der unter stehen den Schritte 1-6 3. Erstellen eines "approved" PRs von `translations_` nach ``, also in Richtung der eigentlichen Basisversion von nc (z.B. [stable-3.16] Translations) -4. Der PR wird dann hoffentlich vom Brander gemerged +4. Der PR wird dann vom Brander gemerged -Das Rebasedn der translations branches lohnt sich eigentlich nicht, weil der nextcloud master sich relativ jäufig Ändert, was zu vielen Konflikten führen würde. +Das Rebasedn der Translation-Branches lohnt sich eigentlich nicht, weil der nextcloud master sich relativ häufig ändert, was zu vielen Konflikten führen würde. ## Allgemeines -Die Lokalisierung erfolgt in mehreren Schritten. Für eine bessere Vergleichbarkeit werden der Dateiname (Location) und die Zeilennummer in den `.ts`-Dateien entfernt. Die `.ts`-Dateien müssen vor jedem Merge-Schritt sortiert werden. +Die Lokalisierung erfolgt in mehreren Schritten. +Die Qt-Translation Files (`.ts`-Dateien) enthalten zu jeder Resource die entsprechnde Datei und die Zeilennummer. Diese Informationen entfernen wir für eine bessere Vergleichabrkeit. +*Die `.ts`-Dateien müssen vor jedem Merge-Schritt sortiert werden.* ## Schritte ### 1. Nextcloud-Grundstand aktualisieren - Den **unveränderten Nextcloud Stable Client** verwenden. -- Am Einfachsten ist es den branch auschecken, den befehl laufen lassen, stashen und dann wieder auf den alten branch wechseln. Stash poppen. +- Am einfachsten ist es den Branch auschecken, den Befehl laufen lassen, Stash erstellen und dann wieder auf den aktuellen Translation-Branch zu wechseln. Stash anwenden. - Mit folgendem Befehl die `.ts`Dateien auf den neuesten Stand bringen: ``` From 6a3f1a6b5e5590687b850f54a2cba16cdeac4e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 15:16:50 +0200 Subject: [PATCH 080/148] trans - more details --- translation_scripts/Readme.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md index 3e1a24ec01515..0c35f66c88db1 100644 --- a/translation_scripts/Readme.md +++ b/translation_scripts/Readme.md @@ -24,7 +24,7 @@ Das Rebasedn der Translation-Branches lohnt sich eigentlich nicht, weil der next Die Lokalisierung erfolgt in mehreren Schritten. Die Qt-Translation Files (`.ts`-Dateien) enthalten zu jeder Resource die entsprechnde Datei und die Zeilennummer. Diese Informationen entfernen wir für eine bessere Vergleichabrkeit. -*Die `.ts`-Dateien müssen vor jedem Merge-Schritt sortiert werden.* +*Die `.ts`-Dateien müssen vor jedem Merge-Schritt sortiert werden.* Dies geschieht in der Regel durch das Skript selbst. ## Schritte @@ -44,9 +44,7 @@ Danach die .ts Dateien mit folgendem Befehl sortieren: python3 merge_translation.py 0 ``` -- Wichtig: **Obsolete Keys entfernen**. -- Die `.ts`Datei manuell per Skript sortieren. -- Datei in den **Translation Branch** legen und committen. +- Datei in den **Translation Branch** legen und committen (STEP 0). ### 2. Merge-Schritt 1 @@ -60,7 +58,7 @@ python3 merge_translation.py 1 - Obsolete Einträge werden **nicht gelöscht**. - Neue Keys werden hinzugefügt. - Obsolete-Markierungen werden entfernt und die Datei wird sortiert. -- Commit durchführen. +- Commit durchführen (STEP 1). ### 3. Merge-Schritt 2 @@ -73,7 +71,7 @@ python3 merge_translation.py 2 - Führt ein `lupdate` aus. - **Obsolete Keys werden entfernt**. - Die Datei enthält jetzt nur die aktuellen Keys (unsere Keys ohne Übersetzungen). -- Commit durchführen. +- Commit durchführen (STEP 2). ### 4. Merge-Schritt 3 @@ -86,7 +84,7 @@ python3 merge_translation.py 3 - Sprachabhängige Diff-Dateien werden in die `.ts`Dateien gemergt. - Leere Keys werden mit Übersetzungen gefüllt. - Obsolete Keys aus der Diff-Datei werden gegebenenfalls eingefügt. -- Commit durchführen. +- Commit durchführen (STEP 3). ### 5. Merge-Schritt 4 @@ -98,6 +96,7 @@ python3 merge_translation.py 4 - Ein weiteres `lupdate` wird ausgeführt. - Heuristische Füllung von doppelten Keys mit unseren Übersetzungen. +- Commit durchführen (STEP 4). ### 6. Merge-Schritt 5 @@ -108,7 +107,7 @@ python3 merge_translation.py 5 ``` - **Obsolete Keys werden endgültig entfernt**. -- Commit durchführen. +- Commit durchführen (STEP 5). ## Abschluss From 1575982e9d2d0375a9e20c74fded3fe798cfa546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 16:05:40 +0200 Subject: [PATCH 081/148] trans - improve translation script --- translation_scripts/Readme.md | 14 ++--- translation_scripts/merge_translation.py | 80 ++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 16 deletions(-) diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md index 0c35f66c88db1..7ba57f62fc192 100644 --- a/translation_scripts/Readme.md +++ b/translation_scripts/Readme.md @@ -30,20 +30,14 @@ Die Qt-Translation Files (`.ts`-Dateien) enthalten zu jeder Resource die entspre ### 1. Nextcloud-Grundstand aktualisieren -- Den **unveränderten Nextcloud Stable Client** verwenden. -- Am einfachsten ist es den Branch auschecken, den Befehl laufen lassen, Stash erstellen und dann wieder auf den aktuellen Translation-Branch zu wechseln. Stash anwenden. -- Mit folgendem Befehl die `.ts`Dateien auf den neuesten Stand bringen: +- Das Skript verwendet `git worktree`, um den unveränderten Nextcloud-Quellcode temporär verfügbar zu machen, ohne den aktuellen Branch zu wechseln. +- Der NC-Basisbranch wird als zweites Argument übergeben: ``` -C:\Craft64\bin\lupdate.exe -locations none -no-obsolete -no-ui-lines .\src\libsync\ .\src\gui\ .\src\csync\ .\src\common\ .\src\cmd\ -ts .\translations\client_de.ts .\translations\client_en.ts .\translations\client_en_GB.ts .\translations\client_es.ts .\translations\client_fr.ts .\translations\client_it.ts .\translations\client_nl.ts -``` - -Danach die .ts Dateien mit folgendem Befehl sortieren: - -``` -python3 merge_translation.py 0 +python3 merge_translation.py 0 stable-4.0 ``` +- Das Skript erstellt automatisch einen temporären Worktree, führt `lupdate` gegen den NC-Quellcode aus, sortiert die Dateien und räumt den Worktree wieder auf. - Datei in den **Translation Branch** legen und committen (STEP 0). ### 2. Merge-Schritt 1 diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 2af291be7ff69..4e78e47e15d06 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -1,4 +1,6 @@ import sys +import os +import tempfile import subprocess import xml.etree.ElementTree as ET @@ -216,6 +218,61 @@ def run_script(script_name, input_file, output_file): except subprocess.CalledProcessError as e: print(f"An error occurred while running {script_name} with input '{input_file}' and output '{output_file}': {e}") +def run_lupdate_from_branch(ts_files, nc_branch): + """Run lupdate against the unmodified NC branch source using git worktree. + + This avoids the need to manually checkout the NC branch (which would make + this script disappear). A temporary worktree is created, lupdate runs + against it, and the worktree is cleaned up afterwards. + """ + repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) + worktree_dir = os.path.join(tempfile.gettempdir(), "nc_lupdate_worktree") + + # Clean up any leftover worktree from a previous failed run + if os.path.exists(worktree_dir): + print(f"Cleaning up leftover worktree at {worktree_dir}...") + subprocess.run(["git", "worktree", "remove", "--force", worktree_dir], + cwd=repo_root, check=False) + + try: + # Create worktree for the NC branch + print(f"Creating temporary worktree for branch '{nc_branch}'...") + result = subprocess.run( + ["git", "worktree", "add", worktree_dir, nc_branch], + cwd=repo_root, capture_output=True, text=True + ) + if result.returncode != 0: + print(f"Error creating worktree: {result.stderr}") + sys.exit(1) + + # Build lupdate command pointing at the worktree's source directories + src_dirs = ["src/libsync", "src/gui", "src/csync", "src/common", "src/cmd"] + command = [ + r"C:\Craft64\bin\lupdate.exe", + "-locations", "none", + "-no-obsolete", + "-no-ui-lines", + "-no-sort", + ] + for d in src_dirs: + command.append(os.path.join(worktree_dir, d)) + + command.append("-ts") + # Convert ts paths to absolute so they resolve regardless of cwd + command.extend([os.path.abspath(f) for f in ts_files]) + + print("Running lupdate against NC source...") + result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True) + print("Output:", result.stdout) + except subprocess.CalledProcessError as e: + print(f"lupdate error: {e.stderr}") + sys.exit(1) + finally: + # Always clean up the worktree + print("Removing temporary worktree...") + subprocess.run(["git", "worktree", "remove", "--force", worktree_dir], + cwd=repo_root, check=False) + def run_lupdate(ts_files, mode="default"): command = [ r"C:\Craft64\bin\lupdate.exe", @@ -294,20 +351,31 @@ def run_lupdate(ts_files, mode="default"): ] if len(sys.argv) == 1: - print("Usage: python merge.py ") + print("Usage: python merge_translation.py [nc_branch]") + print(" step: 0-5 or 'all'") + print(" nc_branch: required for step 0 (e.g. stable-4.0)") sys.exit() if len(sys.argv) == 3: - print("Usage: python remove_line_attributes.py ") - sys.exit() - if len(sys.argv) == 2: step = sys.argv[1] + nc_branch = sys.argv[2] + elif len(sys.argv) == 2: + step = sys.argv[1] + nc_branch = None + + if step == "0" or step == "all": + if nc_branch is None: + print("Error: step 0 requires the NC base branch as second argument") + print(" Example: python merge_translation.py 0 stable-4.0") + sys.exit(1) + try: if step == "0" or step == "all": - # Step 0 full sort + # Step 0: lupdate against unmodified NC source + sort + run_lupdate_from_branch(ts_files, nc_branch) for ts_file in ts_files: sort_and_repair(ts_file) - print("Step 0 completed: sorted") + print("Step 0 completed: lupdate from NC source + sorted, you should commit now") if step == "1" or step == "all": # Step 1 lupdate Nextcloud in our latest change state, keep obsolete From 8892fc1cf0d7b9fd3bed26f90362aa535fc7f791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 16:22:30 +0200 Subject: [PATCH 082/148] trans - added auto-commit capability --- translation_scripts/Readme.md | 28 ++++++++--- translation_scripts/merge_translation.py | 59 ++++++++++++++++++------ 2 files changed, 67 insertions(+), 20 deletions(-) diff --git a/translation_scripts/Readme.md b/translation_scripts/Readme.md index 7ba57f62fc192..b6b828f187cf7 100644 --- a/translation_scripts/Readme.md +++ b/translation_scripts/Readme.md @@ -28,6 +28,22 @@ Die Qt-Translation Files (`.ts`-Dateien) enthalten zu jeder Resource die entspre ## Schritte +### Automatischer Durchlauf + +Alle Schritte (0–5) können mit einem einzigen Befehl ausgeführt werden. Mit `--auto-commit` wird nach jedem Schritt automatisch committet: + +``` +python3 merge_translation.py all stable-4.0 --auto-commit +``` + +### Einzelne Schritte + +Die Schritte können auch einzeln ausgeführt werden. Mit `--auto-commit` entfällt das manuelle Committen: + +``` +python3 merge_translation.py 1 --auto-commit +``` + ### 1. Nextcloud-Grundstand aktualisieren - Das Skript verwendet `git worktree`, um den unveränderten Nextcloud-Quellcode temporär verfügbar zu machen, ohne den aktuellen Branch zu wechseln. @@ -38,7 +54,7 @@ python3 merge_translation.py 0 stable-4.0 ``` - Das Skript erstellt automatisch einen temporären Worktree, führt `lupdate` gegen den NC-Quellcode aus, sortiert die Dateien und räumt den Worktree wieder auf. -- Datei in den **Translation Branch** legen und committen (STEP 0). +- Committen (STEP 0) — oder `--auto-commit` verwenden. ### 2. Merge-Schritt 1 @@ -52,7 +68,7 @@ python3 merge_translation.py 1 - Obsolete Einträge werden **nicht gelöscht**. - Neue Keys werden hinzugefügt. - Obsolete-Markierungen werden entfernt und die Datei wird sortiert. -- Commit durchführen (STEP 1). +- Committen (STEP 1) — oder `--auto-commit` verwenden. ### 3. Merge-Schritt 2 @@ -65,7 +81,7 @@ python3 merge_translation.py 2 - Führt ein `lupdate` aus. - **Obsolete Keys werden entfernt**. - Die Datei enthält jetzt nur die aktuellen Keys (unsere Keys ohne Übersetzungen). -- Commit durchführen (STEP 2). +- Committen (STEP 2) — oder `--auto-commit` verwenden. ### 4. Merge-Schritt 3 @@ -78,7 +94,7 @@ python3 merge_translation.py 3 - Sprachabhängige Diff-Dateien werden in die `.ts`Dateien gemergt. - Leere Keys werden mit Übersetzungen gefüllt. - Obsolete Keys aus der Diff-Datei werden gegebenenfalls eingefügt. -- Commit durchführen (STEP 3). +- Committen (STEP 3) — oder `--auto-commit` verwenden. ### 5. Merge-Schritt 4 @@ -90,7 +106,7 @@ python3 merge_translation.py 4 - Ein weiteres `lupdate` wird ausgeführt. - Heuristische Füllung von doppelten Keys mit unseren Übersetzungen. -- Commit durchführen (STEP 4). +- Committen (STEP 4) — oder `--auto-commit` verwenden. ### 6. Merge-Schritt 5 @@ -101,7 +117,7 @@ python3 merge_translation.py 5 ``` - **Obsolete Keys werden endgültig entfernt**. -- Commit durchführen (STEP 5). +- Committen (STEP 5) — oder `--auto-commit` verwenden. ## Abschluss diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 4e78e47e15d06..676566ff88008 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -210,6 +210,26 @@ def sort_and_repair(file): full_sort(file) repair_file(file) +def auto_commit(ts_files, step_name, auto_commit_enabled): + """Commit the translation files with the given step name if auto-commit is enabled.""" + if not auto_commit_enabled: + return + repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) + abs_ts_files = [os.path.abspath(f) for f in ts_files] + subprocess.run(["git", "add"] + abs_ts_files, cwd=repo_root, check=True) + result = subprocess.run( + ["git", "diff", "--cached", "--quiet"], + cwd=repo_root + ) + if result.returncode == 0: + print(f" No changes to commit for {step_name}") + return + subprocess.run( + ["git", "commit", "-m", step_name], + cwd=repo_root, check=True + ) + print(f" Committed: {step_name}") + def run_script(script_name, input_file, output_file): try: # Running each script with input and output file arguments @@ -350,17 +370,22 @@ def run_lupdate(ts_files, mode="default"): , r".\en_GB.ts" ] - if len(sys.argv) == 1: - print("Usage: python merge_translation.py [nc_branch]") + # Parse --auto-commit flag + args = sys.argv[1:] + auto_commit_enabled = False + if "--auto-commit" in args: + auto_commit_enabled = True + args.remove("--auto-commit") + + if len(args) == 0: + print("Usage: python merge_translation.py [nc_branch] [--auto-commit]") print(" step: 0-5 or 'all'") print(" nc_branch: required for step 0 (e.g. stable-4.0)") + print(" --auto-commit: automatically commit after each step") sys.exit() - if len(sys.argv) == 3: - step = sys.argv[1] - nc_branch = sys.argv[2] - elif len(sys.argv) == 2: - step = sys.argv[1] - nc_branch = None + + step = args[0] + nc_branch = args[1] if len(args) >= 2 else None if step == "0" or step == "all": if nc_branch is None: @@ -375,7 +400,8 @@ def run_lupdate(ts_files, mode="default"): run_lupdate_from_branch(ts_files, nc_branch) for ts_file in ts_files: sort_and_repair(ts_file) - print("Step 0 completed: lupdate from NC source + sorted, you should commit now") + print("Step 0 completed: lupdate from NC source + sorted") + auto_commit(ts_files, "Step 0", auto_commit_enabled) if step == "1" or step == "all": # Step 1 lupdate Nextcloud in our latest change state, keep obsolete @@ -386,13 +412,15 @@ def run_lupdate(ts_files, mode="default"): pop_vanished(ts_file) sort_and_repair(ts_file) - print("Step 1 completed: lupdate (keep obsolete), pop vanished, full sort, you should commit now") + print("Step 1 completed: lupdate (keep obsolete), pop vanished, full sort") + auto_commit(ts_files, "Step 1", auto_commit_enabled) if step == "2" or step == "all": run_lupdate(ts_files, "no_obs") for ts_file in ts_files: sort_and_repair(ts_file) - print("Step 2 completed: lupdate removed obsolete, you should commit now") + print("Step 2 completed: lupdate removed obsolete") + auto_commit(ts_files, "Step 2", auto_commit_enabled) # Step 3 merge diff into if step == "3" or step == "all": @@ -400,20 +428,23 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: merge(diff_files[ts_files.index(ts_file)], ts_file) sort_and_repair(ts_file) - print("Step 3 completed: merged, sorted, you should commit now") + print("Step 3 completed: merged, sorted") + auto_commit(ts_files, "Step 3", auto_commit_enabled) if step == "4" or step == "all": run_lupdate(ts_files) for ts_file in ts_files: pop_vanished(ts_file) sort_and_repair(ts_file) - print("Step 4 completed: lupdate fill duplicates, format, you should commit now") + print("Step 4 completed: lupdate fill duplicates, format") + auto_commit(ts_files, "Step 4", auto_commit_enabled) if step == "5" or step == "all": run_lupdate(ts_files, "location") for ts_file in ts_files: sort_and_repair(ts_file) - print("Step 5 completed: lupdate remove obsolete, sort, you should commit now") + print("Step 5 completed: lupdate remove obsolete, sort") + auto_commit(ts_files, "Step 5", auto_commit_enabled) except Exception as e: print(f"An error occurred: {e}") From 5e2ddd58612d087871fe8d50b86c4f0d5acd4c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 16:28:46 +0200 Subject: [PATCH 083/148] trans - added some validation --- translation_scripts/merge_translation.py | 99 ++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 676566ff88008..74af0b44d602d 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -230,6 +230,99 @@ def auto_commit(ts_files, step_name, auto_commit_enabled): ) print(f" Committed: {step_name}") +def validate_ts_files(ts_files, step_name): + """Validate translation files after a step. Returns True if valid, exits on critical error.""" + errors = [] + warnings = [] + file_stats = {} + + for ts_file in ts_files: + basename = os.path.basename(ts_file) + + # Check file exists + if not os.path.exists(ts_file): + errors.append(f"{basename}: file not found") + continue + + # Check XML validity + try: + tree = ET.parse(ts_file) + root = tree.getroot() + except ET.ParseError as e: + errors.append(f"{basename}: invalid XML - {e}") + continue + + # Gather stats + contexts = root.findall("context") + messages = root.findall(".//message") + empty_contexts = [c for c in contexts if len(c.findall("message")) == 0] + + msg_count = len(messages) + ctx_count = len(contexts) + + # Count source keys for consistency check + source_keys = set() + duplicate_keys = [] + for ctx in contexts: + ctx_name = ctx.find("name").text if ctx.find("name") is not None else "" + seen_in_ctx = set() + for msg in ctx.findall("message"): + src = msg.find("source") + if src is not None and src.text: + key = (ctx_name, src.text) + if key in seen_in_ctx: + duplicate_keys.append(f"{ctx_name}::{src.text[:50]}") + seen_in_ctx.add(key) + source_keys.add(key) + + file_stats[basename] = { + "messages": msg_count, + "contexts": ctx_count, + "source_keys": source_keys, + } + + if empty_contexts: + names = [c.find("name").text for c in empty_contexts if c.find("name") is not None] + warnings.append(f"{basename}: {len(empty_contexts)} empty context(s): {', '.join(names[:3])}") + + if duplicate_keys: + warnings.append(f"{basename}: {len(duplicate_keys)} duplicate key(s) within same context") + + # Cross-file consistency: all files should have the same source keys (except after step 3 merge which adds diff keys) + if len(file_stats) >= 2: + ref_name = list(file_stats.keys())[0] + ref_keys = file_stats[ref_name]["source_keys"] + ref_count = file_stats[ref_name]["messages"] + + for name, stats in file_stats.items(): + if name == ref_name: + continue + if stats["messages"] != ref_count: + warnings.append(f"message count mismatch: {ref_name}={ref_count}, {name}={stats['messages']}") + + missing = ref_keys - stats["source_keys"] + extra = stats["source_keys"] - ref_keys + if missing: + errors.append(f"{name}: missing {len(missing)} key(s) that {ref_name} has") + if extra: + errors.append(f"{name}: has {len(extra)} extra key(s) that {ref_name} doesn't") + + # Print validation summary + print(f" Validation ({step_name}):") + for name, stats in file_stats.items(): + print(f" {name}: {stats['messages']} messages, {stats['contexts']} contexts") + + for w in warnings: + print(f" WARNING: {w}") + + if errors: + for e in errors: + print(f" ERROR: {e}") + print(f" Validation FAILED for {step_name}. Aborting.") + sys.exit(1) + + print(f" OK") + def run_script(script_name, input_file, output_file): try: # Running each script with input and output file arguments @@ -401,6 +494,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 0 completed: lupdate from NC source + sorted") + validate_ts_files(ts_files, "Step 0") auto_commit(ts_files, "Step 0", auto_commit_enabled) if step == "1" or step == "all": @@ -413,6 +507,7 @@ def run_lupdate(ts_files, mode="default"): sort_and_repair(ts_file) print("Step 1 completed: lupdate (keep obsolete), pop vanished, full sort") + validate_ts_files(ts_files, "Step 1") auto_commit(ts_files, "Step 1", auto_commit_enabled) if step == "2" or step == "all": @@ -420,6 +515,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 2 completed: lupdate removed obsolete") + validate_ts_files(ts_files, "Step 2") auto_commit(ts_files, "Step 2", auto_commit_enabled) # Step 3 merge diff into @@ -429,6 +525,7 @@ def run_lupdate(ts_files, mode="default"): merge(diff_files[ts_files.index(ts_file)], ts_file) sort_and_repair(ts_file) print("Step 3 completed: merged, sorted") + validate_ts_files(ts_files, "Step 3") auto_commit(ts_files, "Step 3", auto_commit_enabled) if step == "4" or step == "all": @@ -437,6 +534,7 @@ def run_lupdate(ts_files, mode="default"): pop_vanished(ts_file) sort_and_repair(ts_file) print("Step 4 completed: lupdate fill duplicates, format") + validate_ts_files(ts_files, "Step 4") auto_commit(ts_files, "Step 4", auto_commit_enabled) if step == "5" or step == "all": @@ -444,6 +542,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 5 completed: lupdate remove obsolete, sort") + validate_ts_files(ts_files, "Step 5") auto_commit(ts_files, "Step 5", auto_commit_enabled) except Exception as e: From a376872ffa00df1217b6022e6585a65c9d50a54d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 28 Apr 2026 16:34:31 +0200 Subject: [PATCH 084/148] trans - validation with strict mode for consistency checks --- translation_scripts/merge_translation.py | 29 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 74af0b44d602d..4fd4edc657951 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -230,8 +230,13 @@ def auto_commit(ts_files, step_name, auto_commit_enabled): ) print(f" Committed: {step_name}") -def validate_ts_files(ts_files, step_name): - """Validate translation files after a step. Returns True if valid, exits on critical error.""" +def validate_ts_files(ts_files, step_name, strict=False): + """Validate translation files after a step. + + strict=True: cross-file key mismatches are errors (use for steps 0, 2, 5). + strict=False: cross-file key mismatches are warnings (use for steps 1, 3, 4). + File existence and XML validity are always errors. + """ errors = [] warnings = [] file_stats = {} @@ -288,7 +293,8 @@ def validate_ts_files(ts_files, step_name): if duplicate_keys: warnings.append(f"{basename}: {len(duplicate_keys)} duplicate key(s) within same context") - # Cross-file consistency: all files should have the same source keys (except after step 3 merge which adds diff keys) + # Cross-file consistency check + consistency_issues = [] if len(file_stats) >= 2: ref_name = list(file_stats.keys())[0] ref_keys = file_stats[ref_name]["source_keys"] @@ -298,14 +304,19 @@ def validate_ts_files(ts_files, step_name): if name == ref_name: continue if stats["messages"] != ref_count: - warnings.append(f"message count mismatch: {ref_name}={ref_count}, {name}={stats['messages']}") + consistency_issues.append(f"message count mismatch: {ref_name}={ref_count}, {name}={stats['messages']}") missing = ref_keys - stats["source_keys"] extra = stats["source_keys"] - ref_keys if missing: - errors.append(f"{name}: missing {len(missing)} key(s) that {ref_name} has") + consistency_issues.append(f"{name}: missing {len(missing)} key(s) that {ref_name} has") if extra: - errors.append(f"{name}: has {len(extra)} extra key(s) that {ref_name} doesn't") + consistency_issues.append(f"{name}: has {len(extra)} extra key(s) that {ref_name} doesn't") + + if strict: + errors.extend(consistency_issues) + else: + warnings.extend(consistency_issues) # Print validation summary print(f" Validation ({step_name}):") @@ -494,7 +505,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 0 completed: lupdate from NC source + sorted") - validate_ts_files(ts_files, "Step 0") + validate_ts_files(ts_files, "Step 0", strict=True) auto_commit(ts_files, "Step 0", auto_commit_enabled) if step == "1" or step == "all": @@ -515,7 +526,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 2 completed: lupdate removed obsolete") - validate_ts_files(ts_files, "Step 2") + validate_ts_files(ts_files, "Step 2", strict=True) auto_commit(ts_files, "Step 2", auto_commit_enabled) # Step 3 merge diff into @@ -542,7 +553,7 @@ def run_lupdate(ts_files, mode="default"): for ts_file in ts_files: sort_and_repair(ts_file) print("Step 5 completed: lupdate remove obsolete, sort") - validate_ts_files(ts_files, "Step 5") + validate_ts_files(ts_files, "Step 5", strict=True) auto_commit(ts_files, "Step 5", auto_commit_enabled) except Exception as e: From 0de8e478bdc8e38b5c085277e42b1632e1fae3e2 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 29 Apr 2026 08:57:41 +0200 Subject: [PATCH 085/148] SES-329 fix background of noteToRecipient Textfield --- src/gui/filedetails/ShareDetailsPage.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 387a7ca595652..7d960452fd3ec 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -502,6 +502,7 @@ Page { text: root.note placeholderText: qsTr("Enter a note for the recipient") + color: Style.sesTrayFontColor enabled: noteEnabledMenuItem.checked && !root.waitingForNoteChange onEditingFinished: if (text !== "" && text !== root.note) { @@ -509,7 +510,7 @@ Page { root.waitingForNoteChange = true; } - Rectangle { + background: Rectangle { id: noteTextBorder anchors.fill: parent radius: Style.slightlyRoundedButtonRadius From c4daab605df070f0b4b2d8042d71d775db017513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 30 Apr 2026 13:17:59 +0200 Subject: [PATCH 086/148] SES-329 - Hide Submit icon --- src/gui/filedetails/NCInputTextArea.qml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/gui/filedetails/NCInputTextArea.qml b/src/gui/filedetails/NCInputTextArea.qml index b5ad9f742db49..acd885cabc227 100644 --- a/src/gui/filedetails/NCInputTextArea.qml +++ b/src/gui/filedetails/NCInputTextArea.qml @@ -34,11 +34,8 @@ TextArea { width: height height: parent.height - - background: Rectangle { - radius: width / 2 - color: textFieldBorder.color - } + + background: null flat: true icon.source: "image://svgimage-custom-color/confirm.svg" + "/" + root.secondaryColor From 3fb795ae7a4a2c322ff8ba28f7961ecde0498a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 30 Apr 2026 14:28:05 +0200 Subject: [PATCH 087/148] SES-454 - Potential fix for multiple opening tabs on Updae Link click --- src/gui/generalsettings.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 9fdf458046d54..20a1cecdd5f1a 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -492,6 +492,7 @@ void GeneralSettings::slotUpdateInfo() Theme::replaceLinkColorStringBackgroundAware(status); _ui->updateStateLabel->setOpenExternalLinks(false); + disconnect(_ui->updateStateLabel, &QLabel::linkActivated, nullptr, nullptr); connect(_ui->updateStateLabel, &QLabel::linkActivated, this, [](const QString &link) { Utility::openBrowser(QUrl(link)); }); From 01a25571a05f6ef882607bf0140b8808fd6944ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 30 Apr 2026 15:00:25 +0200 Subject: [PATCH 088/148] SES-443 - Fix Linux App Icon --- IONOS.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IONOS.cmake b/IONOS.cmake index 246d7f7354f48..79fa544a733c4 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -55,9 +55,11 @@ if(APPLE AND app_name_lower MATCHES "hidrive") endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") - set( APPLICATION_VENDOR "STRATO" ) + set(APPLICATION_VENDOR "STRATO" ) + set(APPLICATION_ICON_NAME "strato-hidrive-next" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") - set( APPLICATION_VENDOR "IONOS SE" ) + set(APPLICATION_VENDOR "IONOS SE" ) + set(APPLICATION_ICON_NAME "ionos-hidrive-next" ) add_compile_definitions(IONOS_WL_BUILD) endif() \ No newline at end of file From f42ac0778cba6e6f5dd7f1ae222bf664065806f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 4 May 2026 07:44:58 +0200 Subject: [PATCH 089/148] Revert "SES-443 - Fix Linux App Icon" This reverts commit 3ac2a89e8e2e636a7dc8f9104dc97dbe99a556d4. --- IONOS.cmake | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/IONOS.cmake b/IONOS.cmake index 79fa544a733c4..246d7f7354f48 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -55,11 +55,9 @@ if(APPLE AND app_name_lower MATCHES "hidrive") endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") - set(APPLICATION_VENDOR "STRATO" ) - set(APPLICATION_ICON_NAME "strato-hidrive-next" ) + set( APPLICATION_VENDOR "STRATO" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") - set(APPLICATION_VENDOR "IONOS SE" ) - set(APPLICATION_ICON_NAME "ionos-hidrive-next" ) + set( APPLICATION_VENDOR "IONOS SE" ) add_compile_definitions(IONOS_WL_BUILD) endif() \ No newline at end of file From c1e01da7a758174cc76952e41f4baf8a2e14a0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 5 May 2026 11:59:35 +0200 Subject: [PATCH 090/148] SES-506 possbile fix for Transform-Installer Problem --- admin/win/msi/Ionos.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/win/msi/Ionos.wxs b/admin/win/msi/Ionos.wxs index aed4d0b74820e..583fb7b886065 100644 --- a/admin/win/msi/Ionos.wxs +++ b/admin/win/msi/Ionos.wxs @@ -28,7 +28,7 @@ But we then should never change the UpgradeCode. --> Date: Wed, 6 May 2026 09:18:07 +0200 Subject: [PATCH 091/148] SES-430 - Changed Installer dialog.bmp (attention: used dummy image) --- IONOS.cmake | 2 ++ admin/win/msi/CMakeLists.txt | 3 ++- admin/win/msi/OEM.wxi.in | 2 +- .../msi/gui/{dialog_2.bmp => dialog_ionos.bmp} | Bin admin/win/msi/gui/dialog_strato.bmp | Bin 0 -> 464774 bytes 5 files changed, 5 insertions(+), 2 deletions(-) rename admin/win/msi/gui/{dialog_2.bmp => dialog_ionos.bmp} (100%) create mode 100644 admin/win/msi/gui/dialog_strato.bmp diff --git a/IONOS.cmake b/IONOS.cmake index 246d7f7354f48..f369c2580dfe4 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -56,8 +56,10 @@ endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") set( APPLICATION_VENDOR "STRATO" ) + set( WIN_MSI_UI_DIALOG_BMP "dialog_strato.bmp" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") set( APPLICATION_VENDOR "IONOS SE" ) + set( WIN_MSI_UI_DIALOG_BMP "dialog_ionos.bmp" ) add_compile_definitions(IONOS_WL_BUILD) endif() \ No newline at end of file diff --git a/admin/win/msi/CMakeLists.txt b/admin/win/msi/CMakeLists.txt index a73013877b084..97e2ffe2cda12 100644 --- a/admin/win/msi/CMakeLists.txt +++ b/admin/win/msi/CMakeLists.txt @@ -33,5 +33,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/RegistryCleanup.vbs RegistryCleanupCustomAction.wxs gui/banner_2.bmp - gui/dialog_2.bmp + gui/dialog_ionos.bmp + gui/dialog_strato.bmp DESTINATION msi/) diff --git a/admin/win/msi/OEM.wxi.in b/admin/win/msi/OEM.wxi.in index c91a7c98e57af..52fd7f60b5ad2 100644 --- a/admin/win/msi/OEM.wxi.in +++ b/admin/win/msi/OEM.wxi.in @@ -40,6 +40,6 @@ - + diff --git a/admin/win/msi/gui/dialog_2.bmp b/admin/win/msi/gui/dialog_ionos.bmp similarity index 100% rename from admin/win/msi/gui/dialog_2.bmp rename to admin/win/msi/gui/dialog_ionos.bmp diff --git a/admin/win/msi/gui/dialog_strato.bmp b/admin/win/msi/gui/dialog_strato.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3d9296de165cfef0e46bafb528218e42c9b97b9b GIT binary patch literal 464774 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%0DPNgVbjeNcs#Jnn~nAmnX&)tgZhe*%&5#og4= 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%0A=Uj#IGJc-1K%1^HQH`USZ2B9#p`VFJ_3S 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 Date: Wed, 6 May 2026 14:47:49 +0200 Subject: [PATCH 092/148] update diff translation files --- translation_scripts/de_DE.ts | 11 +++++++++++ translation_scripts/en.ts | 11 +++++++++++ translation_scripts/en_GB.ts | 11 +++++++++++ translation_scripts/es.ts | 11 +++++++++++ translation_scripts/fr.ts | 11 +++++++++++ translation_scripts/it.ts | 11 +++++++++++ translation_scripts/nl.ts | 11 +++++++++++ 7 files changed, 77 insertions(+) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 50e9cd4da95ae..884ac9e813613 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -393,6 +393,17 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Aktualisierungen + + TrayWindowAccountMenu + + Pause sync for all + Synchronisierung für alle pausieren + + + Resume sync for all + Synchronisierung für alle fortsetzen + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index bff748820cff3..6321dc7ec2188 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -393,6 +393,17 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Updates + + TrayWindowAccountMenu + + Pause sync for all + Pause sync for all + + + Resume sync for all + Resume sync for all + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index ba8ee5486eb62..46e16915ad17d 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -393,6 +393,17 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Updates + + TrayWindowAccountMenu + + Pause sync for all + Pause sync for all + + + Resume sync for all + Resume sync for all + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 56cf0e16c28e6..dcfe1142cd002 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -394,6 +394,17 @@ Alternativamente, puedes restaurar todos los archivos borrados descargándolos d Actualizaciones + + TrayWindowAccountMenu + + Pause sync for all + Pausar sincronización para todos + + + Resume sync for all + Reanudar sincronización para todos + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 67df93e63ae3e..5d3e5a4bc5ee7 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -393,6 +393,17 @@ Vous pouvez également restaurer tous les fichiers supprimés en les télécharg Mises à jour + + TrayWindowAccountMenu + + Pause sync for all + Mettre en pause la synchronisation pour tous + + + Resume sync for all + Reprendre la synchronisation pour tous + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 222966131c6fa..7a7fee840d941 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -393,6 +393,17 @@ Alternatively, you can restore all deleted files by downloading them from the se Aggiornamenti + + TrayWindowAccountMenu + + Pause sync for all + Sospendi la sincronizzazione per tutti + + + Resume sync for all + Riprendi la sincronizzazione per tutti + + OCC::IgnoreListTableWidget diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index c35c97efa3047..85ab79248f175 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -393,6 +393,17 @@ U kunt ook alle verwijderde bestanden herstellen door ze van de server te downlo Updates + + TrayWindowAccountMenu + + Pause sync for all + Synchronisatie pauzeren voor alles + + + Resume sync for all + Synchronisatie hervatten voor alles + + OCC::IgnoreListTableWidget From 63facc29c24eb70d6fc03cf83fafbfd628ccdf64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 6 May 2026 13:37:02 +0200 Subject: [PATCH 093/148] SES-511 - Adjusted translation validation --- translation_scripts/merge_translation.py | 81 ++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 4fd4edc657951..651cb8ecb6b9b 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -210,6 +210,73 @@ def sort_and_repair(file): full_sort(file) repair_file(file) +def get_source_keys(ts_file): + """Extract all (context_name, source_text) keys from a .ts file.""" + tree = ET.parse(ts_file) + root = tree.getroot() + keys = set() + for context in root.findall("context"): + context_name = context.find("name").text if context.find("name") is not None else "" + for message in context.findall("message"): + source = message.find("source") + if source is not None and source.text: + keys.add((context_name, source.text)) + return keys + + +def get_untranslated_keys(ts_file): + """Extract keys that have no translation, categorized as 'empty' or 'unfinished'.""" + tree = ET.parse(ts_file) + root = tree.getroot() + empty = set() + unfinished = set() + for context in root.findall("context"): + context_name = context.find("name").text if context.find("name") is not None else "" + for message in context.findall("message"): + source = message.find("source") + translation = message.find("translation") + if source is not None and source.text: + key = (context_name, source.text) + if translation is None or not translation.text or translation.text.strip() == "": + empty.add(key) + elif translation.attrib.get("type") == "unfinished": + unfinished.add(key) + return empty, unfinished + + +def validate_untranslated(ts_files, keys_after_step0, keys_after_step1): + """Report keys without translations: both newly added and overall.""" + print("\n Final validation: checking for untranslated keys...") + + # EN files always have empty NC base translations — skip those + en_files = {"client_en.ts", "client_en_GB.ts"} + + for ts_file in ts_files: + basename = os.path.basename(ts_file) + empty, unfinished = get_untranslated_keys(ts_file) + + # Find which empty keys were added in step 1 + step0_keys = keys_after_step0.get(ts_file, set()) + step1_keys = keys_after_step1.get(ts_file, set()) + added_in_step1 = step1_keys - step0_keys + added_empty = empty & added_in_step1 + other_empty = empty - added_in_step1 + + print(f" {basename}: {len(empty)} empty, {len(unfinished)} unfinished") + + if added_empty: + print(f" {len(added_empty)} empty key(s) added in step 1 (our custom keys without translation):") + for ctx_name, source_text in sorted(added_empty): + display = source_text[:80] + "..." if len(source_text) > 80 else source_text + print(f" - {ctx_name}::{display}") + + if other_empty and basename not in en_files: + print(f" {len(other_empty)} empty key(s) from NC base (no translation):") + for ctx_name, source_text in sorted(other_empty): + display = source_text[:80] + "..." if len(source_text) > 80 else source_text + print(f" - {ctx_name}::{display}") + + def auto_commit(ts_files, step_name, auto_commit_enabled): """Commit the translation files with the given step name if auto-commit is enabled.""" if not auto_commit_enabled: @@ -497,6 +564,10 @@ def run_lupdate(ts_files, mode="default"): print(" Example: python merge_translation.py 0 stable-4.0") sys.exit(1) + # Track keys for final validation (added in step 1, removed in step 5) + keys_after_step0 = {} + keys_after_step1 = {} + try: if step == "0" or step == "all": @@ -507,6 +578,9 @@ def run_lupdate(ts_files, mode="default"): print("Step 0 completed: lupdate from NC source + sorted") validate_ts_files(ts_files, "Step 0", strict=True) auto_commit(ts_files, "Step 0", auto_commit_enabled) + # Snapshot keys after step 0 + for ts_file in ts_files: + keys_after_step0[ts_file] = get_source_keys(ts_file) if step == "1" or step == "all": # Step 1 lupdate Nextcloud in our latest change state, keep obsolete @@ -520,6 +594,9 @@ def run_lupdate(ts_files, mode="default"): print("Step 1 completed: lupdate (keep obsolete), pop vanished, full sort") validate_ts_files(ts_files, "Step 1") auto_commit(ts_files, "Step 1", auto_commit_enabled) + # Snapshot keys after step 1 + for ts_file in ts_files: + keys_after_step1[ts_file] = get_source_keys(ts_file) if step == "2" or step == "all": run_lupdate(ts_files, "no_obs") @@ -556,6 +633,10 @@ def run_lupdate(ts_files, mode="default"): validate_ts_files(ts_files, "Step 5", strict=True) auto_commit(ts_files, "Step 5", auto_commit_enabled) + # Final validation: detect untranslated keys + if keys_after_step0 and keys_after_step1: + validate_untranslated(ts_files, keys_after_step0, keys_after_step1) + except Exception as e: print(f"An error occurred: {e}") From 64f6a602ce66c96a76602b859d954933999e2de3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 6 May 2026 14:37:36 +0200 Subject: [PATCH 094/148] SES-511 - Adjusted some outdated resources strings --- src/gui/SesComponents/SesTrayHeader.qml | 2 +- src/gui/tray/TrayFoldersMenuButton.qml | 2 +- src/gui/tray/TrayWindowHeaderBar.qml | 2 +- src/gui/wizard/flow2authwidget.ui | 3 --- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/gui/SesComponents/SesTrayHeader.qml b/src/gui/SesComponents/SesTrayHeader.qml index 94d3e7e23babf..52d62e6d8225e 100644 --- a/src/gui/SesComponents/SesTrayHeader.qml +++ b/src/gui/SesComponents/SesTrayHeader.qml @@ -63,7 +63,7 @@ Rectangle { onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder() Accessible.role: Accessible.Graphic - Accessible.name: qsTr("Open local or group folders") + Accessible.name: qsTr("Open local or team folders") Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() } } diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index 27a49db684ee5..f686ca087d6e6 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -60,7 +60,7 @@ HeaderButton { id: tooltip popupType: Qt.platform.os === "windows" ? Popup.Item : Popup.Native visible: root.hovered && !foldersMenuLoader.isMenuVisible - text: root.userHasGroupFolders ? qsTr("Open local or group folders") : qsTr("Open local folder") + text: root.userHasGroupFolders ? qsTr("Open local or team folders") : qsTr("Open local folder") background: Rectangle { color: Style.sesBackgroundColor border.color: Style.sesBorderColor diff --git a/src/gui/tray/TrayWindowHeaderBar.qml b/src/gui/tray/TrayWindowHeaderBar.qml index d96dcea191338..cfb204aedfcb4 100644 --- a/src/gui/tray/TrayWindowHeaderBar.qml +++ b/src/gui/tray/TrayWindowHeaderBar.qml @@ -62,7 +62,7 @@ Rectangle { onFolderEntryTriggered: isGroupFolder ? UserModel.openCurrentAccountFolderFromTrayInfo(fullFolderPath) : UserModel.openCurrentAccountLocalFolder() Accessible.role: Accessible.Graphic - Accessible.name: qsTr("Open local or group folders") + Accessible.name: qsTr("Open local or team folders") Accessible.onPressAction: openLocalFolderButton.userHasGroupFolders ? openLocalFolderButton.toggleMenuOpen() : UserModel.openCurrentAccountLocalFolder() Layout.alignment: Qt.AlignRight diff --git a/src/gui/wizard/flow2authwidget.ui b/src/gui/wizard/flow2authwidget.ui index a59ddd6ad94d7..cacc96b32be2f 100644 --- a/src/gui/wizard/flow2authwidget.ui +++ b/src/gui/wizard/flow2authwidget.ui @@ -142,9 +142,6 @@
      - - Reopen Browser - From 0d71b3071c665ed03d0d23a7ea367ac971ce7a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 6 May 2026 14:43:27 +0200 Subject: [PATCH 095/148] SES-511 - removed crash reporter --- .github/workflows/check-translations.yml | 2 +- CMakeLists.txt | 13 ------------- src/gui/generalsettings.ui | 21 ++------------------- 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/.github/workflows/check-translations.yml b/.github/workflows/check-translations.yml index c1ecf970a7b11..56859cebfec12 100644 --- a/.github/workflows/check-translations.yml +++ b/.github/workflows/check-translations.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Check Elipsis run: | - lupdate -no-obsolete src/gui/ src/cmd/ src/common/ $crashreporter src/csync/ src/libsync/ $resources -ts ../ci-client.ts + lupdate -no-obsolete src/gui/ src/cmd/ src/common/ src/csync/ src/libsync/ $resources -ts ../ci-client.ts if [ $(grep '\.\.\.' ../ci-client.ts | wc -l) -ne 0 ]; then echo "English source contains three consecutive dots. Unicode … should be used instead" exit -1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 7869e449d5bc1..0bcee2f0dabd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,10 +102,6 @@ include(ECMEnableSanitizers) include(ECMCoverageOption) -if(NOT CRASHREPORTER_EXECUTABLE) - set(CRASHREPORTER_EXECUTABLE "${APPLICATION_EXECUTABLE}_crash_reporter") -endif() - include(Warnings) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") @@ -123,15 +119,6 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/src ) -# disable the crashreporter if libcrashreporter-qt is not available or we're building for ARM -if( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/3rdparty/libcrashreporter-qt/CMakeLists.txt") - set( WITH_CRASHREPORTER OFF ) -endif() - -if(NOT WITH_CRASHREPORTER) - message(STATUS "Build of crashreporter disabled.") -endif() - include(GNUInstallDirs) include(DefineInstallationPaths) include(GenerateExportHeader) diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index 47b0b3499ad3c..933d73c01da9b 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -331,24 +331,7 @@
      - - - - - - - 0 - 0 - - - - S&how crash reporter - - - - - + @@ -785,7 +768,7 @@ ignoredFilesButton newFolderLimitCheckBox newFolderLimitSpinBox - crashreporterCheckBox + restartButton From 29f77cfe24f7caba6493cfe9e807cb66243d7f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 6 May 2026 14:52:30 +0200 Subject: [PATCH 096/148] SES-511 - removed more translation strings according to nextcloud --- src/gui/filedetails/ShareDelegate.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/gui/filedetails/ShareDelegate.qml b/src/gui/filedetails/ShareDelegate.qml index b0bd2c07ec0f0..aa280322fb2be 100644 --- a/src/gui/filedetails/ShareDelegate.qml +++ b/src/gui/filedetails/ShareDelegate.qml @@ -150,8 +150,6 @@ GridLayout { Layout.preferredWidth: Style.iconButtonWidth Layout.preferredHeight: width - toolTipText: qsTr("Create a new share link") - iconSource: Style.sesDarkPlus + palette.buttonText icon.width: Style.smallIconSize icon.height: Style.smallIconSize @@ -183,9 +181,7 @@ GridLayout { Layout.alignment: Qt.AlignCenter Layout.preferredWidth: shareLinkCopied ? implicitWidth : Style.iconButtonWidth Layout.preferredHeight: Style.iconButtonWidth - Layout.rightMargin: Style.sesSmallMargin - - toolTipText: qsTr("Copy share link location") + Layout.rightMargin: Style.sesSmallMargin text: shareLinkCopied ? qsTr("Copied!") : "" textColor: Style.sesDarkGreen From 1ccc139597647b0dc746f8c1a577fd39167aa4fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 7 May 2026 07:27:54 +0200 Subject: [PATCH 097/148] SES-511 - Removed obsolete translations --- src/gui/generalsettings.ui | 4 ++-- src/gui/tray/TrayWindowHeaderBar.qml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/generalsettings.ui b/src/gui/generalsettings.ui index 933d73c01da9b..38b632af6f3ab 100644 --- a/src/gui/generalsettings.ui +++ b/src/gui/generalsettings.ui @@ -65,7 +65,7 @@ - Show call notifications + Show Call Notifications @@ -75,7 +75,7 @@ For System Tray - Use &monochrome icons + Use &Monochrome Icons diff --git a/src/gui/tray/TrayWindowHeaderBar.qml b/src/gui/tray/TrayWindowHeaderBar.qml index cfb204aedfcb4..873ccc30199a0 100644 --- a/src/gui/tray/TrayWindowHeaderBar.qml +++ b/src/gui/tray/TrayWindowHeaderBar.qml @@ -79,7 +79,6 @@ Rectangle { onClicked: UserModel.openCurrentAccountTalk() Accessible.role: Accessible.Button - Accessible.name: qsTr("Open Nextcloud Talk in browser") Accessible.onPressAction: trayWindowTalkButton.clicked() Layout.alignment: Qt.AlignRight From 326fb3f8d6793714ccdea1403e6249a13a09a65b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 7 May 2026 07:28:07 +0200 Subject: [PATCH 098/148] SES-511 - Added explicit translations --- translation_scripts/de_DE.ts | 33 +++++++++++++------------ translation_scripts/en.ts | 33 +++++++++++++------------ translation_scripts/en_GB.ts | 33 +++++++++++++------------ translation_scripts/es.ts | 47 ++++++++++++++++++++++++------------ translation_scripts/fr.ts | 40 ++++++++++++++++++------------ translation_scripts/it.ts | 33 +++++++++++++------------ translation_scripts/nl.ts | 33 +++++++++++++------------ 7 files changed, 146 insertions(+), 106 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 884ac9e813613..f18312cf7ae52 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -25,10 +25,6 @@ Send anonymous use Anonyme Nutzungsdaten senden - - Settings - Einstellungen - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. @@ -227,6 +223,13 @@ Should the accounts be imported? Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. + + OCC::DataProtectionPage + + Settings + Einstellungen + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +396,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Aktualisierungen - - TrayWindowAccountMenu - - Pause sync for all - Synchronisierung für alle pausieren - - - Resume sync for all - Synchronisierung für alle fortsetzen - - OCC::IgnoreListTableWidget @@ -574,6 +566,17 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Dateien + + TrayWindowAccountMenu + + Pause sync for all + Synchronisierung für alle pausieren + + + Resume sync for all + Synchronisierung für alle fortsetzen + + progress diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 6321dc7ec2188..83633bdfb2545 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -25,10 +25,6 @@ Send anonymous use Send anonymous use - - Settings - Settings - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -227,6 +223,13 @@ Should the accounts be imported? The file could not be synced because it generates a case clash conflict with an existing file on this system. + + OCC::DataProtectionPage + + Settings + Settings + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +396,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Updates - - TrayWindowAccountMenu - - Pause sync for all - Pause sync for all - - - Resume sync for all - Resume sync for all - - OCC::IgnoreListTableWidget @@ -574,6 +566,17 @@ Items where deletion is allowed will be deleted if they prevent a directory from Files + + TrayWindowAccountMenu + + Pause sync for all + Pause sync for all + + + Resume sync for all + Resume sync for all + + progress diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index 46e16915ad17d..049346591a1a9 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -25,10 +25,6 @@ Send anonymous use Send anonymous use - - Settings - Settings - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -227,6 +223,13 @@ Should the accounts be imported? The file could not be synced because it generates a case clash conflict with an existing file on this system. + + OCC::DataProtectionPage + + Settings + Settings + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +396,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Updates - - TrayWindowAccountMenu - - Pause sync for all - Pause sync for all - - - Resume sync for all - Resume sync for all - - OCC::IgnoreListTableWidget @@ -574,6 +566,17 @@ Items where deletion is allowed will be deleted if they prevent a directory from Files + + TrayWindowAccountMenu + + Pause sync for all + Pause sync for all + + + Resume sync for all + Resume sync for all + + progress diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index dcfe1142cd002..9ec1df041cd03 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -25,10 +25,6 @@ Send anonymous use Enviar uso anónimo - - Settings - Ajustes - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. @@ -42,7 +38,7 @@ Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. - + BasicComboBox @@ -228,6 +224,13 @@ Should the accounts be imported? El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. + + OCC::DataProtectionPage + + Settings + Ajustes + + OCC::DiscoverySingleDirectoryJob @@ -241,6 +244,10 @@ Should the accounts be imported? OCC::Flow2AuthWidget + + Copy Link + Copiar enlace + Open Browser Abrir en el navegador @@ -394,17 +401,6 @@ Alternativamente, puedes restaurar todos los archivos borrados descargándolos d Actualizaciones - - TrayWindowAccountMenu - - Pause sync for all - Pausar sincronización para todos - - - Resume sync for all - Reanudar sincronización para todos - - OCC::IgnoreListTableWidget @@ -575,6 +571,25 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Archivos + + TrayWindowAccountMenu + + Add account + Añadir cuenta + + + Pause sync for all + Pausar sincronización para todos + + + Resume sync for all + Reanudar sincronización para todos + + + Settings + Configuración + + progress diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 5d3e5a4bc5ee7..d1aa2ad01008e 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -25,10 +25,6 @@ Send anonymous use Envoyer utilisation anonyme - - Settings - Paramètres - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. @@ -82,6 +78,13 @@ Version du serveur + + FileDetailsPage + + Dismiss + Fermer + + FileProviderFastEnumerationSettings @@ -227,6 +230,13 @@ Doivent-ils être importés ? Le fichier n'a pas pu être synchronisé car il génère un conflit de cas avec un fichier existant sur ce système. + + OCC::DataProtectionPage + + Settings + Paramètres + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +403,6 @@ Vous pouvez également restaurer tous les fichiers supprimés en les télécharg Mises à jour - - TrayWindowAccountMenu - - Pause sync for all - Mettre en pause la synchronisation pour tous - - - Resume sync for all - Reprendre la synchronisation pour tous - - OCC::IgnoreListTableWidget @@ -574,6 +573,17 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Fichiers + + TrayWindowAccountMenu + + Pause sync for all + Mettre en pause la synchronisation pour tous + + + Resume sync for all + Reprendre la synchronisation pour tous + + progress diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 7a7fee840d941..8fd4a10cafc50 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -25,10 +25,6 @@ Send anonymous use Invia l'uso anonimo - - Settings - Impostazioni - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. @@ -227,6 +223,13 @@ Should the accounts be imported? Il file non può essere sincronizzato perché genera un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. + + OCC::DataProtectionPage + + Settings + Impostazioni + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +396,6 @@ Alternatively, you can restore all deleted files by downloading them from the se Aggiornamenti - - TrayWindowAccountMenu - - Pause sync for all - Sospendi la sincronizzazione per tutti - - - Resume sync for all - Riprendi la sincronizzazione per tutti - - OCC::IgnoreListTableWidget @@ -574,6 +566,17 @@ Items where deletion is allowed will be deleted if they prevent a directory from File + + TrayWindowAccountMenu + + Pause sync for all + Sospendi la sincronizzazione per tutti + + + Resume sync for all + Riprendi la sincronizzazione per tutti + + progress diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index 85ab79248f175..d7bc50b4f0d67 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -25,10 +25,6 @@ Send anonymous use Anoniem gebruik verzenden - - Settings - Instellingen - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0045'>privacybeleid</a>. @@ -227,6 +223,13 @@ Moeten de accounts worden geïmporteerd? The file could not be synced because it generates a case clash conflict with an existing file on this system. + + OCC::DataProtectionPage + + Settings + Instellingen + + OCC::DiscoverySingleDirectoryJob @@ -393,17 +396,6 @@ U kunt ook alle verwijderde bestanden herstellen door ze van de server te downlo Updates - - TrayWindowAccountMenu - - Pause sync for all - Synchronisatie pauzeren voor alles - - - Resume sync for all - Synchronisatie hervatten voor alles - - OCC::IgnoreListTableWidget @@ -574,6 +566,17 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Bestanden + + TrayWindowAccountMenu + + Pause sync for all + Synchronisatie pauzeren voor alles + + + Resume sync for all + Synchronisatie hervatten voor alles + + progress From 2b961f26e52320479dbace7e59a2d4680b866a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 7 May 2026 09:16:50 +0200 Subject: [PATCH 099/148] NoIssue - file extension --- .vscode/settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d40b76680f637..837a4a517af53 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,7 @@ "cmake.buildDirectory": "${workspaceFolder}/../build/${buildKitTargetOs}-${buildKitVendor}-${buildKitTargetArch}/${buildType}", "files.associations": { "qwizardpage": "cpp", - "xutility": "cpp" + "xutility": "cpp", + "*.ts": "xml" }, } \ No newline at end of file From f0285842e7217e95df91657b1ee541951812e954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Fri, 8 May 2026 09:20:17 +0200 Subject: [PATCH 100/148] SES-454 - Disconnect Click event with stored connection --- src/gui/generalsettings.cpp | 4 ++-- src/gui/generalsettings.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 20a1cecdd5f1a..597b9f7c63457 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -492,8 +492,8 @@ void GeneralSettings::slotUpdateInfo() Theme::replaceLinkColorStringBackgroundAware(status); _ui->updateStateLabel->setOpenExternalLinks(false); - disconnect(_ui->updateStateLabel, &QLabel::linkActivated, nullptr, nullptr); - connect(_ui->updateStateLabel, &QLabel::linkActivated, this, [](const QString &link) { + disconnect(_updateLabelConnection); + _updateLabelConnection = connect(_ui->updateStateLabel, &QLabel::linkActivated, this, [](const QString &link) { Utility::openBrowser(QUrl(link)); }); _ui->updateStateLabel->setText(status); diff --git a/src/gui/generalsettings.h b/src/gui/generalsettings.h index 96ff5b7ab37e3..aae15e3c024cf 100644 --- a/src/gui/generalsettings.h +++ b/src/gui/generalsettings.h @@ -78,6 +78,7 @@ private slots: QPointer _ignoreEditor; bool _currentlyLoading = false; QStringList _currentUpdateChannelList; + QMetaObject::Connection _updateLabelConnection; }; From 8af271cb2504bfbbc6244a52ce04c80288860dd4 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Fri, 8 May 2026 13:33:24 +0200 Subject: [PATCH 101/148] SES-430 use new strato banner image --- admin/win/msi/gui/dialog_strato.bmp | Bin 464774 -> 619264 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/admin/win/msi/gui/dialog_strato.bmp b/admin/win/msi/gui/dialog_strato.bmp index 3d9296de165cfef0e46bafb528218e42c9b97b9b..e697e11f72423f2896127fb25a3311ca39526074 100644 GIT binary patch literal 619264 zcmeI*2aqjGUB~f@2@xZrn8k#c#XupJ33I?uXsKnu(lV4;P%KkvnF=K*QF4^{0O66d zL`i~VeDH`8Bxt(Y*F1CG%bbbj zs;j>%um0Y2sWWG;zWTe=nJcbhXU;tBI+rFN0R#|0piO{I(#hU@pzWzr5kLR|1bQ2<*<%i&S0aD_0tmDT&`28D zn-8=-RVo4qAb>z`<28HCA@oWF5I_KdHUSz*BYX3Kwx>!(009IL=xw}ak2!>1i2wo! zAkZd2BWYxBKG615sR$r|00O;@*X%Ke&?^x@009Kr1ZX6U?9B(-o+=dq1Q0-=xAB@i z<`8-%0tg_0K$`%Kq>;V(K-*KLB7gt_2=q2yv&S4luS5U=1Q2Kwppi7PHy>zws#F9J zKmdW>#%uPNL+F(VAbAQV~D^0R(y*ui0Y`p;sb+00IcK3D8Iy*_#ivJyj|K2q1t!Z{sz4%pvqj1Q0*~ zfi?jeNh5pnfwregMF0T=5a?~ZW{)|9UWot#2q4fVKqF~nZ$8lWRH+CcfB*u$jo0ik zhtMk#KmY**+5~7MjqJ?_+MX&E0R#|0pttdwJ?0R4B?1T_fIyo7jiiyi`9RxKr6Pa; z0toarUbDv>La#&s0R#|e6QGeavNs=Sd#Y3f5I_Kd-o|V8m_z852q1s}0&M~`l1BFC z18q;0iU0x#Akf=*%^q_Iy%GTg5I~?!fJV~D-h80#sZtR@009Jg8?V`84xv{ffB*sr zvB#rFN2il%06#)bg zK%lqrnmy(adL;q~Ab>!d0F9)Pz4<`fQ>7w+00Ic~HeR#G973-|009ILXcM53G_p4z zXnU$u1Q0*~f!@Yz_LxKHl?Wh!00M0SG?GU4<^yd{m5KlY2q4hgc+DPj2)z;k1Q0-= zO@Kzy$liRQ?Ws}`KmY**dK<6VV-BHLB7gt_2($^%NE+Fj541g1Dgp=~fIx5KHG9k< z^hyK}KmdU@0UAjod-H*|r%FWt0R#}}ZM@kPXD-l2d0R-9vXe5p7%?H|^Dir|)5I~@}@tQs65PBs72q1t!n*fcZk-hmq z+f$_?fB*sr^fq3z#~ebhL;wK<5NH#ikuZ{fB*t* z0yL6F_T~d^PnC)Q0tg_`+jz|$a|pc>0R#|0piO{A(#YO?pzWzr5kLR|1bQ2<*<%i& zS0aD_0tmDT&`28Dn-8=-RVo4qAb>z`<28HCA@oWF5I_KdHUSz*BYX3Kwx>!(009IL z=xw}ak2!>1i2wo!AkZd2BWYxBKG615sR$r|00O;@*X%Ke&?^x@009Kr1ZX6U?9B(- zo+=dq1Q0-=xAB@i<`8-%0tg_0K$`%Kq>;V(K-*KLB7gt_2=q2yv&S4luS5U=1Q2Kw zppi7PHy>zws#F9JKmdW>#%uPNL+F(VAbAQV~D^0R(y*ui0Y`p;sb+00IcK3D8Iy*_#ivJyj|K2q1t! zZ{sz4%pvqj1Q0*~fi?jeNh5pnfwregMF0T=5a?~ZW{)|9UWot#2q4fVKqF~nZ$8lW zRH+CcfB*u$jo0ikhtMk#KmY**+5~7MjqJ?_+MX&E0R#|0pttdwJ?0R4B?1T_fIyo7 zjiiyi`9RxKr6Pa;0toarUbDv>La#&s0R#|e6QGeavNs=Sd#Y3f5I_Kd-o|V8m_z85 z2q1s}0&M~`l1BFC18q;0iU0x#Akf=*%^q_Iy%GTg5I~?!fJV~D-h80#sZtR@009Jg z8?V`84xv{ffB*srv zB#rFN2il%06#)bgK%lqrnmy(adL;q~Ab>!d0F9)Pz4<`fQ>7w+00Ic~HeR#G973-| z009ILXcM53G_p4zXnU$u1Q0*~f!@Yz_LxKHl?Wh!00M0SG?GU4<^yd{m5KlY2q4hg zc+DPj2)z;k1Q0-=O@Kzy$liRQ?Ws}`KmY**dK<6VV-BHLB7gt_2($^%NE+Fj541g1 zDgp=~fIx5KHG9k<^hyK}KmdU@0UAjod-H*|r%FWt0R#}}ZM@kPXD-l2d0R-9vXe5p7%?H|^Dir|)5I~@}@tQs65PBs7 z2q1t!n*fcZk-hmq+f$_?fB*sr^fq3z#~ebhL;wK<5NH#ikuZ{fB*t*0yL6F_T~d^PnC)Q0tg_`+jz|$a|pc>0R#|0piO{A(#YO?pzWzr z5kLR|1bQ2<*<%i&S0aD_0tmDT&`28Dn-8=-RVo4qAb>z`<28HCA@oWF5I_KdHUSz* zBYX3Kwx>!(009IL=xw}ak2!>1i2wo!AkZd2BWYxBKG615sR$r|00O;@*X%Ke&?^x@ z009Kr1ZX6U?9B(-o+=dq1Q0-=xAB@i<`8-%0tg_0K$`%Kq>;V(K-*KLB7gt_2=q2y zv&S4luS5U=1Q2Kwppi7PHy>zws#F9JKmdW>#%uPNL+F(VAbAQV~D^0R(y*ui0Y`p;sb+00IcK3DC&n z(a4{<+c3o6N%FnY&4=N)E*ORgPtuNE>u!6hR0I$}0D)b{({1uU=T&R2w|mmGRwVh* zlq@sWbIG&_qny_A&i4+(lP(&D8$J4wNKg^aaJMxY9jd16DmOF8CG=~Ze=Xmpevf2D3jSucG<`@HrrTe9rP z*J@X8PkSTY$`|LwM*sl?5Lgp9>bSaTzZ~;R9T?|N{^giIrB|t&QSP{$ z@|-fXY*ve$lc&_s?*OL2l1_*4EVL+2y`t z_Sw$ZuVfx`jaYI{QRW+8+Yh~uWr{)CxNo?w#eW14KmdU;fqlo<*8Zt0W8En8rX8hz zl$ulKO&yuiywK^?#W>F__dU#(O=XvQ7IozL?O4k)U$m*z>$D@%qHSecbK5waVi5V# z)@*CkSC*OciZO$%BW)PlnB~U)*~antc$ASWr;bC`vu_yfvLJu}0tlQ;{d(zddUT#xO!WLkvTj+`%Kp0d15 zJ1lIqwVd-zJ=2#qwDvD;-FN*k`)x-60R)yxVBhhzwSSK7+b}IPXG*V96A#mhtgoCa zq%CDyY4cRssbOP%P8~0GEz5}dW4-m4ww3KI?a1{OgDk&1|813*Y0>7E4as86G3Gnv z_4cXz)l>VY?dK}Yb_fwb009JQ0_SR+Ez8NVy{@SpD>ba8S5av!GI%7ST$e-KN zmMI;YDtqeQa9$se?ODfR_p{4(jqfFA85x#&BW-+5Jo9B+OMX)}=RV0Iuk~kooV&*o z^O4L`GR%CrEy7GYj&N;_{|F#}00LtI$1&#S*xnlVv%a*W)SR(iW!@=W&Fv8$c5OWB z3r&kU%KN#kvO_0x$?M`-S7~FZzj;46!t!2lvnt0lg_C@|o%WLHjKZqHHTVW$NF1Q0;rYyw9aQxDrG z#`0K7O&jmC&QYK9m3md?Z)r%mz0}LGCY82CIjJ|ff2-`&xN%vzPo&2Z`7$lS(B!;6 zz0R@zA38eL+;YEiy=0IYIX>5q{JD%ZJGMoevJIIp;^T6%?NLuTp9ouX|HxC;m*r*H zs=sW{QP#6;Ap!^>fIv;)C}Zkj`;O^WqNK8J&Stcy7NA|mDjSPyyIZ8Yni2H zkFRByWhIAw+Fq8o&3fDu2^VzAp!^>fIv-Pn=$l!J|zc2+<9M7~p3if~xb~dyIQ7P2srICA3K2j60R(CSOVtJK?&DrS z>p0XNDuw_82q2IIT4ScPe)Vh#$0mJKhyVfzAW#!nf(B^gyyhUahl(M900Iak0eUts zJzK)@O5YSBfB*sr)C88G0opjPc}eY|VhA9B00K#Xp3O_omTfIv-P2^ye{^O~2`9x8?a0tg_G1nAkk z^lS;oD}7Ul00IagP!m{!2595F<|Vay;pl9>avn3p_^i3fG2q1t!O<)Nc zppEmIm((6Ah5!NxAdm#;*}U{@3CAmaQ-}Zp2p~`sSb_#<<&AbzkUfIv-P2^ye{^O~2`9x8?a0tg_G1nAkk^lS;oD}7Ul00IagP!m{! z2595F<|Vay;pl9>avn3p_^i3fG2q1t!O<)NcppEmIm((6Ah5!NxAdm#; z*}U{@3CAmaQ-}Zp2p~`sSb_#<<&AbzkUfIv-P z2^ye{^O~2`9x8?a0tg_G1nAkk^lS;oD}7Ul00IagP!m{!2595F<|Vay; zpl9>avn3p_^i3fG2q1t!O<)NcppEmIm((6Ah5!NxAdm#;*}U{@3CAmaQ-}Zp2p~`s zSb_#<<&Abzk zUHy%C=Uw4P?%W0K; zSX%9&VhA9B00K$iu<>)-?V%S>eAO_#={-mPd-dDb+PZC>t$bIz%P>Sa@BdJ?@a*ty z?;VDRzH}JA<*u8xCv@w=iw@dzpBD|oN3S%pRd1xl+~9TZT<3qun}^}cR{A~88)e?( z1;g;xl?}n_&8xrbJ$9Y%f)^ju^@xjy;o~pS@^KkuJoZiIuU*xB^`cFo-*Xruq1Q1vvfpVRPss#d-Eut?tjZ>ewbNt|$NS>iqV{FBpdJ`q%Zn>$u+= z*Y3Z3rAfcOx_%uRp3AddclJHttmj;6cH9FV>)|6W9)^!uT`SM}!uFTFH7y&4SFLn% z)3x|JjOIzvwk#{cT{Zh&FFdF_*5VrYZ$5k&K7V!HBc4?VesNDbj#0V9J?^sJeb>vf zts{T{0tg%s*mr!*{d>{uv}Y=eXST}g$*)+QJI8Zct^DUov*S6o=NIR@K|k(yx6XNQ z_#X$yCf08LjA8h_M-9X8kN*DfG3)!(nLDoGf7a-__b!_Kg)3ct&+1x4E>Yf9@7(4R zbAwX0W8U*|=kQ!RZ4e@W00Icq1X@~kl(e~Mc02=i@#tK3>KW~QHTyeP=lQ|%-lOx^ zcn0n&cWmon=wzvf_0gJ+-SY)!m$!>%|J(!XvhVw%v&&1rh;mDYaor-G#n0{ghP5SP z2q1s}0!d)s@iq6Ki)P0&SZ`TrW-f94dFr{ceKq?B@4Y@p&blIuXR&`|b?rX6jl;MO z@Sm?Q_t9oN6(`Ru2^He0?9;~A~cwpLsB)$H;8>!>j_JKh=lft8-O>Ws8Md0cJdQ&!J; z-G23aTim~n@BuHWx5qhezT;h%xr=6xuLbyhx|J4&W=P&I#Y`t!s7y<|& zfIt#BZ2a7Id#{@PdAAydKYM)r&QrEM!oPmfwASpa*=0Sg_3<-f$vU3jE}zkkXYzAf zgfaIhmv}C$+@9;ZX!gTiR+cyn-+Rw?nOXLq|9hQ3zPpm!_6_Tj#SlOM0R)o3zT<1| ze?Bz(@;6(5+bo`A&U&Z9c*pw|tM{nl{idlU&RI8ox8%4r`yH!ys6KZ!r)ag|F|RnV zI-cMD^i|t4-=kiBuq~e9{`xx{Y|A_m?xNZ8y_Iqqzo%A~8|yT?q-7le1Q0ks1jb|W zQRBz0+425XydND)+$Y{-XFSLCns==8j{nE`>-}E5eh+L@8L@3&&A#4a*WXZ$@2Gyy z>by0+llJmU+K_hT_f*EVMBZ}w>3>_dIlf^M@0#Zl??;cnSDIz*qS=qQI7?iIhn;7~ zwTp7Osq^d-hjj!HK;T#if7{*8o?FEA@N)V4r<|Q9j>Tu+av0+I@?2t`5$V74$V^#>5uZACyJ+_K9(n7T zwz8hTS>018m+McoqugiP^|D;+2q1s}0tW=P9Y+t#cbuC2mrppbH`X?3c3eX)uZPEX zIRAL{Ojl^&VQm<1-&eC+*O%jZLAk_tyT|orJib4kOMI6+?0MwHnX>*y%ha{?C}S7R zzV*tEa*1!irX8*D&d)7#55sRiVsrjh8B=L>$zli~fB*tXU~1glHT^g>d;GnxO`09& zW!wd6Q7`zP<8zm@MOX{8<35kLR|1P%xsWlU}DbDWwzE_;(^$M-eM-}Kt_ZID(w%CvYtEPkge zm-uGdrf1g1cIG!#$};0OLCYoXd6(PE^>}YQeyb~&vR#oD-)AlJx7MHghTMC7{UN@| z*2?#dtKUi~mv{%Rl`qo1Xmn3Ko*gKkk(=6Y+w{^7>j)r#00IXDwjD_;z-jBgbES_bl#r z$9?X2hCII89c{bjeb>*q#kp*3i)Y^Aw<}k#Qhj8J_1G4FkuSd48D++F{eJl&+t;4I#d+PwY`@PqXZ-e6)O)AVb6Mkj<9O~@wspK7zr9iZ26mS5&8zp> z%DlV$Zg`fFVR=tI&Y8DeVh-@L53KDdZ93}uw)M-000IasjlfaI)$xAuj#d25L|jje zZ({BG7w2*D{ma%l+pd}&w#Dy5wzO`1eE)X!Tvz1(g$IqdY#+bY>bbHgBi?t~W{KYw zi{I)RGn|T#zhCmW)w^u*UGg%2yqk5@rF>s3%8lpr%liwha)a%UT~OOl+OyAkt3GK6 zAbcGhVm$J&I;WIiIk)-+Q&Y48yfATz|tm<^+Gb`WDFVuHI>m-?WHtv*hoC zTzYjr8~2;zTJ$b|aZNgYD=g}Z>jUxJ*{1#DdoNSZfwkHmX>qO{^MbfP9&?NFZ*E4O zct-r{cimif%dT&~d;7V%c>X@_8^rbSC%<|ap8fh^h~M0dXZqrte%CfkwXKz|Um}12 z0tmDTw8qTd(rz<)4(qUMc8A9H~N z@3e*h0tg^b5;zH+ihH{8ee0L5o@0vljPpILGK}BSh-bB0%XeS$Zq-THuFm7v_0}<$ zh5!NxAaMNS?^xsFIjQk^^Df6B-a)>?EzZB)<93K2-!a(5ALK;<0R)yr;CyONJje93 z|JjdjJo9}%ZC2O$=e?hY*c$-^5IDUA&Zj0_{$}fMluca^FRzW4>yba+H;VVa&!@fW zIvL)lx3_5-0tg_m9|5{_GP;EOH23{H+TI8tfWYY`Ks%)00Ib{UIMgZT05{g88)Z4w`myy2q3T@0lIWDx`g{Q_x(KD-UuLo z!09DGJEpY*o0DO4dV8CeA%Fk^`w^f^C!dVJFqz!HmA3@ zX&C|tAg~_+x^yzSg!?r2{XE*<2q1vK=_NorrnLi`lVNjudz+RafB*vf5ui&aqf59? zbKlRS?Tr8e2%KI5v}0O3usInvr?B|tl- zwF8@zVRL$Wo0cJf00R3Fpi3vCOSn&S-_N7%jQ|1&oL&O7V_G|~IT<#mx3_5-0tg_m z9|5{_GP;EOH23{H+TI8tfWYY`Ks%) z00Ib{UIMgZT05{g88)Z4w`myy2q3T@0lIWDx`g{Q_x(KD-UuLo!09DGJEpY*o0DO4 kdV8CeA%Fk^`w^f^C!@K@7G1oE^0}%`iF)_Og8_NzcF|)AC ztOp4Ahll|i-!`@+OS0};zVL;OvB6_(VPlMJ%d(y>OV;spyhHE4U-#QzRaRwZRc2LX z9o=1>`6&`nen)rb*Ogy?`hCCSk3Mt#m9r|&pO4Z1-cSGQy`WP0IQ{Q}$};E6mCw@m zpI=aM|L1;z{`%Fw6tG_UUd3M*y!1V1{hF=sU+`;xz5M+P-1WAXuk+S#e|Ltj-(3GT zT6?^8;hyWg^~w(}46RpxaN(;r(7H%muibFbYc~eg-WxC4d*j8^3aUvQuk4q#@oUSJEAdknBI6a+$#BWxRIMI5D#OXidcwC>v@5o5vZ*mf+ z3nh=QQ1CdB_;K*Ki3b>a0s@3U5j^gRaZibRV%(SEOpiBCj5|s^Na7^S<9XZ{;+P0;VF6m&ac!NQ}!7l|79S z<35Q8BPuE}zCTKg3lWu$R!3Awk_!=)xfD^6gDOmngU3xh!`K%P$i?G2Bu;ufix^ju zxD-^8#dy3DXAu=QsG=dpgJJQk5tZ5Du(&Fsa##wB7cR!Z<2da=z*GeC@i^>FuE$kD zl@t*biN}Kx6*4(}Z!;<^PQpCG-ef@)@VKdG82bVO*?C+?jQdKwZf}y$NurpqGT58y z$apbgT*^^ViE%kc#S`N~j!H6*$3|2bmE(2?0zkk>1aj~=>`f-dRZ5&bs8WdW1bb6M zjH^hTUISO+?!|l~?_g{S2mpbMJf2OAa~aMqlnLXoH{&8IQ9%_Ik8^v|XLIm4&N~n= z6M-x|u0!HB+nY>`YuKBVLLMmjVHH3@9?zR=$VvS8O7OUuXBfKz0-1QciS}k>;ZOeR zO?9qepmbB2qtfzR!$6{;Yj4U9XHbmKClUvbn~cOyK#!Yxh_Ns05lGMDN_&&KsR#v}K93jQN<~f>H@AAT zFniPE@w*XMvHrLN07DT-$K%<=xIy;jtk(3y%4cs9kCPZb0UkH>3}ahBAO(->kT~qk z655-L#KGe@?Lfd(1k&)h$@XTruc6%3uzl@KVsN%hy@|0eAYeHHx;(BU#{IB(5!IWp zH+dm`%I36wq9HXnbaGU<7>6FW{HSC51|y)&kWH{Dj_#o3#T$4?@E-1yUs4cdx85|6j5 zy%`kaZ7_Q?7#UZRcvgE8JZ|gh#=dPqAdbh=iSg?^F)qfb=~|c+ap9ip{iPJ+H{@-l zq90LlW+*FLsRU+kW~$!IYHt=YDMHRQ{}>`l$)v`m1De>)@&9=GE>W0!U! zpyqK|j5pri3b3nqu~*H1Q{{@F$JEshkuc%5Ziq@c057ZfNWg2v~@Kg2&T|@nn1RZEaw0 z-a4y8a5%Fxr!BF)NlN_Wss*$xyuYz!AYcOmVIG%ByhQe<;BboS81`nU9~M{TEG!Nl zx8WpXk2WJ9@puY*v)a5~8oI;{u%V%#M4MbGtQt75{^=5G5k4NHe z^(G6aa1w_ex8p=(mo_5c@VG3-WfF(IDU0#L;Yks5BJIt(!`T9RlLb}4<2Ige?AZ!Z$K$I}2V}>Y#xCtcKue74L{yq)ZxX3d;m3Nm*W+TP86c*QO zPFqwfl^}`hL{!xFCV1TB6O6q9fteW{9#0cd(G%lxM8#ZtlNw{qJ<6AIQiQ7Nhd#ID zepr$AW<=o+kEoCshaSgy2Lh%d;PE)@P4V9ujf$ucn``rUdNJ-yics2{jKsm?rk-K! z3kWzoE|a*;)tf}<%2q0pz1i$s!}!^ojKsm?IMP7CLIl)2?nlP+MpS5UM5CJ1-mI$n zxn)+U@W-}E5uw5#imPxj-nn|Ah4(kM3Hys|oNL+GcTqoC1uHI~< zy{VOJc%)&IBGN}x66{Tv$`^viZ8*=^qn!xE@OWM^E>DV(NgVd37?)?)h1;7RkFS9q zxATl+*XASO^0=Y|zb?i@M5E}Va{YyEQoT7VODh#+3BDx80D%CH`;qay5tT@L^M;Ekkiu7dWZWn559Xm4nBPJiyo#5Fi9( z9#2E!4X@q|ig9H>ER9@4orp?7&1p5NHB(936z}`&ghqc^kPAm7P4T|yk-lPcSxF5ZKSUh2zD{)5U zM&7~L6c7Lc6`#amZ`QliO087pl)8E|$=-w>$2kWAW+T9PJg*opw0g5q_9o4X;G{+u zDf$`)v&Fp*<9AX(oUf$jv=R1Z)5JLK7k_{N5HJz}pT}Wu`oolU#CUtzoBX58$U7LD z0s=sQ@pu|B4ttYiI9r|=&zPe^^eX2X%FSsrS8sCqW*4XLL4OsTcOYOU0>tBL5~stj zY^6eGro7b6X;HmN#wJ_Mv^U*WDj^c5|2zX8H}eQ%S3qDUlE;OF@ub=7?&ORMeN?oY)0WTPOx4#=S%O~zdz0Q-B60Azsb?7b0s14j#v82Lh%dpy2ToB(57#ajQ3l0!~gbbb;zkD*S1v zy~)HlL5)8^00`_#SWheNud33QUAixm_^LPWq zc!Is@I-DAa3d;Ovo{Y*VR5hUN2vPA)(?w5CYx_>5|6WwYW}X{0tf&BlMtwg zVq8t)DlrawGf9jq`lt}p&8*&}r(;SSJZ{p7#a@7bjDQA@!`=*3{gk~qE&pKV_9p*| z{PyE3KmZ6BfIywc^N8`d=CrUk{Z8&W5tX8#ivctF(84s4=J7Qdps2t^Wn`x^zDN`lbpH?XRNiivcD{g)vi*fL{kp~!? z0s@49$Kz@-t|W2YTtkEG&3a$M#jL`WoFqUN-vus7!(TQN^GSJ`!It2gO2@Q4cZ zxPQar|AByk2uM7x6ypuEH}{p#-Ylw>N|3~LA}W#gCYhYR!F@qIT32PofsNh9q|9Wg#fP8c`X-Xu;Z5(kgR90Pm{2(&c< z9*@gn9QLN%*RW0PO-AD9)-7u5I~6Y;2mpa71Y90hit*gJhJIK)EXEamRBpLM-Ad)Q zSslV^O+=;r?M?7_)ZLG-0|7G-sHk&PGTEDZZ@QQwvwZnHuF*=RVfN;s^4Xh3wNg>% zsJML%#o#z6ap-X~PAql-1Y`s%azrK4-n`)=YJ-x3*|U4zHvn;u^Q0)`==;BhxHUiUV=68tnIPJ}`{4trB4*RbB4mRi(?`_tyC z-sJWsDRH(8yLYi2AOHjy0%0C6)ZPq=ab*dP=CJgU4~;fq=mXNIc#|dy@>$M%kNpTq+g*C~^(u>P_YN&BQd7V8XagE0q-0 zo4RA$R0-n_mHT3xE)2epu{9uIGXen~*Ae4xSllh(yy;>xHrXOU%9kG**RVGW66139 zChSdFjCX;@Z9eGOyU_>)dAx~Ye7_{dVQ>0P4I>9A(}!gSdy`3W@VLZgbiK?M)`ep~rFDfq!n;ws^ zN8TY$JrFPxfr_>mzj*JB>O?~#9owomY0EldJmsW_f~z-qSlr?9_0BT$7RIiCfb|Ge zUR8>5p^r)%+nYa}LtVwiB^UlA1c2_Copm;(UA5g;DV)k?*$`U&Q!sK)(7 z+MB_aSn*Z(>KqkRZ~BuWSWG+|8F$4v^tjNS>x*&O-lV}1Wt+Wu)QhFCh|1h!D-=N$bwp)lAVI|=aW73pFGs~~ zr9!M7TE*I%OpJraEj{Acwgm`OBE)zki4)`aJl-bu=AAUHjjg%a#{JNi8&JI&*<@Tz z;;C{C{e*Fs!JUW-TNd2U*dh?H5doLS%V2NbHk;bgvL%XBb>YtsGmdRDu6k3;-t>5U z1AI;!PdN5$0|H?lcl#P9i1B?lCntkPl3B|!fYk#VUN-6A3C)ZFkSJ|~X z*D%-&D@(4Sip1#|brQyD{HBvLzAl};Njy$s9D3ZQbB(>)g@DK7I$~V5H}^>--g0}h zs8%XL64!~SMB1CDR#S>0TMeHS;fKZRxrUs?!Q*zFZ0y!11hjbE7vmZUiyAW`AJYJ0Z zBp!^Ys3t{}+TJ8WU+yip6PAAUrj8gdwY>=*x9dz}xAq}Wi6?PVraq5ri1FObX_*)g zCmJfo{ZJiHU|<^?-WD9&W_$G}w>QD#_ML0&*e(PTc-$v(9Wg$OdZ&oX>7x>y+15d> zCSR(cN{Wbz#N$B{*NCW4TNPDMB^ViZ5)GRiQK1hr@-ss#kG%;Vx9dz}xAq}GJf6CG zvyt|u)})9d5{bj!47E}b?M?8wediiGwhMtc9{0t#MnnbnX8MG2(%m|_hWYJHkHGqX7kR|EOyaONMQqu%98saKhrCU%debT3T*Oz*xF6QkP#GB~5~s(< zA0Pk(j6}fW@et7vk2kk^Qz6C=hsF4uQrnvp9}l-uX>s*tU6OBH3?4V~^kP#$fFYpZ zakUs%mf*LYy}4X5vyDE(jI7=iBP#538aF)<00KrL;PAL8#?>UQs@{xjrE=S>4q?Sd z#?=Yqiozd-7?%^qvsK{-6UGa!-t1hnP=uGR)sb;!!njsM#c!qJb{MZ~aKYZ>FTlt< z7@GnDKp=|8HSEoT#5nBDvzcaZ>f4*(ah!7?U^W63e#q%UUyRGGRA6uVO${RlC=5eV}*>`gh>P#E_kHK%O{dlNiv?eWIOEkU5p<7zQpoV|JA_Su|J z=t3PC59g@p^uy9=rJ}YsgOTwTv{I2HDqgOkkZ72;IjwAOa@Z}or?E{SU>gD+kE=-> z_9pcfXKR)A%(m4F$=fW0y~%P7If>H+{r~|WU?c(|9*4a-pDH%RP)2$+h1!{c(U zA=PTiOWm9{IPnM7o1zM)>*iN)%JwD`Z)NNb2w00ifX8KTGqO1??9J6~KddHKZ?0dg zNHpBwjERV`H#wVIdzWM5K)`GS1RgI=jE8bIY@5AF+m{P}2y*EJFtHNJ! za+R~pus3}kUt;lnj;#X$lM(QFTq(xOU~k@8&g#v`CgbWHl~lQgfv~t=g6~FD6hRfe zhzg1EzD?k9lTR}CW-|gVk1I($mA!e}Y%(_45`!u!n$yDGY?!^tNW5<|c--cbj=h_V zfWzZ*M8#rz)9Y)f6H#eibJ~3NCMj`efyYfg$k?0J2vqjv7vm}=PO3bG7{7DQk>Cop zQYo?@)^RB;?nTCPH>b^PZx%Qyg7q~N9ZoLB!Q)mRbZp*e1S+x^H`LyoM-1+exWwbx zCPj$hBX+HhjJK|OliQob;A|OvCu4I!z+MDYJPv!4XR54TaLQeYGnCaNUJiQ`JZ|s# z#?I|PAk5?Y+t1#ddu+u#Sskl$4TH0Ovg8`7#{FnURQ%bSxtr6vg+HM!$46A4$L%=I z*rlZiNIYJQ7{Bz;9pQC2JVSZT5h+K7qU26wJoluCAc^ZlR3hz7(&N4uZ%r!|Z*KC2 z#q|r_Ttm;^gdVr_aAVunAQ0g3bYi^W_9hYf+=NLHs;VCns>fFnck|_h#Ut&_RE0k| z#JF6&*))5T@pwP-RjfJH*r;s?)Oozr_9hYfa&M)q-qaD}W>#-<84ez|?NnpGwjm(! zcY-7LnAmH)1 zPDG{UtyBU^oO-ILf-1qtcncyb^kGJRW@x$nuv%tsg2(MS&)BJ*2>3jnTa3F^KeJ(P zrt51M-AbkIYI27&tG&s@IP|!kCmg%B0Re}{b;Nl50A&_YIVk0*917>C=tNXtZ>pM% zD@lCgEI89YSd;BhMsG&X4^0%0DPNgVbjeNcs#Jnn~nAmnX&)tgZhe*%&5#og4= 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%0A=Uj#IGJc-1K%1^HQH`USZ2B9#p`VFJ_3S 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 Date: Fri, 8 May 2026 16:56:00 +0200 Subject: [PATCH 102/148] SES-508 fix syncstate icons --- src/gui/basetheme.h | 20 ++++++++++++++++---- src/gui/folderstatusmodel.cpp | 11 ++++++----- src/gui/tray/activitylistmodel.cpp | 6 +++--- src/gui/tray/syncstatussummary.cpp | 13 +++++++------ theme/colored/state-warning.svg | 7 +++---- 5 files changed, 35 insertions(+), 22 deletions(-) diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h index 1d8ff5fe0d9fd..310bceeb95d47 100644 --- a/src/gui/basetheme.h +++ b/src/gui/basetheme.h @@ -156,12 +156,24 @@ class BaseTheme : public QObject{ return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-chevron.svg"); } - virtual QString syncSuccessIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); + virtual QString syncSuccessIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); } - virtual QString syncErrorIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); + virtual QString syncErrorIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); + } + + virtual QString syncPausedIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-paused.svg"); + } + + virtual QString syncWarningIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-warning.svg"); + } + + virtual QString syncSyncingIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-syncing.svg"); } virtual QString syncOfflineIcon(QString context = "qml") const { diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 42a27bf6e6d2f..c575de7553815 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -5,6 +5,7 @@ */ #include "folderstatusmodel.h" +#include "whitelabeltheme.h" #include "accountstate.h" #include "common/asserts.h" #include "common/utility.h" @@ -286,17 +287,17 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const const auto status = result.status(); if (folder->syncPaused()) { - return theme->folderStateIcon(SyncResult::Paused); + return QIcon(WLTheme.syncPausedIcon("cpp")); } if (status == SyncResult::SyncPrepare || status == SyncResult::Undefined) { - return theme->folderStateIcon(SyncResult::SyncRunning); + return QIcon(WLTheme.syncSyncingIcon("cpp")); } if (status == SyncResult::Success || status == SyncResult::Problem) { - return theme->folderStateIcon(result.hasUnresolvedConflicts() - ? SyncResult::Problem - : SyncResult::Success); + return result.hasUnresolvedConflicts() + ? QIcon(WLTheme.syncWarningIcon("cpp")) + : QIcon(WLTheme.syncSuccessIcon("cpp")); } return theme->folderStateIcon(status); diff --git a/src/gui/tray/activitylistmodel.cpp b/src/gui/tray/activitylistmodel.cpp index 56d007937b5ce..e86fc216a7f10 100644 --- a/src/gui/tray/activitylistmodel.cpp +++ b/src/gui/tray/activitylistmodel.cpp @@ -226,14 +226,14 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const if (a._type == Activity::NotificationType && !a._talkNotificationData.userAvatar.isEmpty()) { return QStringLiteral("image://svgimage-custom-color/talk-bordered.svg"); } else if (a._type == Activity::SyncResultType) { - colorIconPath.append("state-ok.svg"); + colorIconPath = WLTheme.syncSuccessIcon(); return colorIconPath; } else if (a._type == Activity::SyncFileItemType) { if (a._syncFileItemStatus == SyncFileItem::NormalError || a._syncFileItemStatus == SyncFileItem::FatalError || a._syncFileItemStatus == SyncFileItem::DetailError || a._syncFileItemStatus == SyncFileItem::BlacklistedError) { - colorIconPath.append("state-error.svg"); + colorIconPath = WLTheme.syncErrorIcon(); return colorIconPath; } else if (a._syncFileItemStatus == SyncFileItem::SoftError || a._syncFileItemStatus == SyncFileItem::Conflict @@ -242,7 +242,7 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const || a._syncFileItemStatus == SyncFileItem::FileNameInvalid || a._syncFileItemStatus == SyncFileItem::FileNameInvalidOnServer || a._syncFileItemStatus == SyncFileItem::FileNameClash) { - colorIconPath.append("state-warning.svg"); + colorIconPath = WLTheme.syncWarningIcon(); return colorIconPath; } else if (a._syncFileItemStatus == SyncFileItem::FileIgnored) { colorIconPath = WLTheme.infoIcon(); diff --git a/src/gui/tray/syncstatussummary.cpp b/src/gui/tray/syncstatussummary.cpp index ce82c97f4feff..a6a935c48b2bf 100644 --- a/src/gui/tray/syncstatussummary.cpp +++ b/src/gui/tray/syncstatussummary.cpp @@ -4,6 +4,7 @@ */ #include "syncstatussummary.h" +#include "whitelabeltheme.h" #include "accountfwd.h" #include "accountstate.h" #include "folderman.h" @@ -161,7 +162,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setTotalFiles(0); setSyncStatusString(tr("Offline")); setSyncStatusDetailString(""); - setSyncIcon(Theme::instance()->offline()); + setSyncIcon(WLTheme.syncOfflineIcon()); return; } @@ -178,7 +179,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setTotalFiles(0); setSyncStatusString(tr("All synced!")); setSyncStatusDetailString(""); - setSyncIcon(Theme::instance()->ok()); + setSyncIcon(WLTheme.syncSuccessIcon()); } break; case SyncResult::Error: @@ -187,7 +188,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setTotalFiles(0); setSyncStatusString(tr("Some files couldn't be synced!")); setSyncStatusDetailString(tr("See below for errors")); - setSyncIcon(Theme::instance()->error()); + setSyncIcon(WLTheme.syncErrorIcon()); break; case SyncResult::SyncRunning: case SyncResult::NotYetStarted: @@ -198,7 +199,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setSyncStatusString(tr("Syncing changes")); } setSyncStatusDetailString(""); - setSyncIcon(Theme::instance()->sync()); + setSyncIcon(WLTheme.syncSyncingIcon()); break; case SyncResult::Paused: case SyncResult::SyncAbortRequested: @@ -206,7 +207,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setTotalFiles(0); setSyncStatusString(tr("Sync paused")); setSyncStatusDetailString(""); - setSyncIcon(Theme::instance()->pause()); + setSyncIcon(WLTheme.syncPausedIcon()); break; case SyncResult::Problem: case SyncResult::Undefined: @@ -214,7 +215,7 @@ void SyncStatusSummary::setSyncState(const SyncResult::Status state) setTotalFiles(0); setSyncStatusString(tr("Some files could not be synced!")); setSyncStatusDetailString(tr("See below for warnings")); - setSyncIcon(Theme::instance()->warning()); + setSyncIcon(WLTheme.syncWarningIcon()); break; } } diff --git a/theme/colored/state-warning.svg b/theme/colored/state-warning.svg index ab3b6db9175e2..32363111058db 100644 --- a/theme/colored/state-warning.svg +++ b/theme/colored/state-warning.svg @@ -1,10 +1,9 @@ - - - + + - + From 2c872c797325e112fc13f4e8bba44aa9f286b487 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Fri, 8 May 2026 17:11:58 +0200 Subject: [PATCH 103/148] SES-508 simplify setting icons in settings --- src/gui/basetheme.h | 20 ++++++++++---------- src/gui/folderstatusmodel.cpp | 14 +++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h index 310bceeb95d47..f9bc5727d4b9f 100644 --- a/src/gui/basetheme.h +++ b/src/gui/basetheme.h @@ -156,24 +156,24 @@ class BaseTheme : public QObject{ return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-chevron.svg"); } - virtual QString syncSuccessIcon(QString context = "qml") const { - return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); + virtual QString syncSuccessIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); } - virtual QString syncErrorIcon(QString context = "qml") const { - return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); + virtual QString syncErrorIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); } - virtual QString syncPausedIcon(QString context = "qml") const { - return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-paused.svg"); + virtual QString syncPausedIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-paused.svg"); } - virtual QString syncWarningIcon(QString context = "qml") const { - return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-warning.svg"); + virtual QString syncWarningIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-warning.svg"); } - virtual QString syncSyncingIcon(QString context = "qml") const { - return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-syncing.svg"); + virtual QString syncSyncingIcon() const { + return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-syncing.svg"); } virtual QString syncOfflineIcon(QString context = "qml") const { diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index c575de7553815..3857b45094f47 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -279,7 +279,7 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const } case FolderStatusDelegate::FolderStatusIconRole: { if (!accountConnected) { - return Theme::instance()->folderStateIcon(SyncResult::SetupError); + return Theme::instance()->syncStateIcon(SyncResult::SetupError); } const auto theme = Theme::instance(); @@ -287,20 +287,20 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const const auto status = result.status(); if (folder->syncPaused()) { - return QIcon(WLTheme.syncPausedIcon("cpp")); + return theme->syncStateIcon(SyncResult::Paused); } if (status == SyncResult::SyncPrepare || status == SyncResult::Undefined) { - return QIcon(WLTheme.syncSyncingIcon("cpp")); + return theme->syncStateIcon(SyncResult::SyncRunning); } if (status == SyncResult::Success || status == SyncResult::Problem) { - return result.hasUnresolvedConflicts() - ? QIcon(WLTheme.syncWarningIcon("cpp")) - : QIcon(WLTheme.syncSuccessIcon("cpp")); + return theme->syncStateIcon(result.hasUnresolvedConflicts() + ? SyncResult::Problem + : SyncResult::Success); } - return theme->folderStateIcon(status); + return theme->syncStateIcon(status); } case FolderStatusDelegate::SyncProgressItemString: // e.g. Syncing fileName1, filename2 From 8cc5ac3ec2578cf6bb6b4c2e6e4032eb23b3699e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 12 May 2026 14:50:37 +0200 Subject: [PATCH 104/148] SES-508 - all icons the same --- src/gui/basetheme.h | 20 ++++++++--------- src/gui/folderstatusmodel.cpp | 39 +++++++++++++++++++++++++++----- src/gui/owncloudgui.cpp | 42 +++++++++++++++++++++++++++++++++-- 3 files changed, 83 insertions(+), 18 deletions(-) diff --git a/src/gui/basetheme.h b/src/gui/basetheme.h index f9bc5727d4b9f..310bceeb95d47 100644 --- a/src/gui/basetheme.h +++ b/src/gui/basetheme.h @@ -156,24 +156,24 @@ class BaseTheme : public QObject{ return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-chevron.svg"); } - virtual QString syncSuccessIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); + virtual QString syncSuccessIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-success.svg"); } - virtual QString syncErrorIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); + virtual QString syncErrorIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-error.svg"); } - virtual QString syncPausedIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-paused.svg"); + virtual QString syncPausedIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-paused.svg"); } - virtual QString syncWarningIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-warning.svg"); + virtual QString syncWarningIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-warning.svg"); } - virtual QString syncSyncingIcon() const { - return themePrefix() + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-syncing.svg"); + virtual QString syncSyncingIcon(QString context = "qml") const { + return themePrefix(context) + _sesFolder + additionalThemePrefix() + QStringLiteral("ses-syncstate-syncing.svg"); } virtual QString syncOfflineIcon(QString context = "qml") const { diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 3857b45094f47..6866d7aa2d040 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -279,7 +279,11 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const } case FolderStatusDelegate::FolderStatusIconRole: { if (!accountConnected) { - return Theme::instance()->syncStateIcon(SyncResult::SetupError); +#ifdef IONOS_BUILD + return QIcon(WLTheme.syncOfflineIcon("cpp")); +#else + return Theme::instance()->folderStateIcon(SyncResult::SetupError); +#endif } const auto theme = Theme::instance(); @@ -287,20 +291,43 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const const auto status = result.status(); if (folder->syncPaused()) { +#ifdef IONOS_BUILD + return QIcon(WLTheme.syncPausedIcon("cpp")); +#else return theme->syncStateIcon(SyncResult::Paused); +#endif } if (status == SyncResult::SyncPrepare || status == SyncResult::Undefined) { - return theme->syncStateIcon(SyncResult::SyncRunning); +#ifdef IONOS_BUILD + return QIcon(WLTheme.syncSyncingIcon("cpp")); +#else + return theme->syncStateIcon(status); +#endif } if (status == SyncResult::Success || status == SyncResult::Problem) { - return theme->syncStateIcon(result.hasUnresolvedConflicts() - ? SyncResult::Problem - : SyncResult::Success); +#ifdef IONOS_BUILD + return result.hasUnresolvedConflicts() + ? QIcon(WLTheme.syncWarningIcon("cpp")) + : QIcon(WLTheme.syncSuccessIcon("cpp")); +#else + return theme->folderStateIcon(status); +#endif + } + +#ifdef IONOS_BUILD + if (status == SyncResult::NotYetStarted + || status == SyncResult::SyncRunning + || status == SyncResult::SyncAbortRequested) { + return QIcon(WLTheme.syncSyncingIcon("cpp")); } - return theme->syncStateIcon(status); + if (status == SyncResult::Error || status == SyncResult::SetupError) { + return QIcon(WLTheme.syncErrorIcon("cpp")); + } +#endif + return theme->folderStateIcon(status); } case FolderStatusDelegate::SyncProgressItemString: // e.g. Syncing fileName1, filename2 diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index e757f241a531c..9170b4ad79ce3 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -356,7 +356,11 @@ void ownCloudGui::slotComputeOverallSyncStatus() #endif if (!problemAccounts.empty()) { +#ifdef IONOS_BUILD + _tray->setIcon(QIcon(WLTheme.syncOfflineIcon("tray"))); +#else _tray->setIcon(Theme::instance()->folderOfflineIcon(true)); +#endif #ifdef Q_OS_WIN // Windows has a 128-char tray tooltip length limit. QStringList accountNames; @@ -381,11 +385,19 @@ void ownCloudGui::slotComputeOverallSyncStatus() } if (allSignedOut) { +#ifdef IONOS_BUILD + _tray->setIcon(QIcon(WLTheme.syncOfflineIcon("tray"))); +#else _tray->setIcon(Theme::instance()->folderOfflineIcon(true)); +#endif _tray->setToolTip(tr("Please sign in")); return; } else if (allPaused) { +#ifdef IONOS_BUILD + _tray->setIcon(QIcon(WLTheme.syncPausedIcon("tray"))); +#else _tray->setIcon(Theme::instance()->syncStateIcon(SyncResult::Paused, true)); +#endif _tray->setToolTip(tr("Account synchronization is disabled")); return; } @@ -430,8 +442,34 @@ void ownCloudGui::slotComputeOverallSyncStatus() iconStatus = SyncResult::Problem; } - QIcon statusIcon = Theme::instance()->syncStateIcon(iconStatus, true); - _tray->setIcon(statusIcon); +#ifdef IONOS_BUILD + QString statusIconPath; + switch (iconStatus) { + case SyncResult::NotYetStarted: + case SyncResult::SyncPrepare: + case SyncResult::SyncRunning: + statusIconPath = WLTheme.syncSyncingIcon("tray"); + break; + case SyncResult::SyncAbortRequested: + case SyncResult::Paused: + statusIconPath = WLTheme.syncPausedIcon("tray"); + break; + case SyncResult::Success: + statusIconPath = WLTheme.syncSuccessIcon("tray"); + break; + case SyncResult::Problem: + statusIconPath = WLTheme.syncWarningIcon("tray"); + break; + case SyncResult::Error: + case SyncResult::SetupError: + default: + statusIconPath = WLTheme.syncErrorIcon("tray"); + break; + } + _tray->setIcon(QIcon(statusIconPath)); +#else + _tray->setIcon(Theme::instance()->syncStateIcon(iconStatus, true)); +#endif // create the tray blob message, check if we have an defined state #ifdef BUILD_FILE_PROVIDER_MODULE From 7f9526fd8bed6d0c9aedafc00f38a02490d113c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 12 May 2026 15:00:42 +0200 Subject: [PATCH 105/148] SES-508 - reduces changes --- src/gui/folderstatusmodel.cpp | 58 ++++++++++++++++------------------- src/gui/owncloudgui.cpp | 46 +++++++++++++-------------- 2 files changed, 49 insertions(+), 55 deletions(-) diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 6866d7aa2d040..494628091f064 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -278,12 +278,31 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const return toolTip; } case FolderStatusDelegate::FolderStatusIconRole: { - if (!accountConnected) { #ifdef IONOS_BUILD + if (!accountConnected) return QIcon(WLTheme.syncOfflineIcon("cpp")); -#else - return Theme::instance()->folderStateIcon(SyncResult::SetupError); + { + const auto result = folder->syncResult(); + const auto status = result.status(); + if (folder->syncPaused()) + return QIcon(WLTheme.syncPausedIcon("cpp")); + switch (status) { + case SyncResult::NotYetStarted: + case SyncResult::SyncPrepare: + case SyncResult::SyncRunning: + case SyncResult::SyncAbortRequested: + case SyncResult::Undefined: + return QIcon(WLTheme.syncSyncingIcon("cpp")); + case SyncResult::Success: + case SyncResult::Problem: + return QIcon(result.hasUnresolvedConflicts() ? WLTheme.syncWarningIcon("cpp") : WLTheme.syncSuccessIcon("cpp")); + default: + return QIcon(WLTheme.syncErrorIcon("cpp")); + } + } #endif + if (!accountConnected) { + return Theme::instance()->folderStateIcon(SyncResult::SetupError); } const auto theme = Theme::instance(); @@ -291,42 +310,19 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const const auto status = result.status(); if (folder->syncPaused()) { -#ifdef IONOS_BUILD - return QIcon(WLTheme.syncPausedIcon("cpp")); -#else - return theme->syncStateIcon(SyncResult::Paused); -#endif + return theme->folderStateIcon(SyncResult::Paused); } if (status == SyncResult::SyncPrepare || status == SyncResult::Undefined) { -#ifdef IONOS_BUILD - return QIcon(WLTheme.syncSyncingIcon("cpp")); -#else - return theme->syncStateIcon(status); -#endif + return theme->folderStateIcon(SyncResult::SyncRunning); } if (status == SyncResult::Success || status == SyncResult::Problem) { -#ifdef IONOS_BUILD - return result.hasUnresolvedConflicts() - ? QIcon(WLTheme.syncWarningIcon("cpp")) - : QIcon(WLTheme.syncSuccessIcon("cpp")); -#else - return theme->folderStateIcon(status); -#endif + return theme->folderStateIcon(result.hasUnresolvedConflicts() + ? SyncResult::Problem + : SyncResult::Success); } -#ifdef IONOS_BUILD - if (status == SyncResult::NotYetStarted - || status == SyncResult::SyncRunning - || status == SyncResult::SyncAbortRequested) { - return QIcon(WLTheme.syncSyncingIcon("cpp")); - } - - if (status == SyncResult::Error || status == SyncResult::SetupError) { - return QIcon(WLTheme.syncErrorIcon("cpp")); - } -#endif return theme->folderStateIcon(status); } case FolderStatusDelegate::SyncProgressItemString: diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 9170b4ad79ce3..08485d93e338c 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -285,6 +285,27 @@ void ownCloudGui::slotNeedToAcceptTermsOfService(const OCC::AccountPtr &account, } } +#ifdef IONOS_BUILD +static QIcon trayIconForStatus(SyncResult::Status status) +{ + switch (status) { + case SyncResult::NotYetStarted: + case SyncResult::SyncPrepare: + case SyncResult::SyncRunning: + return QIcon(WLTheme.syncSyncingIcon("tray")); + case SyncResult::SyncAbortRequested: + case SyncResult::Paused: + return QIcon(WLTheme.syncPausedIcon("tray")); + case SyncResult::Success: + return QIcon(WLTheme.syncSuccessIcon("tray")); + case SyncResult::Problem: + return QIcon(WLTheme.syncWarningIcon("tray")); + default: + return QIcon(WLTheme.syncErrorIcon("tray")); + } +} +#endif + void ownCloudGui::slotComputeOverallSyncStatus() { bool allSignedOut = true; @@ -443,30 +464,7 @@ void ownCloudGui::slotComputeOverallSyncStatus() } #ifdef IONOS_BUILD - QString statusIconPath; - switch (iconStatus) { - case SyncResult::NotYetStarted: - case SyncResult::SyncPrepare: - case SyncResult::SyncRunning: - statusIconPath = WLTheme.syncSyncingIcon("tray"); - break; - case SyncResult::SyncAbortRequested: - case SyncResult::Paused: - statusIconPath = WLTheme.syncPausedIcon("tray"); - break; - case SyncResult::Success: - statusIconPath = WLTheme.syncSuccessIcon("tray"); - break; - case SyncResult::Problem: - statusIconPath = WLTheme.syncWarningIcon("tray"); - break; - case SyncResult::Error: - case SyncResult::SetupError: - default: - statusIconPath = WLTheme.syncErrorIcon("tray"); - break; - } - _tray->setIcon(QIcon(statusIconPath)); + _tray->setIcon(trayIconForStatus(iconStatus)); #else _tray->setIcon(Theme::instance()->syncStateIcon(iconStatus, true)); #endif From e70dd14afce63d2426a31e2a43857d6b8dcb413d Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 13 May 2026 09:12:26 +0200 Subject: [PATCH 106/148] use correct strato macOS icon --- .../strato-hidrive-next-macOS-icon.svg | 29 ++----------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/theme/colored/strato-hidrive-next-macOS-icon.svg b/theme/colored/strato-hidrive-next-macOS-icon.svg index c7e0c87b90b2d..4665637f6ddb3 100644 --- a/theme/colored/strato-hidrive-next-macOS-icon.svg +++ b/theme/colored/strato-hidrive-next-macOS-icon.svg @@ -1,27 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + From 061ffd75c7028441d26bae816e88137a77b7e117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 13 May 2026 10:34:51 +0200 Subject: [PATCH 107/148] NoIssue - Strato launchsettings --- .vscode/launch.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 7957174658135..ebf989268ef95 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -47,7 +47,7 @@ ] }, { - "name": "(RelWithDebInfo) Launch HiDriveNext", + "name": "(RelWithDebInfo) Launch IONOS HiDriveNext", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/ionos-hidrive-next.exe", @@ -63,6 +63,23 @@ { "name": "QT_LOGGING_RULES", "value": "qt.qml.debug=true" } ], }, + { + "name": "(RelWithDebInfo) Launch STRATO HiDriveNext", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/strato-hidrive-next.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "PATH", + "value": "C:/CraftRoot/bin;C:/Craft64/bin;%PATH%" + }, + { "name": "QML_IMPORT_TRACE", "value": "1" }, + { "name": "QT_LOGGING_RULES", "value": "qt.qml.debug=true" } + ], + }, { "name": "(RelWithDebInfo) Launch NextCloud", "type": "cppvsdbg", From 329df99b792d7bc50d0131ae7a2a3960f561b99c Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 6 May 2026 16:15:27 +0200 Subject: [PATCH 108/148] wip switch to strato packages --- .vscode/launch.json | 2 +- .vscode/settings.json | 2 +- src/gui/ConflictDelegate.qml | 2 +- src/gui/EmojiPicker.qml | 2 +- src/gui/ResolveConflictsDialog.qml | 2 +- src/gui/SesComponents/SesTrayHeader.qml | 2 +- src/gui/UserStatusMessageView.qml | 2 +- src/gui/UserStatusSelectorPage.qml | 2 +- src/gui/UserStatusSetStatusView.qml | 2 +- src/gui/filedetails/FileActivityView.qml | 2 +- src/gui/filedetails/FileDetailsPage.qml | 2 +- src/gui/filedetails/FileDetailsView.qml | 2 +- src/gui/filedetails/FileDetailsWindow.qml | 2 +- src/gui/filedetails/NCInputDateField.qml | 2 +- src/gui/filedetails/NCInputTextArea.qml | 2 +- src/gui/filedetails/NCInputTextField.qml | 2 +- src/gui/filedetails/NCTabButton.qml | 2 +- src/gui/filedetails/ShareDelegate.qml | 2 +- src/gui/filedetails/ShareDetailsPage.qml | 2 +- src/gui/filedetails/ShareView.qml | 2 +- src/gui/filedetails/ShareeDelegate.qml | 2 +- src/gui/filedetails/ShareeSearchField.qml | 4 +- .../macOS/ui/FileProviderEvictionDialog.qml | 2 +- src/gui/macOS/ui/FileProviderFileDelegate.qml | 2 +- src/gui/macOS/ui/FileProviderSettings.qml | 2 +- src/gui/macOS/ui/FileProviderStorageInfo.qml | 2 +- src/gui/macOS/ui/FileProviderSyncStatus.qml | 2 +- src/gui/owncloudgui.cpp | 54 +++++++++---------- src/gui/tray/AccountMenuItem.qml | 2 +- src/gui/tray/ActivityItem.qml | 2 +- src/gui/tray/ActivityItemActions.qml | 2 +- src/gui/tray/ActivityItemContent.qml | 2 +- src/gui/tray/ActivityList.qml | 2 +- src/gui/tray/CallNotificationDialog.qml | 2 +- src/gui/tray/CurrentAccountHeaderButton.qml | 2 +- src/gui/tray/EditFileLocallyLoadingDialog.qml | 2 +- .../tray/EncryptionTokenDiscoveryDialog.qml | 2 +- src/gui/tray/HeaderButton.qml | 2 +- src/gui/tray/HeaderLogo.qml | 2 +- src/gui/tray/IconButton.qml | 2 +- src/gui/tray/MainWindow.qml | 2 +- src/gui/tray/PrimaryPillButton.qml | 2 +- src/gui/tray/SecondaryPillButton.qml | 2 +- src/gui/tray/SyncStatus.qml | 2 +- src/gui/tray/TalkReplyTextField.qml | 2 +- src/gui/tray/TrayWindowAccountMenu.qml | 2 +- src/gui/tray/TrayWindowHeader.qml | 2 +- src/gui/tray/TrayWindowHeaderBar.qml | 2 +- src/gui/tray/UnifiedSearchInputContainer.qml | 2 +- src/gui/tray/UnifiedSearchResultListItem.qml | 2 +- .../tray/UnifiedSearchResultSectionItem.qml | 2 +- src/gui/tray/UserLine.qml | 2 +- switch_qml_imports.py | 4 +- theme/Style/Style.qml | 2 +- translation_scripts/merge_translation.py | 8 +-- 55 files changed, 86 insertions(+), 86 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index ebf989268ef95..c2c1566fe015c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -50,7 +50,7 @@ "name": "(RelWithDebInfo) Launch IONOS HiDriveNext", "type": "cppvsdbg", "request": "launch", - "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/ionos-hidrive-next.exe", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/strato-hidrive-next.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", diff --git a/.vscode/settings.json b/.vscode/settings.json index 837a4a517af53..12ab43306bfcf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "BUILD_TESTING":"OFF", "LOCALBUILD": "ON", - "WHITELABEL_NAME": "ionos", + "WHITELABEL_NAME": "strato", "CMAKE_CXX_CLANG_TIDY": "", "DO_NOT_USE_PROXY": "ON", }, diff --git a/src/gui/ConflictDelegate.qml b/src/gui/ConflictDelegate.qml index 36a777e85e9e5..250f0b753b3ca 100644 --- a/src/gui/ConflictDelegate.qml +++ b/src/gui/ConflictDelegate.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import "./tray" Item { diff --git a/src/gui/EmojiPicker.qml b/src/gui/EmojiPicker.qml index 87f490c0f11e8..b71f84578fea5 100644 --- a/src/gui/EmojiPicker.qml +++ b/src/gui/EmojiPicker.qml @@ -8,7 +8,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC import "./tray" ColumnLayout { diff --git a/src/gui/ResolveConflictsDialog.qml b/src/gui/ResolveConflictsDialog.qml index 91754479a15eb..604ed781d9bbe 100644 --- a/src/gui/ResolveConflictsDialog.qml +++ b/src/gui/ResolveConflictsDialog.qml @@ -10,7 +10,7 @@ import QtQuick.Layouts import QtQuick.Controls import QtQml.Models import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import "./tray" ApplicationWindow { diff --git a/src/gui/SesComponents/SesTrayHeader.qml b/src/gui/SesComponents/SesTrayHeader.qml index 52d62e6d8225e..8bcaf793df0e0 100644 --- a/src/gui/SesComponents/SesTrayHeader.qml +++ b/src/gui/SesComponents/SesTrayHeader.qml @@ -11,7 +11,7 @@ import "../tray/" // Custom qml modules are in /theme (and included by resources.qrc) import Style 1.0 -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Rectangle { diff --git a/src/gui/UserStatusMessageView.qml b/src/gui/UserStatusMessageView.qml index 511326b8a383c..a9da3f760c948 100644 --- a/src/gui/UserStatusMessageView.qml +++ b/src/gui/UserStatusMessageView.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import QtQuick.Controls import QtQuick.Window -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC import Style import "./tray" diff --git a/src/gui/UserStatusSelectorPage.qml b/src/gui/UserStatusSelectorPage.qml index 59cf7f9637da5..a03ef5483c3fe 100644 --- a/src/gui/UserStatusSelectorPage.qml +++ b/src/gui/UserStatusSelectorPage.qml @@ -8,7 +8,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC Page { id: page diff --git a/src/gui/UserStatusSetStatusView.qml b/src/gui/UserStatusSetStatusView.qml index 04bc304956c56..cc325498dda32 100644 --- a/src/gui/UserStatusSetStatusView.qml +++ b/src/gui/UserStatusSetStatusView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC import Style import "./tray" diff --git a/src/gui/filedetails/FileActivityView.qml b/src/gui/filedetails/FileActivityView.qml index 938c6ebc95ce2..b57a4ced7bba8 100644 --- a/src/gui/filedetails/FileActivityView.qml +++ b/src/gui/filedetails/FileActivityView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/FileDetailsPage.qml b/src/gui/filedetails/FileDetailsPage.qml index e353dd44e54bb..84e626f0ea376 100644 --- a/src/gui/filedetails/FileDetailsPage.qml +++ b/src/gui/filedetails/FileDetailsPage.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/FileDetailsView.qml b/src/gui/filedetails/FileDetailsView.qml index 1c0e82c982bd9..cf872047934e1 100644 --- a/src/gui/filedetails/FileDetailsView.qml +++ b/src/gui/filedetails/FileDetailsView.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style StackView { diff --git a/src/gui/filedetails/FileDetailsWindow.qml b/src/gui/filedetails/FileDetailsWindow.qml index f6de351f7fea2..8d4c76e3d959c 100644 --- a/src/gui/filedetails/FileDetailsWindow.qml +++ b/src/gui/filedetails/FileDetailsWindow.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style ApplicationWindow { diff --git a/src/gui/filedetails/NCInputDateField.qml b/src/gui/filedetails/NCInputDateField.qml index c06702b866e60..c9c339c7d7c4f 100644 --- a/src/gui/filedetails/NCInputDateField.qml +++ b/src/gui/filedetails/NCInputDateField.qml @@ -5,7 +5,7 @@ import QtQuick import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient NCInputTextField { id: root diff --git a/src/gui/filedetails/NCInputTextArea.qml b/src/gui/filedetails/NCInputTextArea.qml index acd885cabc227..dd310e6728b0e 100644 --- a/src/gui/filedetails/NCInputTextArea.qml +++ b/src/gui/filedetails/NCInputTextArea.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style TextArea { diff --git a/src/gui/filedetails/NCInputTextField.qml b/src/gui/filedetails/NCInputTextField.qml index 55a728b53b7ac..f22ee1018e5b9 100644 --- a/src/gui/filedetails/NCInputTextField.qml +++ b/src/gui/filedetails/NCInputTextField.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style TextField { diff --git a/src/gui/filedetails/NCTabButton.qml b/src/gui/filedetails/NCTabButton.qml index 542eca6953740..b70d8a9f5c6b9 100644 --- a/src/gui/filedetails/NCTabButton.qml +++ b/src/gui/filedetails/NCTabButton.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/ShareDelegate.qml b/src/gui/filedetails/ShareDelegate.qml index aa280322fb2be..901a28f9c07d7 100644 --- a/src/gui/filedetails/ShareDelegate.qml +++ b/src/gui/filedetails/ShareDelegate.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import QtQuick.Controls import Qt5Compat.GraphicalEffects -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" import "../" diff --git a/src/gui/filedetails/ShareDetailsPage.qml b/src/gui/filedetails/ShareDetailsPage.qml index 7d960452fd3ec..31216f93f1a20 100644 --- a/src/gui/filedetails/ShareDetailsPage.qml +++ b/src/gui/filedetails/ShareDetailsPage.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import QtQuick.Controls import Qt5Compat.GraphicalEffects -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" import "../SesComponents/" diff --git a/src/gui/filedetails/ShareView.qml b/src/gui/filedetails/ShareView.qml index 322a77410e551..a4d595a929aab 100644 --- a/src/gui/filedetails/ShareView.qml +++ b/src/gui/filedetails/ShareView.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" import "../SesComponents" diff --git a/src/gui/filedetails/ShareeDelegate.qml b/src/gui/filedetails/ShareeDelegate.qml index 6361703665a63..36723f6910fd0 100644 --- a/src/gui/filedetails/ShareeDelegate.qml +++ b/src/gui/filedetails/ShareeDelegate.qml @@ -8,7 +8,7 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style import "../tray" diff --git a/src/gui/filedetails/ShareeSearchField.qml b/src/gui/filedetails/ShareeSearchField.qml index d89f50d5eb74e..79a071e5306ab 100644 --- a/src/gui/filedetails/ShareeSearchField.qml +++ b/src/gui/filedetails/ShareeSearchField.qml @@ -8,9 +8,9 @@ import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient // TODO Check SES-459 -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC import Style import "../tray" diff --git a/src/gui/macOS/ui/FileProviderEvictionDialog.qml b/src/gui/macOS/ui/FileProviderEvictionDialog.qml index dcdcad5d333a2..3f9cc78006165 100644 --- a/src/gui/macOS/ui/FileProviderEvictionDialog.qml +++ b/src/gui/macOS/ui/FileProviderEvictionDialog.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient ApplicationWindow { id: root diff --git a/src/gui/macOS/ui/FileProviderFileDelegate.qml b/src/gui/macOS/ui/FileProviderFileDelegate.qml index 2e4ac295eec18..8c40bb87de15a 100644 --- a/src/gui/macOS/ui/FileProviderFileDelegate.qml +++ b/src/gui/macOS/ui/FileProviderFileDelegate.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Item { id: root diff --git a/src/gui/macOS/ui/FileProviderSettings.qml b/src/gui/macOS/ui/FileProviderSettings.qml index 5182b681ac864..a011b0bdf4e87 100644 --- a/src/gui/macOS/ui/FileProviderSettings.qml +++ b/src/gui/macOS/ui/FileProviderSettings.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Page { id: root diff --git a/src/gui/macOS/ui/FileProviderStorageInfo.qml b/src/gui/macOS/ui/FileProviderStorageInfo.qml index c666ebb49502c..a6d153c4f28b1 100644 --- a/src/gui/macOS/ui/FileProviderStorageInfo.qml +++ b/src/gui/macOS/ui/FileProviderStorageInfo.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient GridLayout { id: root diff --git a/src/gui/macOS/ui/FileProviderSyncStatus.qml b/src/gui/macOS/ui/FileProviderSyncStatus.qml index e81b06a6f55c7..7fd02bb3086e1 100644 --- a/src/gui/macOS/ui/FileProviderSyncStatus.qml +++ b/src/gui/macOS/ui/FileProviderSyncStatus.qml @@ -11,7 +11,7 @@ import Style 1.0 import "../../filedetails" import "../../tray" -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient GridLayout { id: root diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 08485d93e338c..283dc490e5071 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -122,29 +122,29 @@ ownCloudGui::ownCloudGui(Application *parent) connect(Logger::instance(), &Logger::guiLog, this, &ownCloudGui::slotShowTrayMessage); connect(Logger::instance(), &Logger::guiMessage, this, &ownCloudGui::slotShowGuiMessage); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SyncStatusSummary"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "EmojiModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "UserStatusSelectorModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ActivityListModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "FileActivityListModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SortedActivityListModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "WheelHandler"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "CallStateChecker"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "DateFieldBackend"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "FileDetails"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ShareModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "ShareeModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SortedShareModel"); - qmlRegisterType("com.ionos.hidrivenext.desktopclient", 1, 0, "SyncConflictsModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "SyncStatusSummary"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "EmojiModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "UserStatusSelectorModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "ActivityListModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "FileActivityListModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "SortedActivityListModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "WheelHandler"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "CallStateChecker"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "DateFieldBackend"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "FileDetails"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "ShareModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "ShareeModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "SortedShareModel"); + qmlRegisterType("com.strato.hidrivenext.desktopclient", 1, 0, "SyncConflictsModel"); // TODO SES-459 check casing / spelling - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "QAbstractItemModel", "QAbstractItemModel"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "activity", "Activity"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "talkNotificationData", "TalkNotificationData"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "userStatus", "Access to Status enum"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "sharee", "Access to Type enum"); - qmlRegisterUncreatableType("com.ionos.hidrivenext.desktopclient", 1, 0, "ClientSideEncryptionTokenSelector", "Access to the certificate selector"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "QAbstractItemModel", "QAbstractItemModel"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "activity", "Activity"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "talkNotificationData", "TalkNotificationData"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "UnifiedSearchResultsListModel", "UnifiedSearchResultsListModel"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "userStatus", "Access to Status enum"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "sharee", "Access to Type enum"); + qmlRegisterUncreatableType("com.strato.hidrivenext.desktopclient", 1, 0, "ClientSideEncryptionTokenSelector", "Access to the certificate selector"); qRegisterMetaType("ActivityListModel*"); qRegisterMetaType("UnifiedSearchResultsListModel*"); @@ -154,14 +154,14 @@ ownCloudGui::ownCloudGui(Application *parent) qRegisterMetaType("Sharee"); qRegisterMetaType("ActivityList"); - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "UserModel", UserModel::instance()); - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "UserAppsModel", UserAppsModel::instance()); - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "Theme", Theme::instance()); - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "Systray", Systray::instance()); - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "WLTheme", &WLTheme); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "UserModel", UserModel::instance()); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "UserAppsModel", UserAppsModel::instance()); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "Theme", Theme::instance()); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "Systray", Systray::instance()); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "WLTheme", &WLTheme); #ifdef BUILD_FILE_PROVIDER_MODULE - qmlRegisterSingletonInstance("com.ionos.hidrivenext.desktopclient", 1, 0, "FileProviderSettingsController", Mac::FileProviderSettingsController::instance()); + qmlRegisterSingletonInstance("com.strato.hidrivenext.desktopclient", 1, 0, "FileProviderSettingsController", Mac::FileProviderSettingsController::instance()); #endif } diff --git a/src/gui/tray/AccountMenuItem.qml b/src/gui/tray/AccountMenuItem.qml index 7be108628aa33..d96d70ba33b5b 100644 --- a/src/gui/tray/AccountMenuItem.qml +++ b/src/gui/tray/AccountMenuItem.qml @@ -5,7 +5,7 @@ import QtQuick.Layouts 1.15 // Custom qml modules are in /theme (and included by resources.qrc) import Style 1.0 -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient MenuItem { id: accountMenuItem diff --git a/src/gui/tray/ActivityItem.qml b/src/gui/tray/ActivityItem.qml index cc0d4c2e4c7cf..999271f9b814b 100644 --- a/src/gui/tray/ActivityItem.qml +++ b/src/gui/tray/ActivityItem.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient ItemDelegate { id: root diff --git a/src/gui/tray/ActivityItemActions.qml b/src/gui/tray/ActivityItemActions.qml index c12a06b6f9bbb..1e5d2aff7d8da 100644 --- a/src/gui/tray/ActivityItemActions.qml +++ b/src/gui/tray/ActivityItemActions.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Repeater { id: root diff --git a/src/gui/tray/ActivityItemContent.qml b/src/gui/tray/ActivityItemContent.qml index fc56ef64d7c32..0cc0856c89eff 100644 --- a/src/gui/tray/ActivityItemContent.qml +++ b/src/gui/tray/ActivityItemContent.qml @@ -9,7 +9,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style import Qt5Compat.GraphicalEffects -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient RowLayout { id: root diff --git a/src/gui/tray/ActivityList.qml b/src/gui/tray/ActivityList.qml index 9aabb5eaae717..31466a396a348 100644 --- a/src/gui/tray/ActivityList.qml +++ b/src/gui/tray/ActivityList.qml @@ -7,7 +7,7 @@ import QtQuick import QtQuick.Controls import Style -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC ScrollView { id: controlRoot diff --git a/src/gui/tray/CallNotificationDialog.qml b/src/gui/tray/CallNotificationDialog.qml index e8753b5dd3353..634a58f623305 100644 --- a/src/gui/tray/CallNotificationDialog.qml +++ b/src/gui/tray/CallNotificationDialog.qml @@ -6,7 +6,7 @@ import QtQuick import QtQuick.Window import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import QtQuick.Layouts import QtMultimedia import QtQuick.Controls diff --git a/src/gui/tray/CurrentAccountHeaderButton.qml b/src/gui/tray/CurrentAccountHeaderButton.qml index 13e08d6135dc9..2e9850713ac0c 100644 --- a/src/gui/tray/CurrentAccountHeaderButton.qml +++ b/src/gui/tray/CurrentAccountHeaderButton.qml @@ -11,7 +11,7 @@ import "../" import "../filedetails/" import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient // TODO SES-459 Button { diff --git a/src/gui/tray/EditFileLocallyLoadingDialog.qml b/src/gui/tray/EditFileLocallyLoadingDialog.qml index f84eba40a9292..a77f4d77e6fe4 100644 --- a/src/gui/tray/EditFileLocallyLoadingDialog.qml +++ b/src/gui/tray/EditFileLocallyLoadingDialog.qml @@ -6,7 +6,7 @@ import QtQuick import QtQuick.Window import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import QtQuick.Layouts import QtQuick.Controls diff --git a/src/gui/tray/EncryptionTokenDiscoveryDialog.qml b/src/gui/tray/EncryptionTokenDiscoveryDialog.qml index e2e67529b24f6..557d0b2b59d80 100644 --- a/src/gui/tray/EncryptionTokenDiscoveryDialog.qml +++ b/src/gui/tray/EncryptionTokenDiscoveryDialog.qml @@ -6,7 +6,7 @@ import QtQuick 2.15 import QtQuick.Window 2.15 import Style 1.0 -import com.ionos.hidrivenext.desktopclient 1.0 +import com.strato.hidrivenext.desktopclient 1.0 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 diff --git a/src/gui/tray/HeaderButton.qml b/src/gui/tray/HeaderButton.qml index e66620705d012..8c90ce81f5ebe 100644 --- a/src/gui/tray/HeaderButton.qml +++ b/src/gui/tray/HeaderButton.qml @@ -12,7 +12,7 @@ import QtQuick.Layouts // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Button { id: root diff --git a/src/gui/tray/HeaderLogo.qml b/src/gui/tray/HeaderLogo.qml index 918d14b342ecc..6d42d5f17955a 100644 --- a/src/gui/tray/HeaderLogo.qml +++ b/src/gui/tray/HeaderLogo.qml @@ -8,7 +8,7 @@ import Qt.labs.platform as NativeDialogs // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Rectangle { Image{ diff --git a/src/gui/tray/IconButton.qml b/src/gui/tray/IconButton.qml index 87d1d211a71b8..ac9268926c72f 100644 --- a/src/gui/tray/IconButton.qml +++ b/src/gui/tray/IconButton.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style diff --git a/src/gui/tray/MainWindow.qml b/src/gui/tray/MainWindow.qml index 517b6957fe4e2..3963143c7e5d0 100644 --- a/src/gui/tray/MainWindow.qml +++ b/src/gui/tray/MainWindow.qml @@ -19,7 +19,7 @@ import "../SesComponents/" // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient ApplicationWindow { id: trayWindow diff --git a/src/gui/tray/PrimaryPillButton.qml b/src/gui/tray/PrimaryPillButton.qml index 670f6c58b6acf..315b8767d722d 100644 --- a/src/gui/tray/PrimaryPillButton.qml +++ b/src/gui/tray/PrimaryPillButton.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style diff --git a/src/gui/tray/SecondaryPillButton.qml b/src/gui/tray/SecondaryPillButton.qml index e4aa2d28ebe58..1980ff1e8ea5e 100644 --- a/src/gui/tray/SecondaryPillButton.qml +++ b/src/gui/tray/SecondaryPillButton.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient import Style diff --git a/src/gui/tray/SyncStatus.qml b/src/gui/tray/SyncStatus.qml index dfdaaab036c46..4d50a70c840f3 100644 --- a/src/gui/tray/SyncStatus.qml +++ b/src/gui/tray/SyncStatus.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient as NC +import com.strato.hidrivenext.desktopclient as NC RowLayout { id: root diff --git a/src/gui/tray/TalkReplyTextField.qml b/src/gui/tray/TalkReplyTextField.qml index 0a1b74f25d69b..04a6f0524e352 100644 --- a/src/gui/tray/TalkReplyTextField.qml +++ b/src/gui/tray/TalkReplyTextField.qml @@ -8,7 +8,7 @@ import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient TextField { id: replyMessageTextField diff --git a/src/gui/tray/TrayWindowAccountMenu.qml b/src/gui/tray/TrayWindowAccountMenu.qml index 3364801cdadf6..9071941885fc9 100644 --- a/src/gui/tray/TrayWindowAccountMenu.qml +++ b/src/gui/tray/TrayWindowAccountMenu.qml @@ -10,7 +10,7 @@ import "../filedetails/" // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Button { id: currentAccountButton diff --git a/src/gui/tray/TrayWindowHeader.qml b/src/gui/tray/TrayWindowHeader.qml index 22e4aab021b1a..001d3d0a100c5 100644 --- a/src/gui/tray/TrayWindowHeader.qml +++ b/src/gui/tray/TrayWindowHeader.qml @@ -11,7 +11,7 @@ import "../" import "../filedetails/" import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Rectangle { id: root diff --git a/src/gui/tray/TrayWindowHeaderBar.qml b/src/gui/tray/TrayWindowHeaderBar.qml index 873ccc30199a0..318a25fa277bd 100644 --- a/src/gui/tray/TrayWindowHeaderBar.qml +++ b/src/gui/tray/TrayWindowHeaderBar.qml @@ -11,7 +11,7 @@ import "../filedetails/" // Custom qml modules are in /theme (and included by resources.qrc) import Style 1.0 -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient Rectangle { diff --git a/src/gui/tray/UnifiedSearchInputContainer.qml b/src/gui/tray/UnifiedSearchInputContainer.qml index 82a256bd47923..8436ecca8068a 100644 --- a/src/gui/tray/UnifiedSearchInputContainer.qml +++ b/src/gui/tray/UnifiedSearchInputContainer.qml @@ -9,7 +9,7 @@ import QtQuick.Controls import Qt5Compat.GraphicalEffects import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient TextField { id: root diff --git a/src/gui/tray/UnifiedSearchResultListItem.qml b/src/gui/tray/UnifiedSearchResultListItem.qml index 3027a988dd1a1..39c5f0d4ea342 100644 --- a/src/gui/tray/UnifiedSearchResultListItem.qml +++ b/src/gui/tray/UnifiedSearchResultListItem.qml @@ -7,7 +7,7 @@ import QtQml import QtQuick import QtQuick.Controls import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient MouseArea { id: unifiedSearchResultMouseArea diff --git a/src/gui/tray/UnifiedSearchResultSectionItem.qml b/src/gui/tray/UnifiedSearchResultSectionItem.qml index 3bde17fbcdbf8..38e5d602744e4 100644 --- a/src/gui/tray/UnifiedSearchResultSectionItem.qml +++ b/src/gui/tray/UnifiedSearchResultSectionItem.qml @@ -8,7 +8,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient EnforcedPlainTextLabel { required property string section diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 82f3a0b72f8a3..153b993250cb5 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -10,7 +10,7 @@ import QtQuick.Layouts // Custom qml modules are in /theme (and included by resources.qrc) import Style -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient AbstractButton { id: userLine diff --git a/switch_qml_imports.py b/switch_qml_imports.py index 352226e678155..a3d0b2c9c97e8 100644 --- a/switch_qml_imports.py +++ b/switch_qml_imports.py @@ -28,6 +28,6 @@ def replace_qml_imports(root_dir, from_prefix, to_prefix): mode = sys.argv[1] root_dir = sys.argv[2] if mode == "to-nextcloud": - replace_qml_imports(root_dir, "com.ionos.hidrivenext", "com.nextcloud") + replace_qml_imports(root_dir, "com.strato.hidrivenext", "com.nextcloud") else: - replace_qml_imports(root_dir, "com.nextcloud", "com.ionos.hidrivenext") + replace_qml_imports(root_dir, "com.nextcloud", "com.strato.hidrivenext") diff --git a/theme/Style/Style.qml b/theme/Style/Style.qml index 2909f8b6ff000..522bad95b8978 100644 --- a/theme/Style/Style.qml +++ b/theme/Style/Style.qml @@ -4,7 +4,7 @@ pragma Singleton import QtQuick -import com.ionos.hidrivenext.desktopclient +import com.strato.hidrivenext.desktopclient QtObject { readonly property int pixelSize: fontMetrics.font.pixelSize diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index 651cb8ecb6b9b..f39e6b4e6bee3 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -439,7 +439,7 @@ def run_lupdate_from_branch(ts_files, nc_branch): # Build lupdate command pointing at the worktree's source directories src_dirs = ["src/libsync", "src/gui", "src/csync", "src/common", "src/cmd"] command = [ - r"C:\Craft64\bin\lupdate.exe", + r"C:\CraftRoot\bin\lupdate.exe", "-locations", "none", "-no-obsolete", "-no-ui-lines", @@ -466,7 +466,7 @@ def run_lupdate_from_branch(ts_files, nc_branch): def run_lupdate(ts_files, mode="default"): command = [ - r"C:\Craft64\bin\lupdate.exe", + r"C:\CraftRoot\bin\lupdate.exe", "-locations", "none", "-no-ui-lines", "-no-sort", @@ -479,7 +479,7 @@ def run_lupdate(ts_files, mode="default"): ] command_no_obs = [ - r"C:\Craft64\bin\lupdate.exe", + r"C:\CraftRoot\bin\lupdate.exe", "-locations", "none", "-no-ui-lines", "-no-sort", @@ -493,7 +493,7 @@ def run_lupdate(ts_files, mode="default"): ] command_location = [ - r"C:\Craft64\bin\lupdate.exe", + r"C:\CraftRoot\bin\lupdate.exe", "-locations", "absolute", "-no-sort", "-no-obsolete", From 4e4993a8ad9e86b63d499558946d64b4125b2a72 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 7 May 2026 11:27:20 +0200 Subject: [PATCH 109/148] differentiate GUIDs for different whitelabels --- CMakeLists.txt | 27 ++++++++++++++++++--------- IONOS.cmake | 7 ++++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0bcee2f0dabd3..c5ecbd382b0af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,21 +38,30 @@ set(REQUIRED_QT_VERSION "6.8.0") # CfAPI Shell Extensions set( CFAPI_SHELL_EXTENSIONS_LIB_NAME CfApiShellExtensions ) - -set( CFAPI_SHELLEXT_APPID_REG "{E314A650-DCA4-416E-974E-18EA37C213EA}") -set( CFAPI_SHELLEXT_APPID_DISPLAY_NAME "${APPLICATION_NAME} CfApi Shell Extensions" ) -set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "1E62D59A-6EA4-476C-B707-4A32E88ED822" ) +if(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") + set( CFAPI_SHELLEXT_APPID_REG "{8DA6F907-784F-4A7A-A704-83342A8C205E}") + set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "A748032D-2EBF-40A3-BDC1-94C19D28A108" ) + set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "F8CE69E3-B804-4738-BF31-3CBD0E9A6674" ) + set( APPLICATION_URI_HANDLER_SCHEME "ionos") +elseif(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") + set( CFAPI_SHELLEXT_APPID_REG "{7D9A4B29-A898-4425-8CC6-E12C45D39D78}") + set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "02D43837-7958-4DFB-9CB3-B7FB10276012" ) + set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "57822EDA-7186-4AD6-A113-5A7471A1F917" ) + set( APPLICATION_URI_HANDLER_SCHEME "strato") +else() + set( CFAPI_SHELLEXT_APPID_REG "{E314A650-DCA4-416E-974E-18EA37C213EA}") + set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "1E62D59A-6EA4-476C-B707-4A32E88ED822" ) + set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "6FF9B5B6-389F-444A-9FDD-A286C36EA079" ) + set( APPLICATION_URI_HANDLER_SCHEME "nc") +endif() + +set( CFAPI_SHELLEXT_APPID_DISPLAY_NAME "${APPLICATION_NAME} CfApi Shell Extensions" ) set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID_REG "{${CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID}}" ) set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_DISPLAY_NAME "${APPLICATION_NAME} Custom State Handler" ) - -set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "6FF9B5B6-389F-444A-9FDD-A286C36EA079" ) set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID_REG "{${CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID}}" ) set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_DISPLAY_NAME "${APPLICATION_NAME} Thumbnail Handler" ) -# URI Handler Scheme for Local File Editing -set( APPLICATION_URI_HANDLER_SCHEME "nc") - # Default suffix if the theme doesn't define one if(NOT DEFINED APPLICATION_VIRTUALFILE_SUFFIX) set(APPLICATION_VIRTUALFILE_SUFFIX "${APPLICATION_SHORTNAME}_virtual" CACHE STRING "Virtual file suffix (not including the .)") diff --git a/IONOS.cmake b/IONOS.cmake index f369c2580dfe4..dee6e51d58d12 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -19,12 +19,11 @@ if(LOCALBUILD) set( WIN_SHELLEXT_OVERLAY_GUID_OK_SHARED "{7BEF6B56-5B5B-4284-A70C-56D62254C97A}" ) set( WIN_SHELLEXT_OVERLAY_GUID_SYNC "{5F2F493D-A683-426F-925E-4CA25F17C4A9}" ) set( WIN_SHELLEXT_OVERLAY_GUID_WARNING "{7F256BB6-29D2-4E40-A6C4-E5E756E64C82}" ) - - # MSI Upgrade Code (without brackets) - set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) endif() if("${WHITELABEL_NAME}" STREQUAL "strato") + # MSI Upgrade Code (without brackets) + set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) set( APPLICATION_NAME "STRATO HiDrive Next" ) set( APPLICATION_SHORTNAME "STRATOHiDriveNext" ) set( APPLICATION_EXECUTABLE "strato-hidrive-next" ) @@ -35,6 +34,8 @@ if(LOCALBUILD) set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" FORCE) set( APPLICATION_SERVER_URL "https://storage.ionos.fr" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" FORCE) elseif("${WHITELABEL_NAME}" STREQUAL "ionos") + # MSI Upgrade Code (without brackets) + set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) set( APPLICATION_NAME "IONOS HiDrive Next" ) set( APPLICATION_SHORTNAME "IONOSHiDriveNext" ) set( APPLICATION_EXECUTABLE "ionos-hidrive-next" ) From 0916b5a1f2ea5a5c8dfd0f90ba5808785db2b743 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 7 May 2026 15:22:53 +0200 Subject: [PATCH 110/148] set MSI upgrade code also on brander builds --- IONOS.cmake | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/IONOS.cmake b/IONOS.cmake index dee6e51d58d12..b546c033f3277 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -22,8 +22,6 @@ if(LOCALBUILD) endif() if("${WHITELABEL_NAME}" STREQUAL "strato") - # MSI Upgrade Code (without brackets) - set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) set( APPLICATION_NAME "STRATO HiDrive Next" ) set( APPLICATION_SHORTNAME "STRATOHiDriveNext" ) set( APPLICATION_EXECUTABLE "strato-hidrive-next" ) @@ -34,8 +32,6 @@ if(LOCALBUILD) set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" FORCE) set( APPLICATION_SERVER_URL "https://storage.ionos.fr" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" FORCE) elseif("${WHITELABEL_NAME}" STREQUAL "ionos") - # MSI Upgrade Code (without brackets) - set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) set( APPLICATION_NAME "IONOS HiDrive Next" ) set( APPLICATION_SHORTNAME "IONOSHiDriveNext" ) set( APPLICATION_EXECUTABLE "ionos-hidrive-next" ) @@ -58,9 +54,11 @@ endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") set( APPLICATION_VENDOR "STRATO" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_strato.bmp" ) + set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") set( APPLICATION_VENDOR "IONOS SE" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_ionos.bmp" ) + set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) add_compile_definitions(IONOS_WL_BUILD) endif() \ No newline at end of file From e79ecc4984a7f5e3429f7adcc4a2be968e205e50 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 7 May 2026 16:12:13 +0200 Subject: [PATCH 111/148] leave nextcloud comment at msi upgrade code line --- IONOS.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IONOS.cmake b/IONOS.cmake index b546c033f3277..834bd07bab7b6 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -54,11 +54,13 @@ endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") set( APPLICATION_VENDOR "STRATO" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_strato.bmp" ) + # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") set( APPLICATION_VENDOR "IONOS SE" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_ionos.bmp" ) + # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) add_compile_definitions(IONOS_WL_BUILD) endif() \ No newline at end of file From c5ba73168ac7df0baf09ef9aea5223f3c874640a Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 14:18:27 +0200 Subject: [PATCH 112/148] SES-434 set APPLICATION_REV_DOMAIN depending on whitelabel build --- IONOS.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IONOS.cmake b/IONOS.cmake index 834bd07bab7b6..6d07c43814d97 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -1,5 +1,3 @@ -set( APPLICATION_REV_DOMAIN "com.ionos.hidrivenext.desktopclient" ) - option(LOCALBUILD "Local developer build" OFF) if(LOCALBUILD) @@ -22,6 +20,7 @@ if(LOCALBUILD) endif() if("${WHITELABEL_NAME}" STREQUAL "strato") + set( APPLICATION_REV_DOMAIN "com.strato.hidrivenext.desktopclient" ) set( APPLICATION_NAME "STRATO HiDrive Next" ) set( APPLICATION_SHORTNAME "STRATOHiDriveNext" ) set( APPLICATION_EXECUTABLE "strato-hidrive-next" ) @@ -32,6 +31,7 @@ if(LOCALBUILD) set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" FORCE) set( APPLICATION_SERVER_URL "https://storage.ionos.fr" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" FORCE) elseif("${WHITELABEL_NAME}" STREQUAL "ionos") + set( APPLICATION_REV_DOMAIN "com.ionos.hidrivenext.desktopclient" ) set( APPLICATION_NAME "IONOS HiDrive Next" ) set( APPLICATION_SHORTNAME "IONOSHiDriveNext" ) set( APPLICATION_EXECUTABLE "ionos-hidrive-next" ) From 40823909e89f67910dede3aa43f13dc493d7db11 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 14:22:12 +0200 Subject: [PATCH 113/148] SES-434 replace hardcoded IONOS identifiers with build variables --- admin/osx/macosx.entitlements.cmake | 2 +- .../FileProviderExt/FileProviderExt-Bridging-Header.h | 1 + .../FileProviderExt/FileProviderExt.entitlements | 2 +- .../FileProviderExtension+ClientInterface.swift | 2 +- .../NextcloudIntegration/FileProviderExt/Info.plist | 4 ++-- .../NextcloudIntegration/FileProviderUIExt/Info.plist | 8 ++++---- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/admin/osx/macosx.entitlements.cmake b/admin/osx/macosx.entitlements.cmake index b206b92465afc..49b409f036c1a 100644 --- a/admin/osx/macosx.entitlements.cmake +++ b/admin/osx/macosx.entitlements.cmake @@ -4,7 +4,7 @@ com.apple.security.application-groups - 5TDLCVD243.com.ionos.hidrivenext.desktopclient + @SOCKETAPI_TEAM_IDENTIFIER_PREFIX@@APPLICATION_REV_DOMAIN@ diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h index c1a3d2badebd2..1ce7d60d492f2 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h @@ -7,5 +7,6 @@ #define FileProviderExt_Bridging_Header_h #import "Services/ClientCommunicationProtocol.h" +#include "config.h" #endif /* FileProviderExt_Bridging_Header_h */ diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements index 8102f4fb7df19..eab912dc49600 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt.entitlements @@ -6,7 +6,7 @@ com.apple.security.application-groups - 5TDLCVD243.com.ionos.hidrivenext.desktopclient + $(OC_SOCKETAPI_TEAM_IDENTIFIER_PREFIX)$(OC_APPLICATION_REV_DOMAIN) com.apple.security.network.client diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift index 835556e582f95..45b927167ea3d 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+ClientInterface.swift @@ -94,7 +94,7 @@ extension FileProviderExtension: NSFileProviderServicing, ChangeNotificationInte userId: String, serverUrl: String, password: String, - userAgent: String = "IONOS HiDrive Next/FileProviderExt", + userAgent: String = "\(APPLICATION_NAME)/FileProviderExt", completionHandler: ((NSError?) -> Void)? = nil ) { let account = Account(user: user, id: userId, serverUrl: serverUrl, password: password) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist index 24545ff277167..880e2b4b5c544 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist @@ -24,7 +24,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayKeepDownloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.ionos.hidrive.desktopclient.FileProviderExt.KeepDownloadedAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).KeepDownloadedAction NSExtensionFileProviderActionName Always keep downloaded @@ -32,7 +32,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayAllowAutoEvicting == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.ionos.hidrive.desktopclient.FileProviderExt.AutoEvictAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).AutoEvictAction NSExtensionFileProviderActionName Allow automatic freeing up space diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist index 8dd133e54fcf3..80e11e73ef7bf 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist @@ -22,7 +22,7 @@ NSExtensionFileProviderActionIdentifier - com.ionos.hidrivenext.desktopclient.FileProviderUIExt.UnlockFileAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).UnlockFileAction NSExtensionFileProviderActionName Unlock file NSExtensionFileProviderActionActivationRule @@ -34,13 +34,13 @@ NSExtensionFileProviderActionName Lock file NSExtensionFileProviderActionIdentifier - com.ionos.hidrivenext.desktopclient.FileProviderUIExt.LockFileAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).LockFileAction NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayShare == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.ionos.hidrivenext.desktopclient.FileProviderUIExt.ShareAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).ShareAction NSExtensionFileProviderActionName Share options @@ -48,7 +48,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.downloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - com.ionos.hidrive.desktopclient.FileProviderUIExt.EvictAction + $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).EvictAction NSExtensionFileProviderActionName Free up space From 96a895a71389a9dd71962899cd94bd91494828bf Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 14:38:58 +0200 Subject: [PATCH 114/148] SES-434 adjust sign script to accept different product names, code sign identities and keychain profiles --- admin/osx/ionos_macmaker/sign.sh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/admin/osx/ionos_macmaker/sign.sh b/admin/osx/ionos_macmaker/sign.sh index f781a41c9cb4d..c1a0225036379 100755 --- a/admin/osx/ionos_macmaker/sign.sh +++ b/admin/osx/ionos_macmaker/sign.sh @@ -22,17 +22,18 @@ export -f sign_folder_content # This script is used to build the Mac OS X version of the IONOS client. # Parse the command line arguments -while getopts "b:p:s:civt" opt; do +while getopts "b:p:s:n:civt" opt; do case ${opt} in b )BASE_DIR=$OPTARG;; p )PATH_TO_PKG=$OPTARG ;; s )CODE_SIGN_IDENTITY=$OPTARG ;; + n )PRODUCT_NAME=$OPTARG ;; c )CLEAN_REBUILD=true ;; i )PACKAGE_INSTALLER=true ;; - v )VERBOSE=true ;; + v )VERBOSE=true ;; t )TEAM_PATCHING=true ;; \? ) - echo "Usage: sign.sh [-b ] [-p ] [-s ] [-c clean-rebuild] [-i build-installer] [-v verbose]" + echo "Usage: sign.sh [-b ] [-p ] [-s ] [-n ] [-c clean-rebuild] [-i build-installer] [-v verbose]" exit 1 ;; esac @@ -45,12 +46,12 @@ fi # Some variables PKG_FULLNAME=$(basename "$PATH_TO_PKG") PKG_FILENAME="${PKG_FULLNAME%.pkg}" -PRODUCT_NAME="IONOS HiDrive Next" -UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" +UNDERSCORE_PRODUCT_NAME="${PRODUCT_NAME// /_}" IONOS_TEAM_IDENTIFIER="5TDLCVD243" NC_TEAM_IDENTIFIER="NKUJUXUJ3B" INSTALLER_CERT="Developer ID Installer: $CODE_SIGN_IDENTITY" +KEYCHAIN_PROFILE="${CODE_SIGN_IDENTITY% (*} HiDrive Next" APPLICATION_CERT="Developer ID Application: $CODE_SIGN_IDENTITY" WORK_DIR="ex" @@ -114,7 +115,13 @@ fi # Sign the client # CODE_SIGN_IDENTITY="Developer ID Application: IONOS SE (5TDLCVD243)" -# Check if CODE_SIGN_IDENTITY is set, if not exit +# Check required parameters +if [ -z "$PRODUCT_NAME" ]; then + echo "Product name not set. Use -n . Exiting." + open $BASE_DIR + exit 1 +fi + if [ -z "$CODE_SIGN_IDENTITY" ]; then echo "Code sign identity not set. Exiting." open $BASE_DIR @@ -176,7 +183,7 @@ mv $PAYLOAD_DIR.new $PAYLOAD_DIR rm -rf $INNER_PKG mv $INNER_PKG.flat $INNER_PKG -productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' \ +productsign --timestamp --sign "$INSTALLER_CERT" \ $INNER_PKG \ $INNER_PKG.signed @@ -189,11 +196,11 @@ mv $INNER_PKG.signed $INNER_PKG --package-path ex \ $INSTALLER_PKG.unsigned) -productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' $INSTALLER_PKG.unsigned "$BASE_DIR$PKG_FILENAME.resigned.pkg" +productsign --timestamp --sign "$INSTALLER_CERT" $INSTALLER_PKG.unsigned "$BASE_DIR$PKG_FILENAME.resigned.pkg" # catch the output of the notarytool command OUTPUT=$(xcrun notarytool submit --wait "$BASE_DIR$PKG_FILENAME.resigned.pkg"\ - --keychain-profile "IONOS SE HiDrive Next") + --keychain-profile "$KEYCHAIN_PROFILE") SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) From 9560826ab1b14e2296696b8c529d707f1470ddf6 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 15:03:31 +0200 Subject: [PATCH 115/148] Revert "SES-434 adjust sign script to accept different product names, code sign identities and keychain profiles" This reverts commit e0619427b42df11f23393d0a2f20c9e3a95f2bd4. --- admin/osx/ionos_macmaker/sign.sh | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/admin/osx/ionos_macmaker/sign.sh b/admin/osx/ionos_macmaker/sign.sh index c1a0225036379..f781a41c9cb4d 100755 --- a/admin/osx/ionos_macmaker/sign.sh +++ b/admin/osx/ionos_macmaker/sign.sh @@ -22,18 +22,17 @@ export -f sign_folder_content # This script is used to build the Mac OS X version of the IONOS client. # Parse the command line arguments -while getopts "b:p:s:n:civt" opt; do +while getopts "b:p:s:civt" opt; do case ${opt} in b )BASE_DIR=$OPTARG;; p )PATH_TO_PKG=$OPTARG ;; s )CODE_SIGN_IDENTITY=$OPTARG ;; - n )PRODUCT_NAME=$OPTARG ;; c )CLEAN_REBUILD=true ;; i )PACKAGE_INSTALLER=true ;; - v )VERBOSE=true ;; + v )VERBOSE=true ;; t )TEAM_PATCHING=true ;; \? ) - echo "Usage: sign.sh [-b ] [-p ] [-s ] [-n ] [-c clean-rebuild] [-i build-installer] [-v verbose]" + echo "Usage: sign.sh [-b ] [-p ] [-s ] [-c clean-rebuild] [-i build-installer] [-v verbose]" exit 1 ;; esac @@ -46,12 +45,12 @@ fi # Some variables PKG_FULLNAME=$(basename "$PATH_TO_PKG") PKG_FILENAME="${PKG_FULLNAME%.pkg}" -UNDERSCORE_PRODUCT_NAME="${PRODUCT_NAME// /_}" +PRODUCT_NAME="IONOS HiDrive Next" +UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" IONOS_TEAM_IDENTIFIER="5TDLCVD243" NC_TEAM_IDENTIFIER="NKUJUXUJ3B" INSTALLER_CERT="Developer ID Installer: $CODE_SIGN_IDENTITY" -KEYCHAIN_PROFILE="${CODE_SIGN_IDENTITY% (*} HiDrive Next" APPLICATION_CERT="Developer ID Application: $CODE_SIGN_IDENTITY" WORK_DIR="ex" @@ -115,13 +114,7 @@ fi # Sign the client # CODE_SIGN_IDENTITY="Developer ID Application: IONOS SE (5TDLCVD243)" -# Check required parameters -if [ -z "$PRODUCT_NAME" ]; then - echo "Product name not set. Use -n . Exiting." - open $BASE_DIR - exit 1 -fi - +# Check if CODE_SIGN_IDENTITY is set, if not exit if [ -z "$CODE_SIGN_IDENTITY" ]; then echo "Code sign identity not set. Exiting." open $BASE_DIR @@ -183,7 +176,7 @@ mv $PAYLOAD_DIR.new $PAYLOAD_DIR rm -rf $INNER_PKG mv $INNER_PKG.flat $INNER_PKG -productsign --timestamp --sign "$INSTALLER_CERT" \ +productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' \ $INNER_PKG \ $INNER_PKG.signed @@ -196,11 +189,11 @@ mv $INNER_PKG.signed $INNER_PKG --package-path ex \ $INSTALLER_PKG.unsigned) -productsign --timestamp --sign "$INSTALLER_CERT" $INSTALLER_PKG.unsigned "$BASE_DIR$PKG_FILENAME.resigned.pkg" +productsign --timestamp --sign 'Developer ID Installer: IONOS SE (5TDLCVD243)' $INSTALLER_PKG.unsigned "$BASE_DIR$PKG_FILENAME.resigned.pkg" # catch the output of the notarytool command OUTPUT=$(xcrun notarytool submit --wait "$BASE_DIR$PKG_FILENAME.resigned.pkg"\ - --keychain-profile "$KEYCHAIN_PROFILE") + --keychain-profile "IONOS SE HiDrive Next") SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) From 4745d73dfd0638b5632be46369a95f3c2aa4c29e Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 15:05:43 +0200 Subject: [PATCH 116/148] SES-434 also set APPLICATION_REV_DOMAIN on brander builds --- IONOS.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IONOS.cmake b/IONOS.cmake index 6d07c43814d97..6b6264f3d5d1b 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -52,13 +52,15 @@ if(APPLE AND app_name_lower MATCHES "hidrive") endif() if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") - set( APPLICATION_VENDOR "STRATO" ) + set( APPLICATION_VENDOR "STRATO GmbH" ) + set( APPLICATION_REV_DOMAIN "com.strato.hidrivenext.desktopclient" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_strato.bmp" ) # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) add_compile_definitions(STRATO_WL_BUILD) elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") set( APPLICATION_VENDOR "IONOS SE" ) + set( APPLICATION_REV_DOMAIN "com.ionos.hidrivenext.desktopclient" ) set( WIN_MSI_UI_DIALOG_BMP "dialog_ionos.bmp" ) # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) From b6bb530c90644cc2597db1f5ae23a3d46d405c62 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 11 May 2026 15:24:51 +0200 Subject: [PATCH 117/148] SES-434 revert using PRODUCT_NAME instead of FileProvider(UI)Ext --- .../NextcloudIntegration/FileProviderExt/Info.plist | 4 ++-- .../NextcloudIntegration/FileProviderUIExt/Info.plist | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist index 880e2b4b5c544..c91967fcda330 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Info.plist @@ -24,7 +24,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayKeepDownloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).KeepDownloadedAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderExt.KeepDownloadedAction NSExtensionFileProviderActionName Always keep downloaded @@ -32,7 +32,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayAllowAutoEvicting == true ).@count > 0 NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).AutoEvictAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderExt.AutoEvictAction NSExtensionFileProviderActionName Allow automatic freeing up space diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist index 80e11e73ef7bf..c2f724a4872a9 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Info.plist @@ -22,7 +22,7 @@ NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).UnlockFileAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderUIExt.UnlockFileAction NSExtensionFileProviderActionName Unlock file NSExtensionFileProviderActionActivationRule @@ -34,13 +34,13 @@ NSExtensionFileProviderActionName Lock file NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).LockFileAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderUIExt.LockFileAction NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.displayShare == true ).@count > 0 NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).ShareAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderUIExt.ShareAction NSExtensionFileProviderActionName Share options @@ -48,7 +48,7 @@ NSExtensionFileProviderActionActivationRule SUBQUERY ( fileproviderItems, $fileproviderItem, $fileproviderItem.userInfo.downloaded == true ).@count > 0 NSExtensionFileProviderActionIdentifier - $(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME).EvictAction + $(OC_APPLICATION_REV_DOMAIN).FileProviderUIExt.EvictAction NSExtensionFileProviderActionName Free up space From 4e1bd2af10abe08edc2d66b85a0a91fe7f385f2b Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Tue, 12 May 2026 13:34:07 +0200 Subject: [PATCH 118/148] SES-434 add USER_HEADER_SEARCH_PATHS to find config.h --- shell_integration/MacOSX/CMakeLists.txt | 2 ++ .../FileProviderExt/FileProviderExt-Bridging-Header.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/shell_integration/MacOSX/CMakeLists.txt b/shell_integration/MacOSX/CMakeLists.txt index 694fb3fd51c71..77de10bb2b027 100644 --- a/shell_integration/MacOSX/CMakeLists.txt +++ b/shell_integration/MacOSX/CMakeLists.txt @@ -35,6 +35,7 @@ if(APPLE) "OC_APPLICATION_NAME=${APPLICATION_NAME}" "OC_APPLICATION_REV_DOMAIN=${APPLICATION_REV_DOMAIN}" "OC_SOCKETAPI_TEAM_IDENTIFIER_PREFIX=${SOCKETAPI_TEAM_IDENTIFIER_PREFIX}" + "USER_HEADER_SEARCH_PATHS=${CMAKE_BINARY_DIR}" COMMENT building macOS File Provider extension VERBATIM) @@ -47,6 +48,7 @@ if(APPLE) "OC_APPLICATION_NAME=${APPLICATION_NAME}" "OC_APPLICATION_REV_DOMAIN=${APPLICATION_REV_DOMAIN}" "OC_SOCKETAPI_TEAM_IDENTIFIER_PREFIX=${SOCKETAPI_TEAM_IDENTIFIER_PREFIX}" + "USER_HEADER_SEARCH_PATHS=${CMAKE_BINARY_DIR}" DEPENDS mac_fileproviderplugin COMMENT building macOS File Provider UI extension VERBATIM) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h index 1ce7d60d492f2..6fd6668764d7c 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExt-Bridging-Header.h @@ -7,6 +7,6 @@ #define FileProviderExt_Bridging_Header_h #import "Services/ClientCommunicationProtocol.h" -#include "config.h" +#import "config.h" #endif /* FileProviderExt_Bridging_Header_h */ From cc63332552091e9c3fe4fcfef63f22bcb05adb41 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Mon, 18 May 2026 11:05:46 +0200 Subject: [PATCH 119/148] SES-520 add mexican spanish to translations --- translation_scripts/es _MX.ts | 604 +++++++++++++++++++++++ translation_scripts/merge_translation.py | 2 + 2 files changed, 606 insertions(+) create mode 100644 translation_scripts/es _MX.ts diff --git a/translation_scripts/es _MX.ts b/translation_scripts/es _MX.ts new file mode 100644 index 0000000000000..ce2b1c1c3f3e4 --- /dev/null +++ b/translation_scripts/es _MX.ts @@ -0,0 +1,604 @@ + + + + + Agree + Aceptar + + + Back + Volver + + + Necessary data + Datos necesarios + + + Required to ensure that the software can be used as expected + Necesario para garantizar que el software puede utilizarse según lo previsto + + + Save Settings + Guardar ajustes + + + Send anonymous use + Enviar uso anónimo + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + + BasicComboBox + + Clear status message menu + Borrar el menú de mensajes de estado + + + + CallNotificationDialog + + Answer Talk call notification + Aviso de llamada de Answer Talk + + + Decline Talk call notification + Rechazar la notificación de llamadas de Talk + + + Talk notification caller avatar + Avatar de la notificación de llamada + + + + CloudProviderWrapper + + Quit sync client + Cerrar cliente de sincronización + + + + ConflictDelegate + + Local version + Versión local + + + Server version + Versión del servidor + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + + + FileProviderFileDelegate + + Delete + Borrar + + + + FileProviderSettings + + Signal file provider domain + Dominio del proveedor de archivos de firmas + + + + FileProviderStorageInfo + + Evict local copies... + Desalojar las copias locales... + + + + FileProviderSyncStatus + + All synced! + ¡Todo está sincronizado! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Añadir sincronización de carpetas + + + Step 3 of 3: Selektive Synchronisation + Paso 3 de 3: Sincronización selectiva + + + + FolderWizardSourcePage + + &Choose + &Elegir + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + + + Step 1 of 3: Select local folder + Paso 1 de 3: Seleccionar carpeta local + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + + + Create folder + Crear carpeta + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + + + Step 2 of 3: Directory in your %1 + Paso 2 de 3: Directorio en su %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. + + + Expand Memory + Ampliar la memoria + + + Force sync now + Forzar la sincronización ahora + + + https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0087 + + + Storage space %1% occupied + Espacio de almacenamiento %1% ocupado + + + There are folders that were not synchronized because they are external storages: + Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: + + + There are folders that were not synchronized because they are too big or external storages: + Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: + + + There are folders that were not synchronized because they are too big: + Hay carpetas que no se han sincronizado porque son demasiado grandes: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. +<b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + + + OCC::CaseClashFilenameDialog + + Existing file + Archivo existente + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. + + + + OCC::DataProtectionPage + + Settings + Ajustes + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. + + + Encrypted metadata setup error! + ¡Hubo un error al configurar los metadatos cifrados! + + + + OCC::Flow2AuthWidget + + Copy Link + Copiar enlace + + + Open Browser + Abrir en el navegador + + + + OCC::Folder + + A folder from an external storage has been added. + Una carpeta de almacenamiento externo ha sido añadida. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Se ha eliminado un gran número de archivos del servidor. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Se ha eliminado un gran número de archivos de tu carpeta local '%1'. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. + + + A new folder larger than %1 MB has been added: %2. + Una carpeta mayor de %1 MB ha sido añadida: %2. + + + Proceed with Deletion + Proceder a la supresión + + + Remove all files? + ¿Eliminar todos los archivos? + + + Restore Files from Server + Restaurar archivos del servidor + + + Restore Files to Server + Restaurar archivos en el servidor + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Crear nueva carpeta + + + + OCC::FolderMan + + (backup %1) + (copia de seguridad %1) + + + (backup) + (copia de seguridad) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Sincroniza cualquier otra carpeta local con tu %1 + + + + OCC::FolderWizardLocalPath + + Choose + Seleccione + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Introduce el nombre de la nueva carpeta que se creará debajo de "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Recogida de datos de análisis para un diseño basado en las necesidades + + + Ask for confirmation before synchronizing external storages + Pide confirmación antes de sincronizar almacenamientos externos + + + Ask for confirmation before synchronizing new folders larger than + Pedir confirmación antes de sincronizar carpetas nuevas mayores a + + + Automatically disable synchronisation of folders that overcome limit + Desactivar automáticamente la sincronización de carpetas que superen el límite + + + Data Protection + Protección de datos + + + https://wl.hidrive.com/easy/0004 + https://wl.hidrive.com/easy/0014 + + + https://wl.hidrive.com/easy/0005 + https://wl.hidrive.com/easy/0015 + + + https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0006 + + + https://wl.hidrive.com/easy/0007 + https://wl.hidrive.com/easy/0017 + + + More Information + Más información + + + Open Source Software + Software de código abierto + + + Privacy Policy + Política de privacidad + + + Show sync folders in &Explorer's navigation pane + Mostrar carpetas de sincronización en el panel de navegación de &Explorer + + + Updates + Actualizaciones + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Añadir un nuevo patrón de ignorar: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Los archivos o carpetas que coincidan con este patrón no se sincronizarán. + +Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. + + + Ignore Pattern + Ignorar patrón + + + + OCC::NetworkSettings + + No proxy + Sin proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + No se pudo crear la carpeta %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + La subida %1 excede el límite de tamaño de la carpeta + + + + OCC::SettingsDialog + + New account + Nueva cuenta + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Esta conexión está cifrada con %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Esta conexión NO ES SEGURA, pues no está cifrada. + + + + OCC::Theme + + easy/0118 + easy/0118 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Fallo al finalizar ítem. + + + Failed to unlock encrypted folder. + Fallo al desbloquear carpeta cifrada. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 + + + + OCC::User + + %1 notifications + %1 notificaciones + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> + + + + OCC::sesSnackBar + + Success + Éxito + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. + + + + QObject + + Could not create debug archive in selected location! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + + Failed to create debug archive + Error al crear el archivo de depuración + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + + + SesTrayHeader + + Open Nextcloud in browser + Abrir HiDrive Next en el navegador + + + Website + Sitio web + + + + ShareDetailsPage + + Copy share link + Copiar enlace de recurso compartido + + + Custom Permissions + Permisos personalizados + + + Enter the note to recipient + Introducir la nota al destinatario + + + Share link copied! + ¡Enlace compartido copiado! + + + + TrayFoldersMenuButton + + Files + Archivos + + + + TrayWindowAccountMenu + + Add account + Añadir cuenta + + + Pause sync for all + Pausar sincronización para todos + + + Resume sync for all + Reanudar sincronización para todos + + + Settings + Configuración + + + + progress + + Updated local virtual files metadata + Actualizados los metadatos de los archivos virtuales locales + + + updating local virtual files metadata + Actualización de los metadatos de los archivos virtuales locales + + + diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index f39e6b4e6bee3..c6360fc6b58ac 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -525,6 +525,7 @@ def run_lupdate(ts_files, mode="default"): if __name__ == "__main__": ts_files = [r"..\translations\client_de.ts" , r"..\translations\client_es.ts" + , r"..\translations\client_es_MX.ts" , r"..\translations\client_fr.ts" , r"..\translations\client_it.ts" , r"..\translations\client_nl.ts" @@ -534,6 +535,7 @@ def run_lupdate(ts_files, mode="default"): diff_files = [r".\de_DE.ts" , r".\es.ts" + , r".\es_MX.ts" , r".\fr.ts" , r".\it.ts" , r".\nl.ts" From 018b17f756a5d03b7915cfc6708125e4e89c8adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 18 May 2026 11:31:09 +0200 Subject: [PATCH 120/148] SES-520 - used URL from translations --- src/gui/application.cpp | 3 +++ src/gui/wizard/owncloudwizard.cpp | 2 +- src/libsync/theme.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/application.cpp b/src/gui/application.cpp index 6a4322ced650a..a9ac17cac8175 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -327,6 +327,9 @@ Application::Application(int &argc, char **argv) setupLogging(); setupTranslations(); +#ifdef IONOS_BUILD + _theme->setOverrideServerUrl(QCoreApplication::translate("OCC::Theme", "Login_URL")); +#endif // try to migrate legacy accounts and folders from a previous client version // only copy the settings and check what should be skipped diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp index 83f0584dc71fd..060ce4e46ce92 100644 --- a/src/gui/wizard/owncloudwizard.cpp +++ b/src/gui/wizard/owncloudwizard.cpp @@ -391,7 +391,7 @@ void OwncloudWizard::slotCurrentPageChanged(int id) if (id == WizardCommon::Page_ServerSetup) { emit clearPendingRequests(); #ifdef APPLICATION_SERVER_URL_ENFORCE - _setupPage->setServerUrl(APPLICATION_SERVER_URL); + _setupPage->setServerUrl(Theme::instance()->overrideServerUrl()); _setupPage->initializePage(); button(QWizard::BackButton)->setHidden(true); #endif diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index f08482fd277d5..9cf8acae7eaca 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -466,7 +466,7 @@ Theme::Theme() #ifdef APPLICATION_SERVER_URL_ENFORCE _forceOverrideServerUrl = true; #endif -#ifdef APPLICATION_SERVER_URL +#if defined(APPLICATION_SERVER_URL) && !defined(IONOS_BUILD) setOverrideServerUrl(QString::fromUtf8(APPLICATION_SERVER_URL)); #endif } From 91878cb43c93cac3767e344c614e69615c0e4083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 18 May 2026 11:33:30 +0200 Subject: [PATCH 121/148] SES-520 added new key to diff files --- translation_scripts/de_DE.ts | 4 ++++ translation_scripts/en.ts | 4 ++++ translation_scripts/en_GB.ts | 4 ++++ translation_scripts/es.ts | 4 ++++ translation_scripts/{es _MX.ts => es_MX.ts} | 4 ++++ translation_scripts/fr.ts | 4 ++++ translation_scripts/it.ts | 4 ++++ translation_scripts/nl.ts | 4 ++++ 8 files changed, 32 insertions(+) rename translation_scripts/{es _MX.ts => es_MX.ts} (99%) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index f18312cf7ae52..fcc9eca55c3d0 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -467,6 +467,10 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e easy/0118 easy/0148 + + Login_URL + http://id.ionos.de + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 83633bdfb2545..bc95b3371526d 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -467,6 +467,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from easy/0118 easy/0108 + + Login_URL + http://id.ionos.co.uk + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index 049346591a1a9..19b81a8d1cb6f 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -467,6 +467,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from easy/0118 easy/0108 + + Login_URL + http://id.ionos.co.uk + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 9ec1df041cd03..59665af40049e 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -472,6 +472,10 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre easy/0118 easy/0118 + + Login_URL + http://id.ionos.es + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es _MX.ts b/translation_scripts/es_MX.ts similarity index 99% rename from translation_scripts/es _MX.ts rename to translation_scripts/es_MX.ts index ce2b1c1c3f3e4..6ad95fdbccbd1 100644 --- a/translation_scripts/es _MX.ts +++ b/translation_scripts/es_MX.ts @@ -472,6 +472,10 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre easy/0118 easy/0118 + + Login_URL + http://id.ionos.mx + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index d1aa2ad01008e..05f0da2be688a 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -474,6 +474,10 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress easy/0118 easy/0128 + + Login_URL + http://id.ionos.fr + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 8fd4a10cafc50..74c2468353214 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -467,6 +467,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from easy/0118 easy/0138 + + Login_URL + http://id.ionos.it + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index d7bc50b4f0d67..09115c3ce4474 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -467,6 +467,10 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere easy/0118 easy/0108 + + Login_URL + http://id.ionos.de + OCC::UpdateE2eeFolderMetadataJob From c304d483729b4a9ef64d0e0bbe7c3e6bb055a9e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 18 May 2026 14:38:32 +0200 Subject: [PATCH 122/148] SES-431 - added switch for strato --- src/gui/application.cpp | 4 ++++ translation_scripts/de_DE.ts | 4 ++++ translation_scripts/en.ts | 4 ++++ translation_scripts/en_GB.ts | 4 ++++ translation_scripts/es.ts | 4 ++++ translation_scripts/es_MX.ts | 4 ++++ translation_scripts/fr.ts | 4 ++++ translation_scripts/it.ts | 4 ++++ translation_scripts/nl.ts | 4 ++++ 9 files changed, 36 insertions(+) diff --git a/src/gui/application.cpp b/src/gui/application.cpp index a9ac17cac8175..e6de54d82e87e 100644 --- a/src/gui/application.cpp +++ b/src/gui/application.cpp @@ -328,7 +328,11 @@ Application::Application(int &argc, char **argv) setupLogging(); setupTranslations(); #ifdef IONOS_BUILD +#ifdef STRATO_WL_BUILD + _theme->setOverrideServerUrl(QCoreApplication::translate("OCC::Theme", "Login_URL_STRATO")); +#else _theme->setOverrideServerUrl(QCoreApplication::translate("OCC::Theme", "Login_URL")); +#endif #endif // try to migrate legacy accounts and folders from a previous client version diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index fcc9eca55c3d0..3aee39c8d2e50 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -471,6 +471,10 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Login_URL http://id.ionos.de + + Login_URL_STRATO + http://id.strato.de + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index bc95b3371526d..3aabff39fd096 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -471,6 +471,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL http://id.ionos.co.uk + + Login_URL_STRATO + http://id.strato.co.uk + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index 19b81a8d1cb6f..75eb61e6ee801 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -471,6 +471,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL http://id.ionos.co.uk + + Login_URL_STRATO + http://id.strato.co.uk + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 59665af40049e..55ebb8441c569 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -476,6 +476,10 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL http://id.ionos.es + + Login_URL_STRATO + http://id.strato.es + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index 6ad95fdbccbd1..16ff0f1394503 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -476,6 +476,10 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL http://id.ionos.mx + + Login_URL_STRATO + http://id.strato.mx + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 05f0da2be688a..117257838559b 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -478,6 +478,10 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Login_URL http://id.ionos.fr + + Login_URL_STRATO + http://id.strato.fr + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 74c2468353214..4b8a04ce66937 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -471,6 +471,10 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL http://id.ionos.it + + Login_URL_STRATO + http://id.strato.it + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index 09115c3ce4474..7fed7541efc91 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -471,6 +471,10 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Login_URL http://id.ionos.de + + Login_URL_STRATO + http://id.strato.de + OCC::UpdateE2eeFolderMetadataJob From 0272f83fe72ed3b4ea191f326695a96fc327915f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 18 May 2026 14:38:59 +0200 Subject: [PATCH 123/148] NoIssue - Translation script checks both craft paths --- translation_scripts/merge_translation.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index c6360fc6b58ac..e2f6d1a42312d 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -438,8 +438,9 @@ def run_lupdate_from_branch(ts_files, nc_branch): # Build lupdate command pointing at the worktree's source directories src_dirs = ["src/libsync", "src/gui", "src/csync", "src/common", "src/cmd"] + craft_root = r"C:\CraftRoot" if os.path.isdir(r"C:\CraftRoot") else r"C:\Craft64" command = [ - r"C:\CraftRoot\bin\lupdate.exe", + os.path.join(craft_root, "bin", "lupdate.exe"), "-locations", "none", "-no-obsolete", "-no-ui-lines", @@ -465,8 +466,10 @@ def run_lupdate_from_branch(ts_files, nc_branch): cwd=repo_root, check=False) def run_lupdate(ts_files, mode="default"): + craft_root = r"C:\CraftRoot" if os.path.isdir(r"C:\CraftRoot") else r"C:\Craft64" + lupdate = os.path.join(craft_root, "bin", "lupdate.exe") command = [ - r"C:\CraftRoot\bin\lupdate.exe", + lupdate, "-locations", "none", "-no-ui-lines", "-no-sort", @@ -477,9 +480,9 @@ def run_lupdate(ts_files, mode="default"): r"..\src\cmd", "-ts" ] - + command_no_obs = [ - r"C:\CraftRoot\bin\lupdate.exe", + lupdate, "-locations", "none", "-no-ui-lines", "-no-sort", @@ -491,9 +494,9 @@ def run_lupdate(ts_files, mode="default"): r"..\src\cmd", "-ts" ] - + command_location = [ - r"C:\CraftRoot\bin\lupdate.exe", + lupdate, "-locations", "absolute", "-no-sort", "-no-obsolete", From 3a98d9b0793e4a676674972530bf490ccd0cd497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Mon, 18 May 2026 14:55:02 +0200 Subject: [PATCH 124/148] SES-520 - fixed en link --- translation_scripts/en.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 3aabff39fd096..5d390bcf90ffa 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -469,11 +469,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - http://id.ionos.co.uk + http://id.ionos.com Login_URL_STRATO - http://id.strato.co.uk + http://id.strato.com From d76ddcd1e7ad44b893b102fa176a499e2229735a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 19 May 2026 10:07:52 +0200 Subject: [PATCH 125/148] SES-434 - moved GUIDS into IONOS.cmake --- CMakeLists.txt | 24 +++++++----------------- IONOS.cmake | 8 ++++++++ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5ecbd382b0af..8aa5e5120052f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,6 @@ endif() set(BIN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") include(${CMAKE_SOURCE_DIR}/NEXTCLOUD.cmake) -include(${CMAKE_SOURCE_DIR}/IONOS.cmake) set(QT_VERSION_MAJOR "6") set(REQUIRED_QT_VERSION "6.8.0") @@ -39,22 +38,13 @@ set(REQUIRED_QT_VERSION "6.8.0") # CfAPI Shell Extensions set( CFAPI_SHELL_EXTENSIONS_LIB_NAME CfApiShellExtensions ) -if(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") - set( CFAPI_SHELLEXT_APPID_REG "{8DA6F907-784F-4A7A-A704-83342A8C205E}") - set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "A748032D-2EBF-40A3-BDC1-94C19D28A108" ) - set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "F8CE69E3-B804-4738-BF31-3CBD0E9A6674" ) - set( APPLICATION_URI_HANDLER_SCHEME "ionos") -elseif(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") - set( CFAPI_SHELLEXT_APPID_REG "{7D9A4B29-A898-4425-8CC6-E12C45D39D78}") - set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "02D43837-7958-4DFB-9CB3-B7FB10276012" ) - set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "57822EDA-7186-4AD6-A113-5A7471A1F917" ) - set( APPLICATION_URI_HANDLER_SCHEME "strato") -else() - set( CFAPI_SHELLEXT_APPID_REG "{E314A650-DCA4-416E-974E-18EA37C213EA}") - set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "1E62D59A-6EA4-476C-B707-4A32E88ED822" ) - set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "6FF9B5B6-389F-444A-9FDD-A286C36EA079" ) - set( APPLICATION_URI_HANDLER_SCHEME "nc") -endif() +# Defaults for Nextcloud; overridden per whitelabel in IONOS.cmake +set( CFAPI_SHELLEXT_APPID_REG "{E314A650-DCA4-416E-974E-18EA37C213EA}") +set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "1E62D59A-6EA4-476C-B707-4A32E88ED822" ) +set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "6FF9B5B6-389F-444A-9FDD-A286C36EA079" ) +set( APPLICATION_URI_HANDLER_SCHEME "nc") + +include(${CMAKE_SOURCE_DIR}/IONOS.cmake) set( CFAPI_SHELLEXT_APPID_DISPLAY_NAME "${APPLICATION_NAME} CfApi Shell Extensions" ) set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID_REG "{${CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID}}" ) diff --git a/IONOS.cmake b/IONOS.cmake index 6b6264f3d5d1b..0641da2e22ab6 100644 --- a/IONOS.cmake +++ b/IONOS.cmake @@ -58,6 +58,10 @@ if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "F125E371-1E5D-424C-B738-70447A65F08C" ) add_compile_definitions(STRATO_WL_BUILD) + set( CFAPI_SHELLEXT_APPID_REG "{7D9A4B29-A898-4425-8CC6-E12C45D39D78}") + set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "02D43837-7958-4DFB-9CB3-B7FB10276012" ) + set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "57822EDA-7186-4AD6-A113-5A7471A1F917" ) + set( APPLICATION_URI_HANDLER_SCHEME "strato") elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") set( APPLICATION_VENDOR "IONOS SE" ) set( APPLICATION_REV_DOMAIN "com.ionos.hidrivenext.desktopclient" ) @@ -65,4 +69,8 @@ elseif(APPLICATION_NAME STREQUAL "IONOS HiDrive Next") # MSI Upgrade Code (without brackets) set( WIN_MSI_UPGRADE_CODE "6C9E5670-E8A9-4BBD-9BDF-D003794AC177" ) add_compile_definitions(IONOS_WL_BUILD) + set( CFAPI_SHELLEXT_APPID_REG "{8DA6F907-784F-4A7A-A704-83342A8C205E}") + set( CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID "A748032D-2EBF-40A3-BDC1-94C19D28A108" ) + set( CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID "F8CE69E3-B804-4738-BF31-3CBD0E9A6674" ) + set( APPLICATION_URI_HANDLER_SCHEME "ionos") endif() \ No newline at end of file From c5c6a24207dfc15969eeb2464b2d7a8b40ce625f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Tue, 19 May 2026 13:04:25 +0200 Subject: [PATCH 126/148] SES-434 - Added macOS Icon in black and white folder --- .../black/strato-hidrive-next-macOS-icon.svg | 29 ++----------------- .../white/strato-hidrive-next-macOS-icon.svg | 29 ++----------------- 2 files changed, 6 insertions(+), 52 deletions(-) diff --git a/theme/black/strato-hidrive-next-macOS-icon.svg b/theme/black/strato-hidrive-next-macOS-icon.svg index c7e0c87b90b2d..4665637f6ddb3 100644 --- a/theme/black/strato-hidrive-next-macOS-icon.svg +++ b/theme/black/strato-hidrive-next-macOS-icon.svg @@ -1,27 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/theme/white/strato-hidrive-next-macOS-icon.svg b/theme/white/strato-hidrive-next-macOS-icon.svg index c7e0c87b90b2d..4665637f6ddb3 100644 --- a/theme/white/strato-hidrive-next-macOS-icon.svg +++ b/theme/white/strato-hidrive-next-macOS-icon.svg @@ -1,27 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + From fd94b1566b048c95b61dfb89f5230b4f7b17d534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 20 May 2026 07:57:25 +0200 Subject: [PATCH 127/148] SES-515 - Add strato team identifer --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8aa5e5120052f..0eaa2fda0e329 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -227,7 +227,11 @@ if(OWNCLOUD_5XX_NO_BLACKLIST) endif() if(APPLE) - set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "5TDLCVD243." CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) + if(APPLICATION_NAME STREQUAL "STRATO HiDrive Next") + set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "6UU53QCET7." CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) + else() + set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "5TDLCVD243." CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" ) + endif() endif() if(BUILD_CLIENT) From e8e2e9b5fbe46235049a7a1dcdad88465777db36 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 20 May 2026 10:20:31 +0200 Subject: [PATCH 128/148] No-Issue Fix IONOS launch config --- .vscode/launch.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index c2c1566fe015c..ebf989268ef95 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -50,7 +50,7 @@ "name": "(RelWithDebInfo) Launch IONOS HiDriveNext", "type": "cppvsdbg", "request": "launch", - "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/strato-hidrive-next.exe", + "program": "${workspaceFolder}/../build/win32-MSVC-x64/RelWithDebInfo/bin/ionos-hidrive-next.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", From cc3cfd002a0de1250c26a7f6f6ba45e495c27614 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 20 May 2026 11:09:51 +0200 Subject: [PATCH 129/148] SES-522 update translation files to include seperate resources for ionos and strato --- translation_scripts/de_DE.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/en.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/en_GB.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/es.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/es_MX.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/fr.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/it.ts | 60 +++++++++++++++++++++++++----------- translation_scripts/nl.ts | 60 +++++++++++++++++++++++++----------- 8 files changed, 336 insertions(+), 144 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 3aee39c8d2e50..370b7ada53e28 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -182,7 +182,11 @@ Should the accounts be imported? Synchronisierung jetzt erzwingen - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0067 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0067 @@ -359,22 +363,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Data Protection Datenschutzbestimmungen - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0044 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0045 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0047 - More Information Mehr Informationen @@ -464,7 +452,11 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e OCC::Theme - easy/0118 + Help-Link + easy/0148 + + + Help-Link_STRATO easy/0148 @@ -475,6 +467,38 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Login_URL_STRATO http://id.strato.de + + Privacy-Link + https://wl.hidrive.com/easy/0045 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0045 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0044 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0044 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0047 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0047 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 5d390bcf90ffa..f5c9e308759ca 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -182,7 +182,11 @@ Should the accounts be imported? Force sync now - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0077 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0077 @@ -359,22 +363,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Data Protection Data Protection - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0004 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0005 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0007 - More Information More Information @@ -464,7 +452,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme - easy/0118 + Help-Link + easy/0108 + + + Help-Link_STRATO easy/0108 @@ -475,6 +467,38 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO http://id.strato.com + + Privacy-Link + https://wl.hidrive.com/easy/0005 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0005 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0004 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0004 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0007 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0007 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index 75eb61e6ee801..ce043407fc9cd 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -182,7 +182,11 @@ Should the accounts be imported? Force sync now - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0057 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0057 @@ -359,22 +363,6 @@ Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie Data Protection Data Protection - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0004 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0005 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0007 - More Information More Information @@ -464,7 +452,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme - easy/0118 + Help-Link + easy/0108 + + + Help-Link_STRATO easy/0108 @@ -475,6 +467,38 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO http://id.strato.co.uk + + Privacy-Link + https://wl.hidrive.com/easy/0005 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0005 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0004 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0004 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0007 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0007 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 55ebb8441c569..14c4ff1145812 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -183,7 +183,11 @@ Should the accounts be imported? Forzar la sincronización ahora - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0087 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0087 @@ -364,22 +368,6 @@ Alternativamente, puedes restaurar todos los archivos borrados descargándolos d Data Protection Protección de datos - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0014 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0015 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0017 - More Information Más información @@ -469,7 +457,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::Theme - easy/0118 + Help-Link + easy/0118 + + + Help-Link_STRATO easy/0118 @@ -480,6 +472,38 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL_STRATO http://id.strato.es + + Privacy-Link + https://wl.hidrive.com/easy/0015 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0015 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0014 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0014 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0017 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0017 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index 16ff0f1394503..6cbea4ea51047 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -183,7 +183,11 @@ Should the accounts be imported? Forzar la sincronización ahora - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0087 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0087 @@ -364,22 +368,6 @@ Alternativamente, puedes restaurar todos los archivos borrados descargándolos d Data Protection Protección de datos - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0014 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0015 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0017 - More Information Más información @@ -469,7 +457,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::Theme - easy/0118 + Help-Link + easy/0118 + + + Help-Link_STRATO easy/0118 @@ -480,6 +472,38 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL_STRATO http://id.strato.mx + + Privacy-Link + https://wl.hidrive.com/easy/0015 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0015 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0014 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0014 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0017 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0017 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 117257838559b..bf7b5c7b18285 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -189,7 +189,11 @@ Doivent-ils être importés ? Forcer la synchronisation maintenant - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0057 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0057 @@ -366,22 +370,6 @@ Vous pouvez également restaurer tous les fichiers supprimés en les télécharg Data Protection Protection des données - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0024 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0025 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0027 - More Information Plus d’informations @@ -471,7 +459,11 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress OCC::Theme - easy/0118 + Help-Link + easy/0128 + + + Help-Link_STRATO easy/0128 @@ -482,6 +474,38 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Login_URL_STRATO http://id.strato.fr + + Privacy-Link + https://wl.hidrive.com/easy/0025 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0025 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0024 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0024 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0027 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0027 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 4b8a04ce66937..6e58e5592862a 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -182,7 +182,11 @@ Should the accounts be imported? Forza ora la sincronizzazione - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0067 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0067 @@ -359,22 +363,6 @@ Alternatively, you can restore all deleted files by downloading them from the se Data Protection disposizioni in materia di protezione dei dati - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0034 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0035 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0037 - More Information Ulteriori informazioni @@ -464,7 +452,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme - easy/0118 + Help-Link + easy/0138 + + + Help-Link_STRATO easy/0138 @@ -475,6 +467,38 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO http://id.strato.it + + Privacy-Link + https://wl.hidrive.com/easy/0035 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0035 + + + LegalNotice-Link + https://wl.hidrive.com/easy/0034 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0034 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0037 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0037 + OCC::UpdateE2eeFolderMetadataJob diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index 7fed7541efc91..b1881d2943b0a 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -182,7 +182,11 @@ Moeten de accounts worden geïmporteerd? Synchronisatie nu forceren - https://wl.hidrive.com/easy/0057 + ExpandMemory-Link + https://wl.hidrive.com/easy/0097 + + + ExpandMemory-Link_STRATO https://wl.hidrive.com/easy/0097 @@ -359,22 +363,6 @@ U kunt ook alle verwijderde bestanden herstellen door ze van de server te downlo Data Protection Gegevensbescherming - - https://wl.hidrive.com/easy/0004 - https://wl.hidrive.com/easy/0054 - - - https://wl.hidrive.com/easy/0005 - https://wl.hidrive.com/easy/0055 - - - https://wl.hidrive.com/easy/0006 - https://wl.hidrive.com/easy/0006 - - - https://wl.hidrive.com/easy/0007 - https://wl.hidrive.com/easy/0057 - More Information Meer informatie @@ -464,7 +452,11 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OCC::Theme - easy/0118 + Help-Link + easy/0108 + + + Help-Link_STRATO easy/0108 @@ -475,6 +467,38 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Login_URL_STRATO http://id.strato.de + + LegalNotice-Link + https://wl.hidrive.com/easy/0054 + + + LegalNotice-Link_STRATO + https://wl.hidrive.com/easy/0054 + + + Privacy-Link + https://wl.hidrive.com/easy/0055 + + + Privacy-Link_STRATO + https://wl.hidrive.com/easy/0055 + + + OpenSource-Link + https://wl.hidrive.com/easy/0006 + + + OpenSource-Link_STRATO + https://wl.hidrive.com/easy/0006 + + + MoreInformation-Link + https://wl.hidrive.com/easy/0057 + + + MoreInformation-Link_STRATO + https://wl.hidrive.com/easy/0057 + OCC::UpdateE2eeFolderMetadataJob From 471036b17875f57631356cf81b6930ed388eb739 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 20 May 2026 11:13:19 +0200 Subject: [PATCH 130/148] SES-522 use newly added link resources --- src/gui/accountsettings.cpp | 7 ++++++- src/gui/generalsettings.cpp | 31 ++++++++++++++++++++++++++----- src/gui/owncloudgui.cpp | 6 +++++- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 671516e6f84b9..5a1dd7d82d851 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1620,7 +1620,12 @@ void AccountSettings::slotHideSelectiveSyncWidget() void AccountSettings::slotExpandMemoryClicked() { - QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0057"))); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "ExpandMemory-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "ExpandMemory-Link"))); + #endif + } void AccountSettings::slotSelectiveSyncChanged(const QModelIndex &topLeft, diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 597b9f7c63457..d7962aefa41f8 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -262,7 +262,12 @@ GeneralSettings::GeneralSettings(QWidget *parent) // connect(_ui->legalNoticeButton, &QPushButton::clicked, this, &GeneralSettings::slotShowLegalNotice); connect(_ui->usageDocumentationButton, &QPushButton::clicked, this, []() { - Utility::openBrowser(QUrl(Theme::instance()->helpUrl())); + #ifdef STRATO_WL_BUILD + Utility::openBrowser(QUrl(QCoreApplication::translate("OCC::Theme", "Help-Link_STRATO"))); + #else + Utility::openBrowser(QUrl(QCoreApplication::translate("OCC::Theme", "Help-Link"))); + #endif + }); loadMiscSettings(); @@ -372,22 +377,38 @@ void GeneralSettings::connectToTracking() void GeneralSettings::slotOpenMoreInformationLink() { - QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0007"))); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "MoreInformation-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "MoreInformation-Link"))); + #endif } void GeneralSettings::slotOpenLegalNoticeLink() { - QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0004"))); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "LegalNotice-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "LegalNotice-Link"))); + #endif } void GeneralSettings::slotOpenOpenSourceLink() { - QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0006"))); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "OpenSource-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "OpenSource-Link"))); + #endif } void GeneralSettings::slotOpenPrivacyLink() { - QDesktopServices::openUrl(QUrl(tr("https://wl.hidrive.com/easy/0005"))); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "Privacy-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "Privacy-Link"))); + #endif } QSize GeneralSettings::sizeHint() const diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 283dc490e5071..7aa6cceecaf49 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -717,7 +717,11 @@ void ownCloudGui::slotOpenOwnCloud() void ownCloudGui::slotHelp() { - QDesktopServices::openUrl(QUrl(Theme::instance()->helpUrl())); + #ifdef STRATO_WL_BUILD + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "Help-Link_STRATO"))); + #else + QDesktopServices::openUrl(QUrl(QCoreApplication::translate("OCC::Theme", "Help-Link"))); + #endif } void ownCloudGui::raiseDialog(QWidget *raiseWidget) From 491c34bad929f2c439d391024aa81934b31e2b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 20 May 2026 10:34:37 +0200 Subject: [PATCH 131/148] SES-515 - improved strato signing capability --- admin/osx/ionos_macmaker/mac_craft.sh | 28 ++++-- admin/osx/ionos_macmaker/readme.md | 123 ++++++++++++++++++-------- 2 files changed, 106 insertions(+), 45 deletions(-) diff --git a/admin/osx/ionos_macmaker/mac_craft.sh b/admin/osx/ionos_macmaker/mac_craft.sh index 35943bc4018a4..0ac49038fdd4c 100755 --- a/admin/osx/ionos_macmaker/mac_craft.sh +++ b/admin/osx/ionos_macmaker/mac_craft.sh @@ -3,20 +3,22 @@ # This script is used to build the Mac OS X version of the IONOS client. # Parse the command line arguments -while getopts "b:p:s:n:k:civtu" opt; do +while getopts "b:p:s:n:k:q:civtuw" opt; do case ${opt} in b )REL_BASE_DIR=$OPTARG;; p )REL_PATH_TO_PKG=$OPTARG ;; s )IONOS_TEAM_IDENTIFIER=$OPTARG ;; n )NC_TEAM_IDENTIFIER=$OPTARG ;; k )SPARKLE_KEY=$OPTARG ;; # not used + q )KEYCHAIN_PROFILE_OVERRIDE=$OPTARG ;; c )CLEAN_REBUILD=true ;; i )PACKAGE_INSTALLER=true ;; - v )VERBOSE=true ;; + v )VERBOSE=true ;; t )TEAM_PATCHING=true ;; u )BUILD_UPDATER=true ;; + w )USE_STRATO=true ;; \? ) - echo "Usage: mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-c CLEAN_REBUILD] [-i PACKAGE_INSTALLER] [-v VERBOSE] [-t TEAM_PATCHING] [-u BUILD_UPDATER]" + echo "Usage: mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-q ] [-c CLEAN_REBUILD] [-i PACKAGE_INSTALLER] [-v VERBOSE] [-t TEAM_PATCHING] [-u BUILD_UPDATER] [-w USE_STRATO]" exit 1 ;; esac @@ -54,10 +56,22 @@ PATH_TO_PKG="$( realpath "$REL_PATH_TO_PKG")" PKG_FULLNAME=$(basename "$PATH_TO_PKG") PKG_FILENAME="${PKG_FULLNAME%.pkg}" -PRODUCT_NAME="IONOS HiDrive Next" -UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" +if [ "$USE_STRATO" = true ]; then + PRODUCT_NAME="STRATO HiDrive Next" + UNDERSCORE_PRODUCT_NAME="STRATO_HiDrive_Next" + CODE_SIGN_IDENTITY="STRATO AG ($IONOS_TEAM_IDENTIFIER)" + KEYCHAIN_PROFILE="STRATO AG HiDrive Next" +else + PRODUCT_NAME="IONOS HiDrive Next" + UNDERSCORE_PRODUCT_NAME="IONOS_HiDrive_Next" + CODE_SIGN_IDENTITY="IONOS SE ($IONOS_TEAM_IDENTIFIER)" + KEYCHAIN_PROFILE="IONOS SE HiDrive Next" +fi + +if [ -n "$KEYCHAIN_PROFILE_OVERRIDE" ]; then + KEYCHAIN_PROFILE="$KEYCHAIN_PROFILE_OVERRIDE" +fi -CODE_SIGN_IDENTITY="IONOS SE ($IONOS_TEAM_IDENTIFIER)" INSTALLER_CERT="Developer ID Installer: $CODE_SIGN_IDENTITY" APPLICATION_CERT="Developer ID Application: $CODE_SIGN_IDENTITY" @@ -199,7 +213,7 @@ productsign --timestamp --sign "$INSTALLER_CERT" $INSTALLER_PKG.unsigned "$PACKA # catch the output of the notarytool command OUTPUT=$(xcrun notarytool submit --wait "$PACKAGE_PATH"\ - --keychain-profile "IONOS SE HiDrive Next") + --keychain-profile "$KEYCHAIN_PROFILE") SUBMISSION_STATUS=$(echo $OUTPUT | grep -o 'status: [^ ]*' | cut -d ' ' -f 2) diff --git a/admin/osx/ionos_macmaker/readme.md b/admin/osx/ionos_macmaker/readme.md index ccbb3ec269c92..0856358ac7064 100644 --- a/admin/osx/ionos_macmaker/readme.md +++ b/admin/osx/ionos_macmaker/readme.md @@ -1,6 +1,6 @@ # mac_craft.sh -This script automates the build and signing process for the **IONOS HiDrive Next** macOS client installer. It takes an existing `.pkg` package, optionally patches team identifiers, resigns the app, reassembles the installer, notarizes it with Apple, and finally creates a **Sparkle update package** for distribution. +This script automates the build and signing process for the **IONOS HiDrive Next** and **STRATO HiDrive Next** macOS client installers. It takes an existing `.pkg` package, optionally patches team identifiers, resigns the app, reassembles the installer, notarizes it with Apple, and finally creates a **Sparkle update package** for distribution. --- @@ -10,29 +10,68 @@ This script automates the build and signing process for the **IONOS HiDrive Next * **Patch** identifiers if required (team patching mode) * **Resign** the app with the correct `Developer ID` certificates * **Reassemble** the installer package with updated files -* **Notarize and staple** the final package with Apple’s notarization service +* **Notarize and staple** the final package with Apple's notarization service * **Build Sparkle update** archives for app updates +* **White-label support** for STRATO HiDrive Next via `-w` --- ## Usage ```bash -./mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-c] [-i] [-v] [-t] [-u] +./mac_craft.sh [-b ] [-p ] [-s ] [-n ] [-k ] [-q ] [-c] [-i] [-v] [-t] [-u] [-w] ``` ### Options -* `-b ` : Base directory for build and output -* `-p ` : Path to the original `.pkg` installer -* `-s ` : IONOS Team Identifier (required for signing) -* `-n ` : Old Team Identifier (used for patching if needed) -* `-k ` : Sparkle signing key (**currently unused**) -* `-c` : Clean rebuild (delete old extracted directory before expanding) -* `-i` : Enable installer packaging (otherwise exits after signing) -* `-v` : Verbose mode (print debug output) -* `-t` : Enable team patching mode (replaces `NC_TEAM_IDENTIFIER` with `IONOS_TEAM_IDENTIFIER`) -* `-u` : Build Sparkle updater package +| Flag | Argument | Description | +|------|----------|-------------| +| `-b` | `` | Base directory for build and output | +| `-p` | `` | Path to the original `.pkg` installer | +| `-s` | `` | Apple Developer Team ID of the signing entity (required) | +| `-n` | `` | Original Nextcloud Team ID (required when using `-t`) | +| `-k` | `` | Sparkle signing key (**currently unused**) | +| `-q` | `` | Override the notarytool keychain profile name (optional) | +| `-c` | | Clean rebuild — delete the old extracted directory before expanding | +| `-i` | | Enable installer packaging (script exits after signing if omitted) | +| `-v` | | Verbose mode — print debug output (`set -xe`) | +| `-t` | | Enable team patching — replaces `NC_TEAM_IDENTIFIER` with the signing Team ID in plists and binaries | +| `-u` | | Build and sign a Sparkle updater archive | +| `-w` | | White-label mode: build **STRATO HiDrive Next** instead of IONOS HiDrive Next | + +--- + +## Brand defaults + +The following values are set automatically based on whether `-w` is passed: + +| | IONOS (default) | STRATO (`-w`) | +|--|-----------------|----------------| +| Product name | `IONOS HiDrive Next` | `STRATO HiDrive Next` | +| Code sign identity | `IONOS SE ()` | `STRATO AG ()` | +| Keychain profile | `IONOS SE HiDrive Next` | `STRATO AG HiDrive Next` | + +Use `-q` to override the keychain profile name when the stored credentials use a different name. + +### Setting up notarization credentials + +Each brand requires its own notarytool keychain profile to be set up once per machine by a member of the corresponding Apple Developer team: + +```bash +# IONOS +xcrun notarytool store-credentials "IONOS SE HiDrive Next" \ + --apple-id "developer@ionos.com" \ + --team-id "" \ + --password "xxxx-xxxx-xxxx-xxxx" + +# STRATO +xcrun notarytool store-credentials "STRATO AG HiDrive Next" \ + --apple-id "developer@strato.com" \ + --team-id "" \ + --password "xxxx-xxxx-xxxx-xxxx" +``` + +The password is an **app-specific password** generated at [appleid.apple.com](https://appleid.apple.com) — not the Apple ID login password. The Apple ID used must be a member of the respective Apple Developer team. --- @@ -45,39 +84,40 @@ This script automates the build and signing process for the **IONOS HiDrive Next 2. **Patch Identifiers (Optional)** - * If `-t` is used, the script searches `.plist` and binary files for the old team identifier. - * It replaces it with the new `IONOS_TEAM_IDENTIFIER`. + * If `-t` is used, the script searches `.plist` and binary files for the old Nextcloud team identifier. + * It replaces it with the signing `TEAM_IDENTIFIER` passed via `-s`. * Both IDs must have the same character length to ensure safe binary patching. 3. **Resign Application** * The client `.app` is signed using the `mac-crafter` tool. - * Codesign identity: `Developer ID Application: IONOS SE (TEAM_ID)` - * Verifies that the signed app’s TeamIdentifier matches the expected one. + * Codesign identity is brand-dependent (see [Brand defaults](#brand-defaults) above). + * Verifies that the signed app's `TeamIdentifier` matches the expected one. 4. **Reassemble Installer** * Recreates the package payload (`mkbom`, `cpio`, `pkgutil --flatten`). - * Signs the installer with: - `Developer ID Installer: IONOS SE (TEAM_ID)` + * Signs the inner package and final installer using the brand's `Developer ID Installer` certificate. * Uses `productbuild` and `productsign` to generate the final signed package. 5. **Notarization & Stapling** - * Submits the package to Apple’s Notary Service (`xcrun notarytool`). - * Waits for the result, validates acceptance. + * Submits the package to Apple's Notary Service (`xcrun notarytool`). + * Uses the brand's keychain profile (overridable via `-q`). + * Waits for the result and validates acceptance. * Applies a **staple** to the installer (`xcrun stapler staple`). 6. **Sparkle Update Build (Optional)** - * Downloads Sparkle if not available. + * Downloads Sparkle if not already present. * Archives the signed package as `.tbz`. - * Signs the archive using Sparkle’s `sign_update` tool. + * Signs the archive using Sparkle's `sign_update` tool. --- -## Example +## Examples +**IONOS build:** ```bash ./mac_craft.sh \ -b /Users/developer/build \ @@ -87,15 +127,24 @@ This script automates the build and signing process for the **IONOS HiDrive Next -i -c -t -u -v ``` -This command will: +**STRATO build:** +```bash +./mac_craft.sh \ + -b /Users/developer/build \ + -p ./STRATO.pkg \ + -s DEF456UVW \ + -n OLDTEAMID \ + -i -c -t -u -v -w +``` -* Clean and rebuild the working directory -* Expand `IONOS.pkg` -* Patch from `OLDTEAMID` → `ABC123XYZ` -* Resign the app and installer -* Notarize and staple the package -* Build a signed Sparkle update archive -* Run in verbose mode +**With custom keychain profile:** +```bash +./mac_craft.sh \ + -b /Users/developer/build \ + -p ./STRATO.pkg \ + -s DEF456UVW \ + -i -w -q "My Custom Profile" +``` --- @@ -103,11 +152,11 @@ This command will: * macOS with Xcode tools installed * Apple Developer account with: - - * **Developer ID Application** certificate - * **Developer ID Installer** certificate + * **Developer ID Application** certificate for the signing entity + * **Developer ID Installer** certificate for the signing entity +* Notarytool keychain profile stored on the build machine (see [Setting up notarization credentials](#setting-up-notarization-credentials)) * `mac-crafter` tool (Swift package, provided by Nextcloud) -* `pkgutil`, `productbuild`, `productsign`, `notarytool`, `stapler`, `xcrun`, `grep`, `sed`, `mkbom`, `cpio`, `gzip` +* System tools: `pkgutil`, `productbuild`, `productsign`, `notarytool`, `stapler`, `xcrun`, `grep`, `sed`, `mkbom`, `cpio`, `gzip` * `wget`, `tar`, `perl` for Sparkle integration --- @@ -115,12 +164,10 @@ This command will: ## Output * Final notarized installer: - ``` /.resigned.pkg ``` * Sparkle update archive (if `-u` enabled): - ``` /.resigned.pkg.tbz ``` From 0ff6570cefff249985682a9192e43cd675b13a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 20 May 2026 12:42:44 +0200 Subject: [PATCH 132/148] SES-523 - Update readme and start.sh (added param for auto start) --- admin/osx/ionos_macmaker/readme.md | 97 ++++++++++++++++++++++++++++++ admin/osx/ionos_macmaker/start.sh | 62 +++++++++---------- 2 files changed, 125 insertions(+), 34 deletions(-) diff --git a/admin/osx/ionos_macmaker/readme.md b/admin/osx/ionos_macmaker/readme.md index 0856358ac7064..fe0eebfce38d4 100644 --- a/admin/osx/ionos_macmaker/readme.md +++ b/admin/osx/ionos_macmaker/readme.md @@ -1,3 +1,100 @@ +# start.sh — Local Debug Builds + +> **This script is for local development only.** While it technically contains signing and installer packaging code, those paths are not maintained for release use. For production signing, notarization, and installer creation use [mac_craft.sh](#mac_craftsh) instead. + +`start.sh` compiles the client from source using CMake and Ninja, deploys it into a product directory via `mac-crafter`, and immediately launches it for testing — all in one step. It is the primary entry point for a developer working locally on the IONOS HiDrive Next macOS client. + +--- + +## Usage + +```bash +./start.sh -a -b [options] +``` + +`-a` and `-b` are always required. + +### Options + +| Flag | Argument | Description | +|------|----------|-------------| +| `-a` | `` | Target CPU architecture — `arm64` or `x86_64` (required) | +| `-b` | `` | Build output directory (required) | +| `-s` | `` | Local signing identity — use your personal **Apple Development** cert. If omitted, signing is skipped | +| `-c` | | Clean rebuild — wipe the build directory before building | +| `-f` | | Build the FileProvider extension | +| `-o` | | Build as an OSX bundle (`.app`) instead of a standalone binary | +| `-r` | | Launch the app automatically after the build completes | +| `-u` | | Download and integrate Sparkle (only meaningful on clean rebuilds) | +| `-m` | | Skip `macdeployqt` | + +### Recommended local build workflow + +This is the standard way to build the client locally. + +**First build — always do a clean build:** +```bash +./start.sh -b ~/repos/build/desktop -a "x86_64" -f -m -o -r -c +``` + +**All subsequent builds — omit `-c`:** +```bash +./start.sh -b ~/repos/build/desktop -a "x86_64" -f -m -o -r +``` + +Skipping `-c` reuses the existing build directory, so only changed files are recompiled — this is significantly faster. + +### The `-m` flag and starting the app + +`-m` skips `macdeployqt`, which copies all Qt frameworks and plugins into the `.app` bundle. This makes the build much faster, but has an important consequence: + +| | With `-m` (recommended for dev) | Without `-m` | +|---|---|---| +| Build time | Fast | Very long | +| Start from Finder | **Does not work** — Qt dependencies are missing inside the bundle | Works | +| Start via `-r` | Works — `launch_app` sets the required library paths | Works | + +**When using `-m`, the easiest way to start the app is `-r`**, which sets all required Craft library paths before launching. + +Alternatively, you can set the paths manually in your terminal and launch from there: + +```bash +export CRAFT="$HOME/Craft64" +export DYLD_LIBRARY_PATH="$CRAFT/lib" +export DYLD_FRAMEWORK_PATH="$CRAFT/lib" +export QT_PLUGIN_PATH="$CRAFT/plugins" +export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" +export QML2_IMPORT_PATH="$CRAFT/qml" +"$HOME/repos/build/desktop/bin/IONOS HiDrive Next.app/Contents/MacOS/IONOS HiDrive Next" +``` + +## What it does + +1. Kills any running instance of the client +2. Runs `cmake` to configure the build (always reconfigures) +3. Runs `ninja install` to build and deploy into `/product` +4. If `-s` is omitted — opens the product directory in Finder; launches the app if `-r` is set +5. If `-s` is provided — signs frameworks, plugins, and the `.app` bundle with the given identity, then verifies the TeamIdentifier + +## What it does NOT do (use mac_craft.sh instead) + +The script contains `-i` (installer packaging) and notarization code, but these are **not suitable for release builds**: + +* The installer call (`create_mac.sh`) has the IONOS team ID hardcoded +* The notarization step also uses a hardcoded IONOS keychain profile +* No white-label / STRATO support + +For anything that produces a deliverable — signing a release build, building an installer, notarizing, or creating a Sparkle archive — use **mac_craft.sh**. + +## Requirements + +* macOS with Xcode tools installed +* Craft64 installed at `~/Craft64` +* `cmake`, `ninja`, `ccache` +* Optionally: a personal **Apple Development** certificate for local signing + +--- + # mac_craft.sh This script automates the build and signing process for the **IONOS HiDrive Next** and **STRATO HiDrive Next** macOS client installers. It takes an existing `.pkg` package, optionally patches team identifiers, resigns the app, reassembles the installer, notarizes it with Apple, and finally creates a **Sparkle update package** for distribution. diff --git a/admin/osx/ionos_macmaker/start.sh b/admin/osx/ionos_macmaker/start.sh index a31ca94d20dce..03f39f8d9c822 100755 --- a/admin/osx/ionos_macmaker/start.sh +++ b/admin/osx/ionos_macmaker/start.sh @@ -20,23 +20,34 @@ sign_folder_content(){ export -f sign_folder_content +launch_app() { + export CRAFT="$HOME/Craft64" + export DYLD_LIBRARY_PATH="$CRAFT/lib" + export DYLD_FRAMEWORK_PATH="$CRAFT/lib" + export QT_PLUGIN_PATH="$CRAFT/plugins" + export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" + export QML2_IMPORT_PATH="$CRAFT/qml" + "$BUILD_DIR/bin/IONOS HiDrive Next.app/Contents/MacOS/IONOS HiDrive Next" +} + # This script is used to build the Mac OS X version of the IONOS client. set -xe # Parse the command line arguments -while getopts "a:b:s:cifoum" opt; do +while getopts "a:b:s:cifoumr" opt; do case ${opt} in a ) ARCHITECTURE=$OPTARG ;; - b )BUILD_DIR=$OPTARG;; - s )CODE_SIGN_IDENTITY=$OPTARG ;; - c )CLEAN_REBUILD=true ;; - i )PACKAGE_INSTALLER=true ;; - f )BUILD_FILEPROVIDER=true ;; - o )OSX_BUNDLE=true ;; - u )BUILD_UPDATER=true ;; - m )SKIP_MACDEPLOY=true ;; + b ) BUILD_DIR=$OPTARG ;; + s ) CODE_SIGN_IDENTITY=$OPTARG ;; + c ) CLEAN_REBUILD=true ;; + i ) PACKAGE_INSTALLER=true ;; + f ) BUILD_FILEPROVIDER=true ;; + o ) OSX_BUNDLE=true ;; + u ) BUILD_UPDATER=true ;; + m ) SKIP_MACDEPLOY=true ;; + r ) RUN_AFTER_BUILD=true ;; \? ) - echo "Usage: start.sh [-b ] [-s ] [-c] [-i]" + echo "Usage: start.sh -a -b [-s ] [-c] [-f] [-i] [-m] [-o] [-r] [-u]" exit 1 ;; esac @@ -111,8 +122,8 @@ fi # Nach Zeile ~133, vor dem eigentlichen Build-Befehl (ninja/cmake --build) # QML-Ressourcen invalidieren damit Änderungen erkannt werden -find "$BUILD_DIR" -name "*.qmlc" -delete -find "$BUILD_DIR" -name "qrc_*.cpp" -delete +# find "$BUILD_DIR" -name "*.qmlc" -delete +# find "$BUILD_DIR" -name "qrc_*.cpp" -delete # Build the client # Only reconfigure if this is a clean build or no CMakeCache exists yet @@ -146,20 +157,11 @@ ninja -C $BUILD_DIR install -v # Sign the client # CODE_SIGN_IDENTITY="Developer ID Application: IONOS SE (5TDLCVD243)" -# Check if CODE_SIGN_IDENTITY is set, if not exit +# Check if CODE_SIGN_IDENTITY is set, if not skip signing if [ -z "$CODE_SIGN_IDENTITY" ]; then - echo "Code sign identity not set. Exiting." + echo "Code sign identity not set. Skipping signing." open $PRODUCT_DIR - - export CRAFT="$HOME/Craft64" - - export DYLD_LIBRARY_PATH="$CRAFT/lib" - export DYLD_FRAMEWORK_PATH="$CRAFT/lib" - export QT_PLUGIN_PATH="$CRAFT/plugins" - export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" - export QML2_IMPORT_PATH="$CRAFT/qml" - - $BUILD_DIR/bin/IONOS\ HiDrive\ Next.app/Contents/MacOS/IONOS\ HiDrive\ Next + [ "$RUN_AFTER_BUILD" == "true" ] && launch_app exit 0 fi @@ -194,6 +196,7 @@ fi if [ -z "$PACKAGE_INSTALLER" ]; then echo "Installer packaging not enabled. Exiting." open $PRODUCT_DIR + [ "$RUN_AFTER_BUILD" == "true" ] && launch_app exit 0 fi @@ -221,13 +224,4 @@ xcrun stapler staple $PACKAGE_FILENAME xcrun stapler validate $PACKAGE_FILENAME open $PRODUCT_DIR - -export CRAFT="$HOME/Craft64" - -export DYLD_LIBRARY_PATH="$CRAFT/lib" -export DYLD_FRAMEWORK_PATH="$CRAFT/lib" -export QT_PLUGIN_PATH="$CRAFT/plugins" -export QT_QPA_PLATFORM_PLUGIN_PATH="$CRAFT/plugins/platforms" -export QML2_IMPORT_PATH="$CRAFT/qml" - -$BUILD_DIR/bin/IONOS\ HiDrive\ Next.app/Contents/MacOS/IONOS\ HiDrive\ Next +[ "$RUN_AFTER_BUILD" == "true" ] && launch_app From bfd3b30ce9c4c1325505c64b228685b089da3806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Wed, 20 May 2026 13:09:20 +0200 Subject: [PATCH 133/148] SES-521 - Added nes app icons for strato --- theme/black/strato-hidrive-next-macOS-icon.svg | 16 +++++++++++++--- theme/black/strato_hidrive_next-icon.svg | 9 ++++++--- theme/colored/strato-hidrive-next-macOS-icon.svg | 16 +++++++++++++--- theme/colored/strato_hidrive_next-icon.svg | 9 ++++++--- theme/white/strato-hidrive-next-macOS-icon.svg | 16 +++++++++++++--- theme/white/strato_hidrive_next-icon.svg | 9 ++++++--- 6 files changed, 57 insertions(+), 18 deletions(-) diff --git a/theme/black/strato-hidrive-next-macOS-icon.svg b/theme/black/strato-hidrive-next-macOS-icon.svg index 4665637f6ddb3..3dd6ea1a5618d 100644 --- a/theme/black/strato-hidrive-next-macOS-icon.svg +++ b/theme/black/strato-hidrive-next-macOS-icon.svg @@ -1,4 +1,14 @@ - - - + + + + + + + + + + + + + diff --git a/theme/black/strato_hidrive_next-icon.svg b/theme/black/strato_hidrive_next-icon.svg index 4665637f6ddb3..a8a68e2b13fde 100644 --- a/theme/black/strato_hidrive_next-icon.svg +++ b/theme/black/strato_hidrive_next-icon.svg @@ -1,4 +1,7 @@ - - - + + + + + + diff --git a/theme/colored/strato-hidrive-next-macOS-icon.svg b/theme/colored/strato-hidrive-next-macOS-icon.svg index 4665637f6ddb3..3dd6ea1a5618d 100644 --- a/theme/colored/strato-hidrive-next-macOS-icon.svg +++ b/theme/colored/strato-hidrive-next-macOS-icon.svg @@ -1,4 +1,14 @@ - - - + + + + + + + + + + + + + diff --git a/theme/colored/strato_hidrive_next-icon.svg b/theme/colored/strato_hidrive_next-icon.svg index 4665637f6ddb3..a8a68e2b13fde 100644 --- a/theme/colored/strato_hidrive_next-icon.svg +++ b/theme/colored/strato_hidrive_next-icon.svg @@ -1,4 +1,7 @@ - - - + + + + + + diff --git a/theme/white/strato-hidrive-next-macOS-icon.svg b/theme/white/strato-hidrive-next-macOS-icon.svg index 4665637f6ddb3..3dd6ea1a5618d 100644 --- a/theme/white/strato-hidrive-next-macOS-icon.svg +++ b/theme/white/strato-hidrive-next-macOS-icon.svg @@ -1,4 +1,14 @@ - - - + + + + + + + + + + + + + diff --git a/theme/white/strato_hidrive_next-icon.svg b/theme/white/strato_hidrive_next-icon.svg index 4665637f6ddb3..a8a68e2b13fde 100644 --- a/theme/white/strato_hidrive_next-icon.svg +++ b/theme/white/strato_hidrive_next-icon.svg @@ -1,4 +1,7 @@ - - - + + + + + + From d5083d8e922179b63ea7a19146e15daff9c9a139 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 20 May 2026 15:35:08 +0200 Subject: [PATCH 134/148] SES-522 use help Link resource for both whitelabels --- src/libsync/theme.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index 9cf8acae7eaca..4722186291069 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -505,7 +505,11 @@ QString Theme::helpUrl() const #ifdef APPLICATION_HELP_URL return QString::fromLatin1(APPLICATION_HELP_URL); #else - return QString::fromLatin1("https://wl.hidrive.com/%1").arg(tr("easy/0118")); + #ifdef WL_STRATO_BUILD + return QCoreApplication::translate("OCC::Theme", "Help-Link_STRATO"); + #else + return QCoreApplication::translate("OCC::Theme", "Help-Link"); + #endif #endif } From c14c0ff5eef6e0602a6e1b98a921abb65910bdd0 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Wed, 20 May 2026 17:04:41 +0200 Subject: [PATCH 135/148] SES-522 update redirects --- translation_scripts/de_DE.ts | 18 +++++++++--------- translation_scripts/en.ts | 16 ++++++++-------- translation_scripts/en_GB.ts | 14 +++++++------- translation_scripts/es.ts | 18 +++++++++--------- translation_scripts/es_MX.ts | 18 +++++++++--------- translation_scripts/fr.ts | 18 +++++++++--------- translation_scripts/it.ts | 18 +++++++++--------- translation_scripts/nl.ts | 20 ++++++++++---------- 8 files changed, 70 insertions(+), 70 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 370b7ada53e28..3520c9aa197e1 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -183,11 +183,11 @@ Should the accounts be imported? ExpandMemory-Link - https://wl.hidrive.com/easy/0067 + https://wl.hidrive.com/easy/0097 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0067 + https://static.hidrive.com/next/1041 Storage space %1% occupied @@ -453,11 +453,11 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e OCC::Theme Help-Link - easy/0148 + https://wl.hidrive.com/easy/0148 Help-Link_STRATO - easy/0148 + https://static.hidrive.com/next/1011 Login_URL @@ -473,7 +473,7 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Privacy-Link_STRATO - https://wl.hidrive.com/easy/0045 + https://static.hidrive.com/next/1001 LegalNotice-Link @@ -481,15 +481,15 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0044 + https://static.hidrive.com/next/1021 OpenSource-Link - https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0046 OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -497,7 +497,7 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0047 + https://static.hidrive.com/next/1011 diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index f5c9e308759ca..5aa1cdb4487ce 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -183,11 +183,11 @@ Should the accounts be imported? ExpandMemory-Link - https://wl.hidrive.com/easy/0077 + https://wl.hidrive.com/easy/0057 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0077 + https://static.hidrive.com/next/1046 Storage space %1% occupied @@ -453,11 +453,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme Help-Link - easy/0108 + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - easy/0108 + https://static.hidrive.com/next/1016 Login_URL @@ -473,7 +473,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Privacy-Link_STRATO - https://wl.hidrive.com/easy/0005 + https://static.hidrive.com/next/1006 LegalNotice-Link @@ -481,7 +481,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0004 + https://static.hidrive.com/next/1026 OpenSource-Link @@ -489,7 +489,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -497,7 +497,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0007 + https://static.hidrive.com/next/1016 diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index ce043407fc9cd..1805181085832 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -187,7 +187,7 @@ Should the accounts be imported? ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0057 + https://static.hidrive.com/next/1046 Storage space %1% occupied @@ -453,11 +453,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme Help-Link - easy/0108 + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - easy/0108 + https://static.hidrive.com/next/1016 Login_URL @@ -473,7 +473,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Privacy-Link_STRATO - https://wl.hidrive.com/easy/0005 + https://static.hidrive.com/next/1006 LegalNotice-Link @@ -481,7 +481,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0004 + https://static.hidrive.com/next/1026 OpenSource-Link @@ -489,7 +489,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -497,7 +497,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0007 + https://static.hidrive.com/next/1016 diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 14c4ff1145812..af2fc258c6bda 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -184,11 +184,11 @@ Should the accounts be imported? ExpandMemory-Link - https://wl.hidrive.com/easy/0087 + https://wl.hidrive.com/easy/0067 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0087 + https://static.hidrive.com/next/1043 Storage space %1% occupied @@ -458,11 +458,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::Theme Help-Link - easy/0118 + https://wl.hidrive.com/easy/0118 Help-Link_STRATO - easy/0118 + https://static.hidrive.com/next/1013 Login_URL @@ -478,7 +478,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Privacy-Link_STRATO - https://wl.hidrive.com/easy/0015 + https://static.hidrive.com/next/1003 LegalNotice-Link @@ -486,15 +486,15 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0014 + https://static.hidrive.com/next/1023 OpenSource-Link - https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0016 OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -502,7 +502,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0017 + https://static.hidrive.com/next/1013 diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index 6cbea4ea51047..dcbbf3d1f0532 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -184,11 +184,11 @@ Should the accounts be imported? ExpandMemory-Link - https://wl.hidrive.com/easy/0087 + https://wl.hidrive.com/easy/0067 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0087 + https://static.hidrive.com/next/1043 Storage space %1% occupied @@ -458,11 +458,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::Theme Help-Link - easy/0118 + https://wl.hidrive.com/easy/0118 Help-Link_STRATO - easy/0118 + https://static.hidrive.com/next/1013 Login_URL @@ -478,7 +478,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Privacy-Link_STRATO - https://wl.hidrive.com/easy/0015 + https://static.hidrive.com/next/1003 LegalNotice-Link @@ -486,15 +486,15 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0014 + https://static.hidrive.com/next/1023 OpenSource-Link - https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0016 OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -502,7 +502,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0017 + https://static.hidrive.com/next/1013 diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index bf7b5c7b18285..6736ee7febb2d 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -190,11 +190,11 @@ Doivent-ils être importés ? ExpandMemory-Link - https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0077 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0057 + https://static.hidrive.com/next/1042 Storage space %1% occupied @@ -460,11 +460,11 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress OCC::Theme Help-Link - easy/0128 + https://wl.hidrive.com/easy/0128 Help-Link_STRATO - easy/0128 + https://static.hidrive.com/next/1012 Login_URL @@ -480,7 +480,7 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Privacy-Link_STRATO - https://wl.hidrive.com/easy/0025 + https://static.hidrive.com/next/1002 LegalNotice-Link @@ -488,15 +488,15 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0024 + https://static.hidrive.com/next/1022 OpenSource-Link - https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0026 OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -504,7 +504,7 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0027 + https://static.hidrive.com/next/1012 diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 6e58e5592862a..266cf618d4d1c 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -183,11 +183,11 @@ Should the accounts be imported? ExpandMemory-Link - https://wl.hidrive.com/easy/0067 + https://wl.hidrive.com/easy/0087 ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0067 + https://static.hidrive.com/next/1046 Storage space %1% occupied @@ -453,11 +453,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::Theme Help-Link - easy/0138 + https://wl.hidrive.com/easy/0138 Help-Link_STRATO - easy/0138 + https://static.hidrive.com/next/1016 Login_URL @@ -473,7 +473,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Privacy-Link_STRATO - https://wl.hidrive.com/easy/0035 + https://static.hidrive.com/next/1004 LegalNotice-Link @@ -481,15 +481,15 @@ Items where deletion is allowed will be deleted if they prevent a directory from LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0034 + https://static.hidrive.com/next/1026 OpenSource-Link - https://wl.hidrive.com/easy/0006 + https://wl.hidrive.com/easy/0036 OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link @@ -497,7 +497,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0037 + https://static.hidrive.com/next/1016 diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index b1881d2943b0a..a35287d00ed87 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -187,7 +187,7 @@ Moeten de accounts worden geïmporteerd? ExpandMemory-Link_STRATO - https://wl.hidrive.com/easy/0097 + https://static.hidrive.com/next/1045 Storage space %1% occupied @@ -453,11 +453,11 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OCC::Theme Help-Link - easy/0108 + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - easy/0108 + https://static.hidrive.com/next/1015 Login_URL @@ -469,19 +469,19 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere LegalNotice-Link - https://wl.hidrive.com/easy/0054 + https://wl.hidrive.com/easy/0004 LegalNotice-Link_STRATO - https://wl.hidrive.com/easy/0054 + https://static.hidrive.com/next/1025 Privacy-Link - https://wl.hidrive.com/easy/0055 + https://wl.hidrive.com/easy/0005 Privacy-Link_STRATO - https://wl.hidrive.com/easy/0055 + https://static.hidrive.com/next/1005 OpenSource-Link @@ -489,15 +489,15 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OpenSource-Link_STRATO - https://wl.hidrive.com/easy/0006 + https://static.hidrive.com/next/1031 MoreInformation-Link - https://wl.hidrive.com/easy/0057 + https://wl.hidrive.com/easy/0007 MoreInformation-Link_STRATO - https://wl.hidrive.com/easy/0057 + https://static.hidrive.com/next/1015 From d3f5b2562f784aad3e80aa8173a24949f6edf86b Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 10:48:28 +0200 Subject: [PATCH 136/148] SES-522 add swedish to translation files --- translation_scripts/en.ts | 2 +- translation_scripts/sv.ts | 631 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 632 insertions(+), 1 deletion(-) create mode 100644 translation_scripts/sv.ts diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 5aa1cdb4487ce..fb4da7b3a6f69 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -489,7 +489,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from OpenSource-Link_STRATO - https://static.hidrive.com/next/1031 + https://static.hidrive.com/next/1031 MoreInformation-Link diff --git a/translation_scripts/sv.ts b/translation_scripts/sv.ts new file mode 100644 index 0000000000000..7f073d5c6152c --- /dev/null +++ b/translation_scripts/sv.ts @@ -0,0 +1,631 @@ + + + + + Agree + Håller med + + + Back + Tillbaka + + + Necessary data + Nödvändiga uppgifter + + + Required to ensure that the software can be used as expected + Krävs för att säkerställa att programvaran kan användas som förväntat + + + Save Settings + Spara inställningar + + + Send anonymous use + Skicka anonym användning + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/0005'>integritetspolicy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. + + + + BasicComboBox + + Clear status message menu + Meny för att ta bort statusmeddelande + + + + CallNotificationDialog + + Answer Talk call notification + Meddelande om samtal vid Answer Talk + + + Decline Talk call notification + Avvisa meddelande om samtal + + + Talk notification caller avatar + Avatar för samtalsnotis för uppringare + + + + CloudProviderWrapper + + Quit sync client + Avsluta synkroniseringsklienten + + + + ConflictDelegate + + Local version + Lokal version + + + Server version + Serverversion + + + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Snabbsynkronisering synkroniserar endast ändringar i filer och mappar inom mappar som har utforskats. Detta kan avsevärt öka svarstiden vid den första konfigurationen av virtuella filer. Det kommer dock att orsaka överflödiga nedladdningar av filer som flyttas till en outforskad mapp. + + + + FileProviderFileDelegate + + Delete + Radera + + + + FileProviderSettings + + Signal file provider domain + Domän för leverantör av signalfil + + + + FileProviderStorageInfo + + Evict local copies... + Utesluta lokala kopior... + + + + FileProviderSyncStatus + + All synced! + Allt synkroniserat! + + + + FolderWizardSelectiveSync + + Add Folder Sync + Lägg till mappsynkronisering + + + Step 3 of 3: Selektive Synchronisation + Steg 3 av 3: Selektiv synkronisering + + + + FolderWizardSourcePage + + &Choose + &Välj + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Välj en mapp på din hårddisk som ska vara permanent ansluten till din %1. Alla filer och undermappar laddas upp och synkroniseras automatiskt. + + + Step 1 of 3: Select local folder + Steg 1 av 3: Välj lokal mapp + + + + FolderWizardTargetPage + + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + De båda mapparna är permanent länkade och respektive innehåll synkroniseras och uppdateras automatiskt. + + + Create folder + Skapa mapp + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Välj eller skapa nu en målmapp i din %1 där innehållet ska laddas upp och synkroniseras. + + + Step 2 of 3: Directory in your %1 + Steg 2 av 3: Katalog i din %1 + + + + OCC::AccountManager + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 konton upptäcktes från en äldre stationär klient. +Bör kontona importeras? + + + + OCC::AccountSettings + + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) av %2 används. Vissa mappar, inklusive nätverksmonterade eller delade mappar, kan ha andra gränser. + + + Expand Memory + Expandera minnet + + + Force sync now + Tvinga synkronisering nu + + + ExpandMemory-Link + https://static.hidrive.com/next/1045 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1044 + + + Storage space %1% occupied + Förvaringsutrymme %1% upptaget + + + There are folders that were not synchronized because they are external storages: + Det finns mappar som inte synkroniserades eftersom de är externa lagringsutrymmen: + + + There are folders that were not synchronized because they are too big or external storages: + Det finns mappar som inte synkroniserades eftersom de är för stora eller externa lagringsutrymmen: + + + There are folders that were not synchronized because they are too big: + Det finns mappar som inte synkroniserades eftersom de är för stora: + + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Detta kommer att kryptera din mapp och alla filer i den. Dessa filer kommer inte längre att vara åtkomliga utan din krypteringsnyckel. +<b>Den här processen är inte reversibel. Är du säker på att du vill fortsätta?</b> + + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + För att skydda din kryptografiska identitet krypterar vi den med en mnemonik bestående av 12 ordboksord. Anteckna dessa och förvara dem säkert. De kommer att behövas för att lägga till andra enheter till ditt konto (som din mobiltelefon eller bärbara dator). + + + + OCC::CaseClashFilenameDialog + + Existing file + Befintlig fil + + + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Filen kunde inte synkroniseras eftersom den skapar en konflikt med en befintlig fil på det här systemet. + + + + OCC::DataProtectionPage + + Settings + Inställningar + + + + OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error: initial signature from server is empty. + Fel vid inställning av krypterade metadata: den ursprungliga signaturen från servern är tom. + + + Encrypted metadata setup error! + Fel i installationen av krypterade metadata! + + + + OCC::Flow2AuthWidget + + Open Browser + Öppna webbläsaren + + + Copy Link + Kopiera länk + + + + OCC::Folder + + A folder from an external storage has been added. + En mapp från ett externt lagringsutrymme har lagts till. + + + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + En stor mängd filer har raderats på servern. +Vänligen bekräfta om du vill fortsätta med dessa lösningar. +Alternativt kan du återställa alla lösta filer, om de laddas upp från Ordner "%1" på servern. + + + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + En stor mängd filer i din lokala order "%1" blev raderade. +Vänligen bekräfta om du vill fortsätta med dessa lösningar. +Alternativt kan du återställa alla lösta filer, om du hämtar dem från servern. + + + A new folder larger than %1 MB has been added: %2. + En ny mapp som är större än %1 MB har lagts till: %2. + + + Proceed with Deletion + Fortsätt med borttagningen + + + Remove all files? + Ta bort alla filer? + + + Restore Files from Server + Återställ filer från server + + + Restore Files to Server + Återställ filer till server + + + + OCC::FolderCreationDialog + + %1 Create new folder + %1 Skapa ny mapp + + + + OCC::FolderMan + + (backup %1) + (säkerhetskopia %1) + + + (backup) + (backup) + + + + OCC::FolderStatusDelegate + + Synchronize any other local folder with your %1 + Synkronisera en annan lokal mapp med din %1 + + + + OCC::FolderWizardLocalPath + + Choose + Välj + + + + OCC::FolderWizardRemotePath + + Enter the name of the new folder to be created below "%1": + Ange namnet på den nya mappen som ska skapas under "%1": + + + + OCC::FolderWizardSelectiveSync + + Use virtual files instead of downloading content immediately %1 + Använd virtuella filer istället för att ladda ner innehåll direkt %1 + + + + OCC::GeneralSettings + + &Analysis data collection for needs-based design + &Analys av datainsamling för behovsbaserad design + + + Ask for confirmation before synchronizing external storages + Be om bekräftelse innan du synkroniserar externa lagringsenheter + + + Ask for confirmation before synchronizing new folders larger than + Be om bekräftelse innan du synkroniserar nya mappar som är större än + + + Automatically disable synchronisation of folders that overcome limit + Automatisk inaktivering av synkronisering av mappar som överskrider gränsen + + + Data Protection + Dataskydd + + + More Information + Mer information + + + Open Source Software + Programvara med öppen källkod + + + Privacy Policy + Integritetspolicy + + + Show sync folders in &Explorer's navigation pane + Visa synkroniseringsmappar i &Explorers navigeringsfönster + + + Updates + Uppdateringar + + + + OCC::IgnoreListTableWidget + + Add a new ignore pattern: + Lägg till ett nytt ignoreringsmönster: + + + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Filer eller mappar som matchar ett mönster kommer inte att synkroniseras. + +Objekt där radering är tillåten raderas om de förhindrar att en katalog tas bort. Detta är användbart för metadata. + + + Ignore Pattern + Ignorera mönster + + + + OCC::NetworkSettings + + No proxy + Ingen proxy + + + + OCC::PropagateLocalMkdir + + Could not create folder %1 + Det gick inte att skapa mappen %1 + + + + OCC::PropagateLocalRename + + Folder %1 cannot be renamed because of a local file or folder name clash! + Mappen %1 kan inte bytas namn på grund av en lokal namnkonflikt för en fil eller mapp! + + + + OCC::PropagateUploadFileCommon + + Upload of %1 exceeds the quota for the folder + Uppladdningen av %1 överskrider kvoten för mappen + + + + OCC::SettingsDialog + + New account + Nytt konto + + + + OCC::SslButton + + This connection is encrypted using %1 bit %2. + Denna anslutning är krypterad med %1 bit %2. + + + This connection is NOT secure as it is not encrypted. + Denna anslutning är INTE säker eftersom den inte är krypterad. + + + + OCC::Theme + + Help-Link + https://static.hidrive.com/next/1014 + + + Help-Link_STRATO + https://static.hidrive.com/next/1014 + + + Login_URL + https://qa.storage.ionos.com/index.php/login/v2 + + + Login_URL_STRATO + https://storage.ionos.com/index.php/login/v2 + + + Privacy-Link + https://static.hidrive.com/next/1004 + + + Privacy-Link_STRATO + https://static.hidrive.com/next/1004 + + + LegalNotice-Link + https://static.hidrive.com/next/1024 + + + LegalNotice-Link_STRATO + https://static.hidrive.com/next/1024 + + + OpenSource-Link + https://static.hidrive.com/next/1031 + + + OpenSource-Link_STRATO + https://static.hidrive.com/next/1031 + + + MoreInformation-Link + https://strato.se + + + MoreInformation-Link_STRATO + https://static.hidrive.com/next/1014 + + + + OCC::UpdateE2eeFolderMetadataJob + + Failed to finalize item. + Misslyckades med att slutföra objektet. + + + Failed to unlock encrypted folder. + Lyckades inte låsa upp den krypterade mappen. + + + + OCC::UpdateE2eeFolderUsersMetadataJob + + Could not add or remove user %1 to access folder %2 + Det gick inte att lägga till eller ta bort användaren %1 i mappen %2 + + + + OCC::User + + %1 notifications + %1 meddelanden + + + + OCC::WebFlowCredentials + + <b>You have been logged out of your account %1 at %2. Please login again.</b> + <b>Du har blivit utloggad från ditt konto %1 på %2. Vänligen logga in igen.</b> + + + + OCC::sesSnackBar + + Success + Framgång + + + + OwncloudAdvancedSetupPage + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Om den här rutan är markerad kommer befintligt innehåll i den lokala mappen att raderas för att starta en ren synkronisering från servern.</p><p>Markera inte den här om det lokala innehållet ska laddas upp till servermappen.</p></body></html> + + + + QObject + + Could not create debug archive in selected location! + Det gick inte att skapa ett debug-arkiv på den valda platsen! + + + Failed to create debug archive + Misslyckades med att skapa debug-arkiv + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + Katalogen %1 kan inte vara en del av din synkroniseringskatalog. Vänligen välj en annan mapp. + + + + SesTrayHeader + + Open Nextcloud in browser + Öppna HiDrive Next i webbläsaren + + + Website + Webbplats + + + + ShareDetailsPage + + Copy share link + Kopiera delningslänk + + + Custom Permissions + Anpassade behörigheter + + + Enter the note to recipient + Ange anteckningen till mottagaren + + + Share link copied! + Dela länk kopierad! + + + + TrayFoldersMenuButton + + Files + Filer + + + + TrayWindowAccountMenu + + Pause sync for all + Pausa synkronisering för alla + + + Resume sync for all + Synkronisering av CV för alla + + + Add account + Lägg till konto + + + + progress + + Updated local virtual files metadata + Uppdaterade metadata för lokala virtuella filer + + + updating local virtual files metadata + Uppdatering av metadata för lokala virtuella filer + + + From 16da805288ddca648c69e84277661503a9df3857 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 11:06:26 +0200 Subject: [PATCH 137/148] SES-520 use new login URLs --- translation_scripts/de_DE.ts | 2 +- translation_scripts/en.ts | 2 +- translation_scripts/en_GB.ts | 2 +- translation_scripts/es.ts | 2 +- translation_scripts/es_MX.ts | 2 +- translation_scripts/fr.ts | 2 +- translation_scripts/it.ts | 2 +- translation_scripts/nl.ts | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 3520c9aa197e1..1e5bbc773e757 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -461,7 +461,7 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Login_URL - http://id.ionos.de + https://storage.ionos.de/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index fb4da7b3a6f69..ba21e25e83e1c 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -461,7 +461,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - http://id.ionos.com + https://storage.ionos.com/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index 1805181085832..e988e6774644f 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -461,7 +461,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - http://id.ionos.co.uk + https://storage.ionos.co.uk/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index af2fc258c6bda..cdf8109232abf 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -466,7 +466,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL - http://id.ionos.es + https://storage.ionos.es/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index dcbbf3d1f0532..3cd013680f58c 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -466,7 +466,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL - http://id.ionos.mx + https://storage.ionos.es/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 6736ee7febb2d..907214c624b2b 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -468,7 +468,7 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Login_URL - http://id.ionos.fr + https://storage.ionos.fr/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 266cf618d4d1c..311492a64bf1a 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -461,7 +461,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - http://id.ionos.it + https://storage.ionos.it/index.php/login/v2 Login_URL_STRATO diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index a35287d00ed87..691c6eeeff317 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -461,7 +461,7 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Login_URL - http://id.ionos.de + https://storage.ionos.com/index.php/login/v2 Login_URL_STRATO From a0ea22ecd05ad661e74180d570434fabd4c68821 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 11:09:45 +0200 Subject: [PATCH 138/148] No-Issue bump up Version for EU build --- VERSION.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION.cmake b/VERSION.cmake index 50dfad0040d94..794fd41c1ec68 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -7,10 +7,10 @@ # ------------------------------------ set(MIRALL_VERSION_MAJOR 4) set(MIRALL_VERSION_MINOR 0) -set(MIRALL_VERSION_PATCH 10) +set(MIRALL_VERSION_PATCH 11) set(MIRALL_VERSION_YEAR 2026) set(MIRALL_SOVERSION 0) -set(MIRALL_PREVERSION_HUMAN "4.0.10") # For preversions where PATCH>=50. Use version + alpha, rc1, rc2, etc. +set(MIRALL_PREVERSION_HUMAN "4.0.11") # For preversions where PATCH>=50. Use version + alpha, rc1, rc2, etc. set(NCEXT_BUILD_NUM 47) set(NCEXT_VERSION 3,0,0,${NCEXT_BUILD_NUM}) From d9ba9ad2e3f5951d40546e2d35362e8989146047 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 11:23:55 +0200 Subject: [PATCH 139/148] SES-522 add swedish to translation script --- translation_scripts/merge_translation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translation_scripts/merge_translation.py b/translation_scripts/merge_translation.py index e2f6d1a42312d..e9a4d707b5f6f 100644 --- a/translation_scripts/merge_translation.py +++ b/translation_scripts/merge_translation.py @@ -532,6 +532,7 @@ def run_lupdate(ts_files, mode="default"): , r"..\translations\client_fr.ts" , r"..\translations\client_it.ts" , r"..\translations\client_nl.ts" + , r"..\translations\client_sv.ts" , r"..\translations\client_en.ts" , r"..\translations\client_en_GB.ts" ] @@ -542,6 +543,7 @@ def run_lupdate(ts_files, mode="default"): , r".\fr.ts" , r".\it.ts" , r".\nl.ts" + , r".\sv.ts" , r".\en.ts" , r".\en_GB.ts" ] From 0e9006d69b3fd0d97e3e2cc790baa57d51c20648 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 11:54:33 +0200 Subject: [PATCH 140/148] SES-522 add login URLs for STRATO --- translation_scripts/de_DE.ts | 2 +- translation_scripts/en.ts | 2 +- translation_scripts/en_GB.ts | 2 +- translation_scripts/es.ts | 2 +- translation_scripts/es_MX.ts | 2 +- translation_scripts/fr.ts | 2 +- translation_scripts/it.ts | 2 +- translation_scripts/nl.ts | 2 +- translation_scripts/sv.ts | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 1e5bbc773e757..783467113c1f1 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -465,7 +465,7 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Login_URL_STRATO - http://id.strato.de + https://storage.ionos.de/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index ba21e25e83e1c..4f93d496b9021 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -465,7 +465,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO - http://id.strato.com + https://storage.ionos.com/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index e988e6774644f..f354734b03fc1 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -465,7 +465,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO - http://id.strato.co.uk + https://storage.ionos.co.uk/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index cdf8109232abf..42c15fb07f29b 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -470,7 +470,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL_STRATO - http://id.strato.es + https://storage.ionos.es/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index 3cd013680f58c..b11c896e123c0 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -470,7 +470,7 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL_STRATO - http://id.strato.mx + https://storage.ionos.es/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 907214c624b2b..babd03182691d 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -472,7 +472,7 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Login_URL_STRATO - http://id.strato.fr + https://storage.ionos.fr/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 311492a64bf1a..931e011dcdc71 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -465,7 +465,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL_STRATO - http://id.strato.it + https://storage.ionos.it/index.php/login/v2 Privacy-Link diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index 691c6eeeff317..ce70b145d81dc 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -465,7 +465,7 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Login_URL_STRATO - http://id.strato.de + https://storage.ionos.com/index.php/login/v2 LegalNotice-Link diff --git a/translation_scripts/sv.ts b/translation_scripts/sv.ts index 7f073d5c6152c..a3385e59e7e2a 100644 --- a/translation_scripts/sv.ts +++ b/translation_scripts/sv.ts @@ -465,7 +465,7 @@ Objekt där radering är tillåten raderas om de förhindrar att en katalog tas Login_URL - https://qa.storage.ionos.com/index.php/login/v2 + https://storage.ionos.com/index.php/login/v2 Login_URL_STRATO From 1a9d51c25adf2f065161931e54b6fbca49470fb0 Mon Sep 17 00:00:00 2001 From: Kevin Beraz Date: Thu, 21 May 2026 12:25:40 +0200 Subject: [PATCH 141/148] SES-522 add STRATO translation for dataprotection dialog text --- src/gui/wizard/dataprotectionpage.cpp | 6 +++++- translation_scripts/de_DE.ts | 4 ++++ translation_scripts/en.ts | 4 ++++ translation_scripts/en_GB.ts | 4 ++++ translation_scripts/es.ts | 4 ++++ translation_scripts/es_MX.ts | 4 ++++ translation_scripts/fr.ts | 4 ++++ translation_scripts/it.ts | 4 ++++ translation_scripts/nl.ts | 6 +++++- translation_scripts/sv.ts | 6 +++++- 10 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/gui/wizard/dataprotectionpage.cpp b/src/gui/wizard/dataprotectionpage.cpp index 71da6a64d9e77..689ca00a0fdc8 100644 --- a/src/gui/wizard/dataprotectionpage.cpp +++ b/src/gui/wizard/dataprotectionpage.cpp @@ -50,7 +50,11 @@ namespace OCC{ #endif _ui->logoLabel->setPixmap(Theme::hidpiFileName(dataProtectionLogo)); - _ui->descriptionLabel->setText(tr("This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings.

      Information on data processing and more can be found in our
      privacy policy.")); +#ifdef STRATO_WL_BUILD + _ui->descriptionLabel->setText(tr("This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings.

      Information on data processing and more can be found in our privacy policy._STRATO")); +#else + _ui->descriptionLabel->setText(tr("This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings.

      Information on data processing and more can be found in our privacy policy.")); +#endif _ui->descriptionLabel->setOpenExternalLinks(true); _ui->descriptionLabel->setTextFormat(Qt::RichText); diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index 783467113c1f1..b78b6b7ce3e87 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index 4f93d496b9021..b3465d2acc14b 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. This helps us to optimize the software and to better identify system crashes and unexpected errors. diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index f354734b03fc1..d3fd017ba79ac 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. This helps us to optimize the software and to better identify system crashes and unexpected errors. diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index 42c15fb07f29b..b8a3396a192bc 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index b11c896e123c0..4a964ea24da7d 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index babd03182691d..47be332e1e8e9 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 931e011dcdc71..324bd3ecf0b33 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -29,6 +29,10 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. + This helps us to optimize the software and to better identify system crashes and unexpected errors. Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index ce70b145d81dc..8c133fc6c3a4a 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -27,7 +27,11 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0045'>privacybeleid</a>. + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. This helps us to optimize the software and to better identify system crashes and unexpected errors. diff --git a/translation_scripts/sv.ts b/translation_scripts/sv.ts index a3385e59e7e2a..5264e9acb7d96 100644 --- a/translation_scripts/sv.ts +++ b/translation_scripts/sv.ts @@ -27,7 +27,11 @@ This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/0005'>integritetspolicy</a>. + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. This helps us to optimize the software and to better identify system crashes and unexpected errors. From e7969f484d9a4d8fe6a08e8053e4b97a3659b844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:16:58 +0200 Subject: [PATCH 142/148] SES-520 - Removed url suffix --- translation_scripts/de_DE.ts | 4 ++-- translation_scripts/en.ts | 4 ++-- translation_scripts/en_GB.ts | 4 ++-- translation_scripts/es.ts | 4 ++-- translation_scripts/es_MX.ts | 4 ++-- translation_scripts/fr.ts | 4 ++-- translation_scripts/it.ts | 4 ++-- translation_scripts/nl.ts | 4 ++-- translation_scripts/sv.ts | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/translation_scripts/de_DE.ts b/translation_scripts/de_DE.ts index b78b6b7ce3e87..e0e681973c2c9 100644 --- a/translation_scripts/de_DE.ts +++ b/translation_scripts/de_DE.ts @@ -465,11 +465,11 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e Login_URL - https://storage.ionos.de/index.php/login/v2 + https://storage.ionos.de Login_URL_STRATO - https://storage.ionos.de/index.php/login/v2 + https://storage.ionos.de Privacy-Link diff --git a/translation_scripts/en.ts b/translation_scripts/en.ts index b3465d2acc14b..e78c8a1f5ddfa 100644 --- a/translation_scripts/en.ts +++ b/translation_scripts/en.ts @@ -465,11 +465,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com Login_URL_STRATO - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com Privacy-Link diff --git a/translation_scripts/en_GB.ts b/translation_scripts/en_GB.ts index d3fd017ba79ac..6e3dc972d58aa 100644 --- a/translation_scripts/en_GB.ts +++ b/translation_scripts/en_GB.ts @@ -465,11 +465,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - https://storage.ionos.co.uk/index.php/login/v2 + https://storage.ionos.co.uk Login_URL_STRATO - https://storage.ionos.co.uk/index.php/login/v2 + https://storage.ionos.co.uk Privacy-Link diff --git a/translation_scripts/es.ts b/translation_scripts/es.ts index b8a3396a192bc..24a74ec3b276f 100644 --- a/translation_scripts/es.ts +++ b/translation_scripts/es.ts @@ -470,11 +470,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL - https://storage.ionos.es/index.php/login/v2 + https://storage.ionos.es Login_URL_STRATO - https://storage.ionos.es/index.php/login/v2 + https://storage.ionos.es Privacy-Link diff --git a/translation_scripts/es_MX.ts b/translation_scripts/es_MX.ts index 4a964ea24da7d..1bbf9f07cdfdd 100644 --- a/translation_scripts/es_MX.ts +++ b/translation_scripts/es_MX.ts @@ -470,11 +470,11 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre Login_URL - https://storage.ionos.es/index.php/login/v2 + https://storage.ionos.es Login_URL_STRATO - https://storage.ionos.es/index.php/login/v2 + https://storage.ionos.es Privacy-Link diff --git a/translation_scripts/fr.ts b/translation_scripts/fr.ts index 47be332e1e8e9..bb36b347b9678 100644 --- a/translation_scripts/fr.ts +++ b/translation_scripts/fr.ts @@ -472,11 +472,11 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la suppress Login_URL - https://storage.ionos.fr/index.php/login/v2 + https://storage.ionos.fr Login_URL_STRATO - https://storage.ionos.fr/index.php/login/v2 + https://storage.ionos.fr Privacy-Link diff --git a/translation_scripts/it.ts b/translation_scripts/it.ts index 324bd3ecf0b33..d2b1e60c76bd1 100644 --- a/translation_scripts/it.ts +++ b/translation_scripts/it.ts @@ -465,11 +465,11 @@ Items where deletion is allowed will be deleted if they prevent a directory from Login_URL - https://storage.ionos.it/index.php/login/v2 + https://storage.ionos.it Login_URL_STRATO - https://storage.ionos.it/index.php/login/v2 + https://storage.ionos.it Privacy-Link diff --git a/translation_scripts/nl.ts b/translation_scripts/nl.ts index 8c133fc6c3a4a..01ee59ed008e9 100644 --- a/translation_scripts/nl.ts +++ b/translation_scripts/nl.ts @@ -465,11 +465,11 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere Login_URL - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com Login_URL_STRATO - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com LegalNotice-Link diff --git a/translation_scripts/sv.ts b/translation_scripts/sv.ts index 5264e9acb7d96..8dde99de5c6f6 100644 --- a/translation_scripts/sv.ts +++ b/translation_scripts/sv.ts @@ -469,11 +469,11 @@ Objekt där radering är tillåten raderas om de förhindrar att en katalog tas Login_URL - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com Login_URL_STRATO - https://storage.ionos.com/index.php/login/v2 + https://storage.ionos.com Privacy-Link From 5f78d8ce31cc4583d2d66041296ed2b5e93ebf7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:01 +0200 Subject: [PATCH 143/148] Step 0 --- translations/client_de.ts | 7181 +++++++++++++-------------------- translations/client_en.ts | 7346 +++++++++++++++------------------- translations/client_en_GB.ts | 7179 +++++++++++++-------------------- translations/client_es.ts | 7225 ++++++++++++++------------------- translations/client_es_MX.ts | 7253 ++++++++++++++------------------- translations/client_fr.ts | 7158 +++++++++++++-------------------- translations/client_it.ts | 7180 +++++++++++++-------------------- translations/client_nl.ts | 7263 ++++++++++++++------------------- translations/client_sv.ts | 7199 ++++++++++++++------------------- 9 files changed, 26347 insertions(+), 38637 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index 018aaca52bade..924c33b88dc7f 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - %1 lokal öffnen - - - In %1 In %1 - + + Open %1 locally + %1 lokal öffnen + + ActivityItemContent - - Open file details - Dateidetails öffnen - - - - File details - Dateidetails - - - - File actions - Dateiaktionen - - - Dismiss Ablehnen - + + Open file details + Dateidetails öffnen + + ActivityList - Activity list Aktivitätenliste - - Scroll to top - Nach unten blättern - - - No activities yet Noch keine Aktivitäten vorhanden - + + Scroll to top + Nach unten blättern + + CallNotificationDialog - - Talk notification caller avatar - Avatar zu Benachrichtigung über Talk-Anrufer - - - Answer Talk call notification Benachrichtigung zu Talk-Anruf beantworten - Decline Ablehnen - Decline Talk call notification Benachrichtigung zu Talk-Anruf ablehnen - + + Talk notification caller avatar + Avatar zu Benachrichtigung über Talk-Anrufer + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Nach Änderungen suchen in "%1" - - Syncing %1 of %2 (%3 left) - Synchronisiere %1 von %2 (%3 übrig) - - - - Syncing %1 of %2 - Synchronisiere %1 von %2 - - - - Syncing %1 (%2 left) - Synchronisiere %1 (%2 übrig) + Help + Hilfe - - Syncing %1 - Synchronisiere %1 + Log out + Abmelden - - No recently changed files Keine kürzlich geänderten Dateien - - Sync paused - Synchronisierung pausiert - - - - Syncing - Synchronisiere - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. %1 Desktop öffnen - Open in browser Im Browser öffnen - - Recently changed - Zuletzt geändert - - - Pause synchronization Synchronisierung pausieren - - Help - Hilfe + Quit sync client + Sync-Client beenden + + + Recently changed + Zuletzt geändert - Settings Einstellungen - - Log out - Abmelden + Sync paused + Synchronisierung pausiert - - Quit sync client - Sync-Client beenden + Syncing + Synchronisiere - + + Syncing %1 + Synchronisiere %1 + + + Syncing %1 (%2 left) + Synchronisiere %1 (%2 übrig) + + + Syncing %1 of %2 + Synchronisiere %1 von %2 + + + Syncing %1 of %2 (%3 left) + Synchronisiere %1 von %2 (%3 übrig) + + ConflictDelegate - Local version Lokale Version - Server version Serverversion @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Aktuelles Konto - - - - - Resume sync for all - Synchronisierung für alle fortsetzen - - - - - Pause sync for all - Synchronisierung für alle pausieren + Account switcher and settings menu + Konto-Umschalter und Einstellungsmenü - - + Add account Konto hinzufügen - Add new account Neues Konto hinzufügen - - Settings - Einstellungen - - - - Exit - Beenden + Current account + Aktuelles Konto - Current account avatar Avatar des aktuellen Kontos - + Current account status is do not disturb + Aktueller Kontostatus ist "Nicht stören" + + Current account status is online Aktueller Kontostatus ist "Online" - - Current account status is do not disturb - Aktueller Kontostatus ist "Nicht stören" + Exit + Beenden - - Account switcher and settings menu - Konto-Umschalter und Einstellungsmenü + Pause sync for all + Synchronisierung für alle pausieren - + + Resume sync for all + Synchronisierung für alle fortsetzen + + + Settings + Einstellungen + + EditFileLocallyLoadingDialog - Opening file for local editing Datei wird für die lokale Bearbeitung geöffnet @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis Keine aktuellen Emojis @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Erkennen der auf Ihrem USB-Token gespeicherten Zertifikate @@ -266,44 +210,42 @@ ErrorBox - Error Fehler - - FileActionsWindow - - - File actions for %1 - Dateiaktionen für %1 - - FileDetailsPage - - Activity - Aktivität - - - - Sharing - Teilen + Dismiss + Ablehnen FileDetailsWindow - File details of %1 · %2 Dateidetails von %1 · %2 + + FileProviderEvictionDialog + + Local copies + Lokale Kopien + + + Reload + Neu laden + + + Remove local copies + Lokale Kopien entfernen + + FileProviderFileDelegate - Delete Löschen @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Einstellungen für virtuelle Dateien + Enable virtual files + Virtuelle Dateien aktivieren - General settings Allgemeine Einstellungen - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - Virtuelle Dateien erscheinen wie normale Dateien, nutzen jedoch keinen lokalen Speicherplatz. Der Inhalt wird beim Öffnen der Datei automatisch heruntergeladen. Virtuelle Dateien und klassische Synchronisierung können nicht gleichzeitig verwendet werden. + Reset virtual files environment + Virtuelle Dateienumgebung zurücksetzen + + Virtual files settings + Einstellungen für virtuelle Dateien + + + + FileProviderStorageInfo - - Enable virtual files - Virtuelle Dateien aktivieren + %1 GB of %2 GB remote files synced + %1 GB von %2 GB der entfernten Dateien synchronisiert - - Reset virtual files environment - Virtuelle Dateienumgebung zurücksetzen + Free up space … + Speicherplatz freigeben … - + + Local storage use + Nutzung des lokalen Speichers + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Fehler beim Entfernen von "%1": %2 + All synced! + Alles synchronisiert! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Eine Synchronisierung der Änderungen für die VFS-Umgebung anfordern. +macOS kann diese Anforderung ignorieren oder verzögern. + + + Request sync + Synchronisierung anfordern + + + Syncing + Synchronisiere + + + FileSystem - Could not remove folder "%1" Der Ordner "%1" konnte nicht entfernt werden - + + Error removing "%1": %2 + Fehler beim Entfernen von "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Es ist ein Fehler beim Herstellen der Verbindung aufgetreten. Bitte erneut versuchen. + + Browser Authentication Browser-Authentifizierung - + Copy Link + Link kopieren + + Logo Logo - Switch to your browser to connect your account Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden + + + FolderWizardSelectiveSync - - An error occurred while connecting. Please try again. - Es ist ein Fehler beim Herstellen der Verbindung aufgetreten. Bitte erneut versuchen. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Wählen Sie einen lokalen Ordner zum Synchronisieren aus + &Choose + + + + Add Folder Sync + - - &Choose … - &Wählen … + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Einen entfernten Zielordner auswählen + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Ordner erstellen - + Folders + Ordner + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Aktualisieren - - Folders - Ordner + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Hauptinhalt - - Issue with account %1 - Probleme mit dem Konto %1 + New activities + Neue Aktivitäten - - - Issues with several accounts - Probleme mit mehreren Konten + + Unified search results list + Einheitliche Suchergebnisliste + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Neue Unterhaltung beginnen? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Erstellt aus der Git-Revision <a href="%1">%2</a> auf %3, %4 unter Verwendung von Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - Neue Unterhaltung + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, wenn das Problem weiterhin besteht. - - Cancel - Abbrechen + The server enforces strict transport security and does not accept untrusted certificates. + Der Server erzwingt strenge Transportsicherheit und akzeptiert nur vertrauenswürdige Zertifikate. - - - This will clear the existing conversation. - Dadurch wird die bestehende Unterhaltung geleert. + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + Der Server brauchte zu lange, um zu antworten. Bitte die Verbindung überprüfen und die Synchronisation erneut versuchen. Wenn es dann immer noch nicht funktioniert, bitte die Serveradministration kontaktieren. + + + OCC::Account - - Ask Assistant … - Den Assistenten fragen … + File %1 is already locked by %2. + Datei %1 ist bereits von %2 gesperrt. - - Ask Assistant… - Den Assistenten fragen … - - - - Send assistant question - Frage an Assistenten senden - - - - Start a new assistant chat - Einen neuen Assistenten-Chat starten - - - - Unified search results list - Einheitliche Suchergebnisliste - - - - New activities - Neue Aktivitäten - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - Der Server brauchte zu lange, um zu antworten. Bitte die Verbindung überprüfen und die Synchronisation erneut versuchen. Wenn es dann immer noch nicht funktioniert, bitte die Serveradministration kontaktieren. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, wenn das Problem weiterhin besteht. - - - - The server enforces strict transport security and does not accept untrusted certificates. - Der Server erzwingt strenge Transportsicherheit und akzeptiert nur vertrauenswürdige Zertifikate. + Lock operation on %1 failed with error %2 + Das Sperren von %1 ist mit Fehler %2 fehlgeschlagen - - - OCC::Account - Public Share Link Öffentlicher Freigabe-Link - - File %1 is already locked by %2. - Datei %1 ist bereits von %2 gesperrt. - - - - Lock operation on %1 failed with error %2 - Das Sperren von %1 ist mit Fehler %2 fehlgeschlagen - - - Unlock operation on %1 failed with error %2 Das Entsperren von %1 ist mit Fehler %2 fehlgeschlagen @@ -520,549 +459,396 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? Ein Konto wurde von einem älteren Desktop-Client erkannt. Soll das Konto importiert werden? - - - Legacy import - Import früherer Konfiguration + Could not import accounts from legacy client configuration. + Konten von älterer Client-Konfiguration konnten nicht importiert werden. - - + Import Importieren - - Skip - Überspringen + Legacy import + Import früherer Konfiguration - - Could not import accounts from legacy client configuration. - Konten von älterer Client-Konfiguration konnten nicht importiert werden. + Skip + Überspringen - + OCC::AccountSettings - - Virtual files - Virtuelle Dateien + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) von %2 belegt. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. - - Classic sync - Klassische Synchronisierung + %1 as %2 + %1 als %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Nicht markierte Ordner werden von Ihrem lokalen Dateisystem <b>entfernt</b> und werden auch nicht mehr auf diesem Rechner synchronisiert + %1 in use + %1 belegt - - Storage space: … - Speicherplatz: … + %1 of %2 in use + %1 von %2 belegt - - Synchronize all - Alles synchronisieren + (experimental) + (experimentell) - - Synchronize none - Nichts synchronisieren + <p>Could not create local folder <i>%1</i>.</p> + <p>Konnte lokalen Ordner <i>%1</i> nicht anle‏gen.‎</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Möchten Sie den Ordner <i>%1</i> nicht mehr synchronisieren?</p><p><b>Anmerkung:</b> Dies wird <b>keine</b> Dateien löschen.</p> + + + Apply + Anwenden - Apply manual changes Manuelle Änderungen anwenden - - Standard file sync - Standard Dateisynchronisierung + Availability + Verfügbarkeit - - Virtual file sync - Virtuelle Dateisynchronisierung + Cancel + Abbrechen - - Connection settings - Verbindungseinstellungen + Choose what to sync + Zu synchronisierende Elemente auswählen - - Apply - Anwenden + Confirm Folder Sync Connection Removal + Bestätigen Sie die Löschung der Ordner-Synchronisierung - - - - Cancel - Abbrechen + Connected to %1. + Verbunden mit %1. - Connected with <server> as <user> Verbunden mit <server> als <user> - - No account configured. - Kein Konto konfiguriert. - - - - End-to-end Encryption with Virtual Files - Ende-zu-Ende-Verschlüsselung mit virtuellen Dateien + Connecting to %1 … + Verbinde zu %1 … - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Sie scheinen die Funktion "Virtuelle Dateien" für diesen Ordner aktiviert zu haben. Im Moment ist es nicht möglich, virtuelle Dateien, die Ende-zu-Ende-verschlüsselt sind, implizit herunterzuladen. Um die beste Erfahrung mit virtuellen Dateien und Ende-zu-Ende-Verschlüsselung zu machen, stellen Sie sicher, dass der verschlüsselte Ordner mit "Immer lokal verfügbar machen" markiert ist. + Connection settings + Verbindungseinstellungen - - - Do not encrypt folder - Ordner nicht verschlüsseln + Could not encrypt folder because the folder does not exist anymore + Der Ordner konnte nicht verschlüsselt werden, da er nicht mehr existiert - - - Encrypt folder - Ordner verschlüsseln + Create new folder + Neuen Ordner erstellen - - End-to-end Encryption - Ende-zu-Ende-Verschlüsselung + Currently there is no storage usage information available. + Derzeit sind keine Speichernutzungsinformationen verfügbar. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihre Gedächtnisstütze nicht mehr zugegriffen werden. -<b>Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?</b> + Disable support + Unterstützung deaktivieren - - End-to-end encryption has not been initialized on this account. - Für dieses Konto wurde keine Ende-zu-Ende-Verschlüsselung initialisiert. + Disable virtual file support … + Unterstützung für virtuelle Dateien deaktivieren - - Forget encryption setup - Verschlüsselungseinrichtung vergessen + Disable virtual file support? + Unterstützung für virtuelle Dateien deaktivieren? - Display mnemonic Gedächtnisstütze anzeigen - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - Die Verschlüsselung ist eingerichtet. Nicht vergessen, einen Ordner zu <b>verschlüsseln</b>, um alle neu hinzugefügten Dateien Ende-zu-Ende zu verschlüsseln. - - - - Warning - Warnung + Do not encrypt folder + Ordner nicht verschlüsseln - - Please wait for the folder to sync before trying to encrypt it. - Bitte warten Sie, bis der Ordner synchronisiert ist, bevor Sie versuchen, ihn zu verschlüsseln. + Do you want to forget the end-to-end encryption settings for %1 on this device? + Soll die Ende-zu-Ende-Verschlüsselungseinstellungen für %1 auf diesem Gerät vergessen werden? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - Der Ordner weist ein geringfügiges Synchronisierungsproblem auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde + Edit Ignored Files + Ignorierte Dateien bearbeiten - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - Der Ordner weist einen Synchronisierungsfehler auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde + Enable virtual file support %1 … + Unterstützung für virtuelle Dateien aktivieren %1 … - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - Dieser Ordner kann nicht verschlüsselt werden, da die Ende-zu-Ende-Verschlüsselung auf diesem Gerät noch nicht eingerichtet ist. -Möchten Sie dies jetzt tun? + Encrypt + Verschlüsseln - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - Sie können einen Ordner nicht mit Inhalten verschlüsseln, bitte Dateien entfernen. -Warten Sie auf die neue Synchronisierung und verschlüsseln Sie sie dann. + Encrypt folder + Ordner verschlüsseln - Encryption failed Verschlüsselung fehlgeschlagen - - Could not encrypt folder because the folder does not exist anymore - Der Ordner konnte nicht verschlüsselt werden, da er nicht mehr existiert + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + Die Verschlüsselung ist eingerichtet. Nicht vergessen, einen Ordner zu <b>verschlüsseln</b>, um alle neu hinzugefügten Dateien Ende-zu-Ende zu verschlüsseln. - - Encrypt - Verschlüsseln + End-to-end Encryption + Ende-zu-Ende-Verschlüsselung - - - Edit Ignored Files - Ignorierte Dateien bearbeiten + End-to-end Encryption with Virtual Files + Ende-zu-Ende-Verschlüsselung mit virtuellen Dateien - - - Create new folder - Neuen Ordner erstellen + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + Die Ende-zu-Ende-Verschlüsselung wurde für dieses Konto mit einem anderen Gerät initialisiert. <br>Geben Sie den eindeutigen Mnemonic ein, um die verschlüsselten Ordner auch auf diesem Gerät zu synchronisieren. - - - Availability - Verfügbarkeit + End-to-end encryption has not been initialized on this account. + Für dieses Konto wurde keine Ende-zu-Ende-Verschlüsselung initialisiert. - - Choose what to sync - Zu synchronisierende Elemente auswählen + End-to-end encryption mnemonic + Gedächtnisstütze für die Ende-zu-Ende-Verschlüsselung + + + Expand Memory + + + + Folder creation failed + Anlegen des Ordners fehlgeschlagen - Force sync now Synchronisierung jetzt erzwingen - - Restart sync - Synchronisierung neustarten + Forget encryption setup + Verschlüsselungseinrichtung vergessen - - Remove folder sync connection - Ordner-Synchronisierung entfernen + Forget the end-to-end encryption on this device + Die Ende-zu-Ende-Verschlüsselung auf diesem Gerät vergessen - - Disable virtual file support … - Unterstützung für virtuelle Dateien deaktivieren + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Wenn die Ende-zu-Ende-Verschlüsselung vergessen wird, werden die vertraulichen Daten und alle verschlüsselten Dateien von diesem Gerät entfernt. Die verschlüsselten Dateien verbleiben jedoch auf dem Server und allen Ihren anderen Geräten, sofern eingerichtet. - - Enable virtual file support %1 … - Unterstützung für virtuelle Dateien aktivieren %1 … + Migrate certificate to a new one + Zertifikat auf ein neues migrieren - - (experimental) - (experimentell) + No %1 connection configured. + Keine %1-Verbindung konfiguriert. - - Folder creation failed - Anlegen des Ordners fehlgeschlagen + No account configured. + Kein Konto konfiguriert. - - Confirm Folder Sync Connection Removal - Bestätigen Sie die Löschung der Ordner-Synchronisierung + Open folder + Ordner öffnen - - Remove Folder Sync Connection - Ordner-Synchronisierung entfernen + Pause sync + Synchronisierung pausieren - - Grant access to sync folder - Zugriff auf Synchronisierungsordner gewähren + Please wait for the folder to sync before trying to encrypt it. + Bitte warten Sie, bis der Ordner synchronisiert ist, bevor Sie versuchen, ihn zu verschlüsseln. - - Access Error - Zugriffsfehler + Remove Folder Sync Connection + Ordner-Synchronisierung entfernen - - Could not acquire access to the selected folder. Please try again. - Der Zugriff auf den ausgewählten Ordner konnte nicht hergestellt werden. Bitte nochmals versuchen. + Remove folder sync connection + Ordner-Synchronisierung entfernen - - Wrong Folder - Falscher Ordner + Restart sync + Synchronisierung neustarten - - Please select the original sync folder: %1 - Bitte den ursprünglichen Synchronisierungsordner auswählen: %1 + Resume sync + Synchronisierung fortsetzen - - - Bookmark Error - Lesezeichenfehler + Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 wird derzeit umgeleitet oder Ihre Verbindung befindet sich hinter einem Captive-Portal. - - Could not create a security bookmark for the folder. Please try again. - Es konnte kein Sicherheits-Lesezeichen für den Ordner erstellt werden. Bitte erneut versuchen. + Server %1 is currently in maintenance mode. + Server %1 befindet sich im Wartungsmodus. - - Could not resolve the security bookmark. Please try again. - Das Sicherheits-Lesezeichen konnte nicht aufgelöst werden. Bitte erneut versuchen. + Server %1 is temporarily unavailable. + Server %1 ist derzeit nicht verfügbar. - - Disable virtual file support? - Unterstützung für virtuelle Dateien deaktivieren? + Server configuration error: %1 at %2. + Konfigurationsfehler des Servers: %1 auf %2. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Durch diese Aktion wird die Unterstützung für virtuelle Dateien deaktiviert. Infolgedessen werden Inhalte von Ordnern, die derzeit als "nur online verfügbar" markiert sind, heruntergeladen. - -Der einzige Vorteil der Deaktivierung der Unterstützung für virtuelle Dateien besteht darin, dass die ausgewählte Synchronisierungsfunktion wieder verfügbar wird. - -Diese Aktion bricht jede derzeit laufende Synchronisierung ab. - - - - Disable support - Unterstützung deaktivieren - - - - End-to-end encryption mnemonic - Gedächtnisstütze für die Ende-zu-Ende-Verschlüsselung + Set up encryption + Verschlüsselung einrichten - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze aus zwölf Wörtern aus dem Wörterbuch. Bitte notieren Sie sich diese und bewahren Sie sie sicher auf. Sie benötigen sie, um die Synchronisierung verschlüsselter Ordner auf Ihren anderen Geräten einzurichten. + Signed out from %1. + Abgemeldet von %1. - - Forget the end-to-end encryption on this device - Die Ende-zu-Ende-Verschlüsselung auf diesem Gerät vergessen + Standard file sync + Standard Dateisynchronisierung - - Do you want to forget the end-to-end encryption settings for %1 on this device? - Soll die Ende-zu-Ende-Verschlüsselungseinstellungen für %1 auf diesem Gerät vergessen werden? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Wenn die Ende-zu-Ende-Verschlüsselung vergessen wird, werden die vertraulichen Daten und alle verschlüsselten Dateien von diesem Gerät entfernt. Die verschlüsselten Dateien verbleiben jedoch auf dem Server und allen Ihren anderen Geräten, sofern eingerichtet. + Storage space: … + Speicherplatz: … - Sync Running Synchronisierung läuft - - The syncing operation is running.<br/>Do you want to terminate it? - Die Synchronisierung läuft gerade.<br/>Soll diese beendet werden? + Synchronize all + Alles synchronisieren - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) von %2 belegt. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. + Synchronize none + Nichts synchronisieren - - Currently there is no storage usage information available. - Derzeit sind keine Speichernutzungsinformationen verfügbar. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + Der Ordner weist ein geringfügiges Synchronisierungsproblem auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde - - %1 in use - %1 belegt + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + Der Ordner weist einen Synchronisierungsfehler auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde - - Connected to %1 (%2). - Verbunden mit %1 (%2). + The server version %1 is unsupported! Proceed at your own risk. + Die Serverversion %1 wird nicht unterstützt! Fortfahren auf eigenes Risiko. - - Migrate certificate to a new one - Zertifikat auf ein neues migrieren + The syncing operation is running.<br/>Do you want to terminate it? + Die Synchronisierung läuft gerade.<br/>Soll diese beendet werden? - There are folders that have grown in size beyond %1MB: %2 Es gibt Ordner, deren Größe über %1 MB hinaus gewachsen ist: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - Die Ende-zu-Ende-Verschlüsselung wurde für dieses Konto mit einem anderen Gerät initialisiert. <br>Geben Sie den eindeutigen Mnemonic ein, um die verschlüsselten Ordner auch auf diesem Gerät zu synchronisieren. - - - - This account supports end-to-end encryption, but it needs to be set up first. - Dieses Konto unterstützt die Ende-zu-Ende-Verschlüsselung, diese muss aber zuerst eingerichtet werden. - - - - The virtual files integration does not support end-to-end encryption yet. - Die Integration für virtuelle Dateien unterstützt keine Ende-zu-Ende-Verschlüsselung. - - - - Set up encryption - Verschlüsselung einrichten - - - - Connected to %1. - Verbunden mit %1. - - - - Server %1 is temporarily unavailable. - Server %1 ist derzeit nicht verfügbar. - - - - Server %1 is currently in maintenance mode. - Server %1 befindet sich im Wartungsmodus. - - - - Signed out from %1. - Abgemeldet von %1. - - - - There are folders that were not synchronized because they are too big: - Einige Ordner konnten nicht synchronisiert werden, da sie zu groß sind: - - - - There are folders that were not synchronized because they are external storages: - Es gibt Ordner, die nicht synchronisiert werden konnten, da sie externe Speicher sind: - - - - There are folders that were not synchronized because they are too big or external storages: - Es gibt Ordner, die nicht synchronisiert werden konnten, da sie zu groß oder externe Speicher sind: + There are folders that were not synchronized because they are external storages: + - - - Open folder - Ordner öffnen + There are folders that were not synchronized because they are too big or external storages: + - - Resume sync - Synchronisierung fortsetzen + There are folders that were not synchronized because they are too big: + - - Pause sync - Synchronisierung pausieren + This account supports end-to-end encryption, but it needs to be set up first. + Dieses Konto unterstützt die Ende-zu-Ende-Verschlüsselung, diese muss aber zuerst eingerichtet werden. - - <p>Could not create local folder <i>%1</i>.</p> - <p>Konnte lokalen Ordner <i>%1</i> nicht anle‏gen.‎</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Durch diese Aktion wird die Unterstützung für virtuelle Dateien deaktiviert. Infolgedessen werden Inhalte von Ordnern, die derzeit als "nur online verfügbar" markiert sind, heruntergeladen. + +Der einzige Vorteil der Deaktivierung der Unterstützung für virtuelle Dateien besteht darin, dass die ausgewählte Synchronisierungsfunktion wieder verfügbar wird. + +Diese Aktion bricht jede derzeit laufende Synchronisierung ab. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Möchten Sie den Ordner <i>%1</i> nicht mehr synchronisieren?</p><p><b>Anmerkung:</b> Dies wird <b>keine</b> Dateien löschen.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihre Gedächtnisstütze nicht mehr zugegriffen werden. +<b>Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?</b> - - %1 of %2 in use - %1 von %2 belegt + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze aus zwölf Wörtern aus dem Wörterbuch. Bitte notieren Sie sich diese und bewahren Sie sie sicher auf. Sie benötigen sie, um die Synchronisierung verschlüsselter Ordner auf Ihren anderen Geräten einzurichten. - - %1 as %2 - %1 als %2 + Unable to connect to %1. + Verbindung zu %1 kann nicht hergestellt werden. - - The server version %1 is unsupported! Proceed at your own risk. - Die Serverversion %1 wird nicht unterstützt! Fortfahren auf eigenes Risiko. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Nicht markierte Ordner werden von Ihrem lokalen Dateisystem <b>entfernt</b> und werden auch nicht mehr auf diesem Rechner synchronisiert - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Server %1 wird derzeit umgeleitet oder Ihre Verbindung befindet sich hinter einem Captive-Portal. + Virtual file sync + Virtuelle Dateisynchronisierung - - Connecting to %1 … - Verbinde zu %1 … + Warning + Warnung - - Unable to connect to %1. - Verbindung zu %1 kann nicht hergestellt werden. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + Sie können einen Ordner nicht mit Inhalten verschlüsseln, bitte Dateien entfernen. +Warten Sie auf die neue Synchronisierung und verschlüsseln Sie sie dann. - - Server configuration error: %1 at %2. - Konfigurationsfehler des Servers: %1 auf %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + Dieser Ordner kann nicht verschlüsselt werden, da die Ende-zu-Ende-Verschlüsselung auf diesem Gerät noch nicht eingerichtet ist. +Möchten Sie dies jetzt tun? - You need to accept the terms of service at %1. Die Nutzungsbedingungen unter %1 müssen bestätigt werden. - - No %1 connection configured. - Keine %1-Verbindung konfiguriert. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Sie scheinen die Funktion "Virtuelle Dateien" für diesen Ordner aktiviert zu haben. Im Moment ist es nicht möglich, virtuelle Dateien, die Ende-zu-Ende-verschlüsselt sind, implizit herunterzuladen. Um die beste Erfahrung mit virtuellen Dateien und Ende-zu-Ende-Verschlüsselung zu machen, stellen Sie sicher, dass der verschlüsselte Ordner mit "Immer lokal verfügbar machen" markiert ist. - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - Die genehmigte Anfrage an den Server wurde an "%1" umgeleitet. Die URL ist fehlerhaft, der Server ist falsch konfiguriert. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Zugriff durch Server verboten. Um zu überprüfen, ob Sie über den richtigen Zugriff verfügen, <a href="%1">klicken Sie hier</a>, um mit Ihrem Browser auf den Dienst zuzugreifen. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + Die genehmigte Anfrage an den Server wurde an "%1" umgeleitet. Die URL ist fehlerhaft, der Server ist falsch konfiguriert. + + There was an invalid response to an authenticated WebDAV request Es gab eine ungültige Antwort auf eine authentifizierte WebDAV-Anfrage @@ -1070,57 +856,46 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::AccountState - - Signed out - Abgemeldet + Asking Credentials + Zugangsdaten werden abgefragt - - Disconnected - Getrennt + Configuration error + Konfigurationsfehler - Connected Verbunden - - Service unavailable - Dienst nicht verfügbar + Disconnected + Getrennt - Maintenance mode Wartungsmodus - - Redirect detected - Umleitung erkannt + Need the user to accept the terms of service + Der Benutzer muss die Nutzungsbedingungen akzeptieren - Network error Netzwerkfehler - - Configuration error - Konfigurationsfehler + Redirect detected + Umleitung erkannt - - Asking Credentials - Zugangsdaten werden abgefragt + Service unavailable + Dienst nicht verfügbar - - Need the user to accept the terms of service - Der Benutzer muss die Nutzungsbedingungen akzeptieren + Signed out + Abgemeldet - Unknown account state Unbekannter Konto-Zustand @@ -1128,17 +903,14 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::ActivityListModel - - For more activities please open the Activity app. - Um weitere Aktivitäten anzusehen, bitte die Activity-App öffnen. - - - Fetching activities … Aktivitäten abrufen… - + For more activities please open the Activity app. + Um weitere Aktivitäten anzusehen, bitte die Activity-App öffnen. + + Network error occurred: client will retry syncing. Netzwerkfehler aufgetreten: Client startet die Synchronisation neu @@ -1146,168 +918,134 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::AddCertificateDialog - - SSL client certificate authentication - SSL-Client-Zertifikat-Authentifizierung + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Ein verschlüsseltes pkcs12-Bundle wird dringend empfohlen, da eine Kopie in der Konfigurationsdatei gespeichert wird. - - This server probably requires a SSL client certificate. - Der Server benötigt vermutlich ein SSL-Client-Zertifikat + Browse … + Durchsuchen … - Certificate & Key (pkcs12): Zertifikat & Schlüssel (pkcs12): - + Certificate files (*.p12 *.pfx) + Zertifikatsdateien (*.p12 *.pfx) + + Certificate password: Zertifikatspasswort: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Ein verschlüsseltes pkcs12-Bundle wird dringend empfohlen, da eine Kopie in der Konfigurationsdatei gespeichert wird. - - - - Browse … - Durchsuchen … + SSL client certificate authentication + SSL-Client-Zertifikat-Authentifizierung - Select a certificate Zertifikat auswählen - - Certificate files (*.p12 *.pfx) - Zertifikatsdateien (*.p12 *.pfx) - - - - Could not access the selected certificate file. - Auf die ausgewählte Zertifikatsdatei konnte nicht zugegriffen werden. + This server probably requires a SSL client certificate. + Der Server benötigt vermutlich ein SSL-Client-Zertifikat - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Einige Einstellungen wurden in %1-Versionen dieses Clients konfiguriert und verwenden Funktionen, die in dieser Version nicht verfügbar sind.<br><br>Fortfahren bedeutet <b>%2 dieser Einstellungen</b>.<br><br>Die aktuelle Konfigurationsdatei wurde bereits auf <i>%3</i> gesichert. - - - - newer - newer software version - Neuer - - - - older - older software version - Älter + %1 accounts + number of accounts imported + %1 Konten - - ignoring - Ignoriere + %1 folders + number of folders imported + %1 Ordner - - deleting - Lösche + 1 account + 1 Konto - - Quit - Beenden + 1 folder + 1 Ordner - Continue Fortsetzen - - %1 accounts - number of accounts imported - %1 Konten + Error accessing the configuration file + Fehler beim Zugriff auf die Konfigurationsdatei - - 1 account - 1 Konto - - - - %1 folders - number of folders imported - %1 Ordner - - - - 1 folder - 1 Ordner + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + %1 und %2 wurden von einem älteren Desktop-Client importiert. +%3 - Legacy import Import früherer Konfiguration - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - %1 und %2 wurden von einem älteren Desktop-Client importiert. -%3 + Quit + Beenden - - Error accessing the configuration file - Fehler beim Zugriff auf die Konfigurationsdatei + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Einige Einstellungen wurden in %1-Versionen dieses Clients konfiguriert und verwenden Funktionen, die in dieser Version nicht verfügbar sind.<br><br>Fortfahren bedeutet <b>%2 dieser Einstellungen</b>.<br><br>Die aktuelle Konfigurationsdatei wurde bereits auf <i>%3</i> gesichert. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Beim Zugriff auf die Konfigurationsdatei unter %1 ist ein Fehler aufgetreten. Stellen Sie sicher, dass Ihr Systemkonto auf die Datei zugreifen kann. - - - OCC::AuthenticationDialog + + deleting + Lösche + - - Authentication Required - Authentifizierung erforderlich + ignoring + Ignoriere - - Enter username and password for "%1" at %2. - Benutzername und Passwort für "%1" auf %2 eingeben. + newer + newer software version + Neuer - - &Username: - &Benutzername: + older + older software version + Älter + + + OCC::AuthenticationDialog - &Password: &Passwort: - + + &Username: + &Benutzername: + + + Authentication Required + Authentifizierung erforderlich + + + Enter username and password for "%1" at %2. + Benutzername und Passwort für "%1" auf %2 eingeben. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 Der verschlüsselte Ordner %2 konnte nicht entsperrt werden". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Falscher HTTP-Code vom Server zurückgegeben. Erwartet wird 204, jedoch "%1 %2" erhalten. @@ -1315,245 +1053,195 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Fehler beim Aktualisieren der Metadaten: %1 + + File %1 can not be downloaded because of a local file name clash! Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden! - + The file %1 is currently in use + Die Datei %1 ist derzeit in Gebrauch + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Metadaten der neuen Datei %1 konnten nicht aktualisiert werden. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 - - The file %1 is currently in use - Die Datei %1 ist derzeit in Gebrauch - - - - OCC::BulkPropagatorJob - - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Die Datei %1 kann nicht hochgeladen werden, da eine andere Datei mit demselben Namen, nur unterschiedlicher Groß-/Kleinschreibung, existiert - - File contains leading or trailing spaces and couldn't be renamed - Dateiname enthält Leerzeichen am Anfang oder am Ende und konnte nicht umbenannt werden + File %1 has invalid modification time. Do not upload to the server. + Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. - File %1 has invalid modified time. Do not upload to the server. Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. - File Removed (start upload) %1 Datei entfernt (starte das Hochladen) %1 - - File %1 has invalid modification time. Do not upload to the server. - Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. - - - - Local file changed during syncing. It will be resumed. - Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wieder aufgenommen. + File contains leading or trailing spaces and couldn't be renamed + Dateiname enthält Leerzeichen am Anfang oder am Ende und konnte nicht umbenannt werden - - Local file changed during sync. Lokale Datei wurde während der Synchronisierung geändert. - + Local file changed during syncing. It will be resumed. + Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wieder aufgenommen. + + Network error: %1 Netzwerkfehler: %1 - - Error updating metadata: %1 - Fehler beim Aktualisieren der Metadaten: %1 + Restoration failed: %1 + Wiederherstellung fehlgeschlagen: %1 - - + The file %1 is currently in use Die Datei %1 wird aktuell verwendet - The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. - - - Restoration failed: %1 - Wiederherstellung fehlgeschlagen: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Die Datei kann nicht umbenannt werden, da eine Datei mit demselben Namen bereits auf dem Server existiert. Bitte einen anderen Namen wählen. - Could not rename file. Please make sure you are connected to the server. Datei konnte nicht umbenannt werden. Bitte stellen Sie sicher, dass Sie mit dem Server verbunden sind. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich zum Umbenennen der Datei an deren Ersteller. - - - Failed to fetch permissions with error %1 Berechtigungen konnten nicht abgerufen werden. Fehler: %1 - Filename contains leading and trailing spaces. Dateiname enthält Leerzeichen am Anfang und am Ende. - Filename contains leading spaces. Dateiname enthält Leerzeichen am Anfang. - Filename contains trailing spaces. Dateiname enthält Leerzeichen am Ende. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich zum Umbenennen der Datei an deren Ersteller. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 unterstützt keine gleichen Dateinamen mit Unterschieden nur in der Groß- und Kleinschreibung. + + + 0 byte + 0 Byte + + Case Clash Conflict Konflikt mit der Groß- und Kleinschreibung - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich der Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. + Case clashing file + Datei mit dem Problem der Groß- und Kleinschreibung - Error Fehler - Existing file Vorhandene Datei - - file A - Datei A - - - - - today - Heute + Filename contains illegal characters: %1 + Dateiname enthält unzulässige Zeichen: %1 - - - - 0 byte - 0 Byte + + Filename contains leading and trailing spaces. + Dateiname enthält Leerzeichen am Anfang und am Ende. - - - Open existing file - Existierende Datei öffnen + Filename contains leading spaces. + Dateiname enthält Leerzeichen am Anfang. - - Case clashing file - Datei mit dem Problem der Groß- und Kleinschreibung + Filename contains trailing spaces. + Dateiname enthält Leerzeichen am Ende. - - file B - Datei B + New filename + Neuer Dateiname - - Open clashing file Datei mit dem Problem der Groß- und Kleinschreibung öffnen - - Please enter a new name for the clashing file: - Bitte einen neuen Namen für die Datei mit dem Problem der Groß- und Kleinschreibung eingeben: + Open existing file + Existierende Datei öffnen - - New filename - Neuer Dateiname + Please enter a new name for the clashing file: + Bitte einen neuen Namen für die Datei mit dem Problem der Groß- und Kleinschreibung eingeben: - Rename file Datei umbenennen - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. Die Datei "%1" konnte aufgrund eines Konflikts (Groß- / Kleinschreibung) mit einer vorhandenen Datei auf diesem System nicht synchronisiert werden. - - %1 does not support equal file names with only letter casing differences. - %1 unterstützt keine gleichen Dateinamen mit Unterschieden nur in der Groß- und Kleinschreibung. - - - - Filename contains leading and trailing spaces. - Dateiname enthält Leerzeichen am Anfang und am Ende. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich der Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. - - Filename contains leading spaces. - Dateiname enthält Leerzeichen am Anfang. + Use invalid name + Ungültigen Namen verwenden - - Filename contains trailing spaces. - Dateiname enthält Leerzeichen am Ende. + file A + Datei A - - Use invalid name - Ungültigen Namen verwenden + file B + Datei B - - Filename contains illegal characters: %1 - Dateiname enthält unzulässige Zeichen: %1 + today + Heute - + OCC::CleanupPollsJob - Error writing metadata to the database Fehler beim Schreiben der Metadaten in die Datenbank @@ -1561,361 +1249,330 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - PIN-Code eingeben - - - Enter Certificate USB Token PIN: PIN des USB-Token-Zertifikats eingeben: - + Enter E2E passphrase + E2E-Passphrase eingeben + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + PIN-Code eingeben + + Invalid PIN. Login failed Ungültige PIN. Anmeldung fehlgeschlagen - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Die Anmeldung am Token ist nach Eingabe der Benutzer-PIN fehlgeschlagen. Sie kann ungültig oder falsch sein. Bitte erneut versuchen! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Geben Sie Ihre Passphrase für Ende-zu-Ende-Verschlüsselung ein:<br><br>Benutzername: %2<br>Konto: %3<br> - - - Enter E2E passphrase - E2E-Passphrase eingeben - - + OCC::ConflictDialog - - Sync Conflict - Synchronisations-Konflikt - - - - - Conflicting versions of %1. - Konflikt-Versionen von %1. + 0 byte + 0 Byte - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Welche Version der Datei soll behalten werden?<br/>Wenn Sie beide Versionen wählen, wird der lokalen Datei eine Zahl am Ende des Dateinamens angefügt. + <a href="%1">Open local version</a> + <a href="%1">Lokale Version öffnen</a> - - Local version - Lokale Version + <a href="%1">Open server version</a> + <a href="%1">Serverversion öffnen</a> - - Click to open the file Klicken, um die Datei zu öffnen - - - today - Heute + Conflicting versions of %1. + Konflikt-Versionen von %1. - - - 0 byte - 0 Byte + Keep both versions + Beide Versionen behalten - - <a href="%1">Open local version</a> - <a href="%1">Lokale Version öffnen</a> + Keep local version + Lokale Version behalten - - Server version - Serverversion + Keep selected version + Ausgewählte Version behalten - - <a href="%1">Open server version</a> - <a href="%1">Serverversion öffnen</a> + Keep server version + Serverversion behalten - - - - Keep selected version - Ausgewählte Version behalten + + Local version + Lokale Version - Open local version Lokale Version öffnen - Open server version Serverversion öffnen - - Keep both versions - Beide Versionen behalten + Server version + Serverversion - - Keep local version - Lokale Version behalten + Sync Conflict + Synchronisations-Konflikt - - Keep server version - Serverversion behalten + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Welche Version der Datei soll behalten werden?<br/>Wenn Sie beide Versionen wählen, wird der lokalen Datei eine Zahl am Ende des Dateinamens angefügt. - + + today + Heute + + OCC::ConflictSolver - - - Error - Fehler + Confirm deletion + Löschen bestätigen - - - - Moving file failed: - -%1 - Verschieben der Datei fehlgeschlagen: - -%1 - - - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Soll der Ordner <i>%1</i> und dessen Inhalte dauerhaft gelöscht werden? - Do you want to delete the file <i>%1</i> permanently? Soll die Datei <i>%1</i> dauerhaft gelöscht werden? - - Confirm deletion - Löschen bestätigen + Error + Fehler - + + Moving file failed: + +%1 + Verschieben der Datei fehlgeschlagen: + +%1 + + OCC::ConnectionValidator - + Authentication error: Either username or password are wrong. + Authentifizierungsfehler: Benutzername oder Passwort ist falsch. + + No %1 account configured The placeholder will be the application name. Please keep it Kein %1-Konto eingerichtet - - Timeout - Zeitüberschreitung + Please update to the latest server and restart the client. + Aktualisieren Sie auf die neueste Serverversion und starten Sie den Client neu. - The configured server for this client is too old Der konfigurierte Server ist für diesen Client zu alt - - Please update to the latest server and restart the client. - Aktualisieren Sie auf die neueste Serverversion und starten Sie den Client neu. + The provided credentials are not correct + Die zur Verfügung gestellten Anmeldeinformationen sind nicht korrekt + + + Timeout + Zeitüberschreitung + + + OCC::DataProtectionPage - - Authentication error: Either username or password are wrong. - Authentifizierungsfehler: Benutzername oder Passwort ist falsch. + Agree + - - The provided credentials are not correct - Die zur Verfügung gestellten Anmeldeinformationen sind nicht korrekt + Form + Formular + + + Settings + Einstellungen + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Fehler beim Abbrechen des Löschens einer Datei + Back + Zurück - - Error while canceling deletion of %1 - Fehler beim Abbrechen des Löschens von %1 + Form + Formular + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! + Error while canceling deletion of %1 + Fehler beim Abbrechen des Löschens von %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - Der Server hat eine unerwartete Antwort zurückgegeben, die nicht gelesen werden konnte. Bitte die Serveradministration kontaktieren." + + Error while canceling deletion of a file + Fehler beim Abbrechen des Löschens einer Datei + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Einrichtungsfehler für verschlüsselte Metadaten! - Encrypted metadata setup error: initial signature from server is empty. Fehler bei der Einrichtung der verschlüsselten Metadaten: Die ursprüngliche Signatur vom Server ist leer. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! + - - Error while opening directory %1 - Fehler beim Öffnen des Ordners %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + Der Server hat eine unerwartete Antwort zurückgegeben, die nicht gelesen werden konnte. Bitte die Serveradministration kontaktieren." + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Verzeichnis auf dem Client nicht zugreifbar, Berechtigung verweigert - Directory not found: %1 Ordner nicht gefunden: %1 - - Filename encoding is not valid - Dateinamenkodierung ist ungültig + Error while opening directory %1 + Fehler beim Öffnen des Ordners %1 - Error while reading directory %1 Fehler beim Lesen des Ordners %1 - + + Filename encoding is not valid + Dateinamenkodierung ist ungültig + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Lokale Bearbeitung konnte nicht gestartet werden. + An error occurred during data retrieval. + Es ist ein Fehler beim Datenabruf aufgetreten. - - An error occurred during setup. Es ist ein Fehler während der Einrichtung aufgetreten. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Datei zur lokalen Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist und lokal synchronisiert wird. + An error occurred trying to synchronise the file to edit locally. + Es ist ein Fehler beim Versuch, die Datei zu synchronisieren, um sie lokal zu bearbeiten, aufgetreten. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Datei zur lokalen Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass sie nicht durch die selektive Synchronisierung ausgeschlossen wird. - - - - An error occurred during data retrieval. - Es ist ein Fehler beim Datenabruf aufgetreten. - - - - - An error occurred trying to synchronise the file to edit locally. - Es ist ein Fehler beim Versuch, die Datei zu synchronisieren, um sie lokal zu bearbeiten, aufgetreten. - - - - Server error: PROPFIND reply is not XML formatted! - Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Datei zur lokalen Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist und lokal synchronisiert wird. - Could not find a remote file info for local editing. Make sure its path is valid. Remote-Dateiinformationen für die lokale Bearbeitung konnten nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist. - - Invalid local file path. - Ungültiger lokaler Dateipfad. - - - Could not open %1 %1 konnte nicht geöffnet werden - - Please try again. - Bitte erneut versuchen. + Could not start editing locally. + Lokale Bearbeitung konnte nicht gestartet werden. - File %1 already locked. Datei %1 bereits gesperrt. - - + File %1 could not be locked. + Datei %1 konnte nicht gesperrt werden. + + + File %1 now locked. + Datei %1 ist jetzt gesperrt. + + + Invalid local file path. + Ungültiger lokaler Dateipfad. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Die Sperre dauert noch %1 Minuten. Sie können diese Datei auch manuell entsperren, sobald Sie mit der Bearbeitung fertig sind. - - File %1 now locked. - Datei %1 ist jetzt gesperrt. + Please try again. + Bitte erneut versuchen. - - File %1 could not be locked. - Datei %1 konnte nicht gesperrt werden. + Server error: PROPFIND reply is not XML formatted! + Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Die Anforderung zum Öffnen einer Datei vom Server konnte nicht validiert werden. - Please try again. Bitte erneut versuchen. @@ -1923,404 +1580,308 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. OCC::EditLocallyVerificationJob - - Invalid token received. - Ungültiges Token empfangen. - - - - - - Please try again. - Bitte erneut versuchen. - - - - Invalid file path was provided. - Ungültiger Dateipfad wurde angegeben. + An error occurred trying to verify the request to edit locally. + Es ist ein Fehler beim Versuch, die Anfrage zur lokalen Bearbeitung zu überprüfen, aufgetreten. - - + Could not find an account for local editing. Es konnte kein Konto für die lokale Bearbeitung gefunden werden. - Could not start editing locally. Lokale Bearbeitung konnte nicht gestartet werden. - - An error occurred trying to verify the request to edit locally. - Es ist ein Fehler beim Versuch, die Anfrage zur lokalen Bearbeitung zu überprüfen, aufgetreten. + Invalid file path was provided. + Ungültiger Dateipfad wurde angegeben. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Die Metadaten für die Verschlüsselung konnten nicht generiert werden. Entsperren des Ordners. -Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + Invalid token received. + Ungültiges Token empfangen. - + + Please try again. + Bitte erneut versuchen. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Fehler beim Abrufen der verschlüsselten Ordner-ID. + + Error fetching metadata. Fehler beim Abrufen der Metadaten. - - - Error locking folder. Fehler beim Sperren des Ordners. - - Error fetching encrypted folder ID. - Fehler beim Abrufen der verschlüsselten Ordner-ID. - - - Error parsing or decrypting metadata. Fehler beim Lesen oder Entschlüsseln von Metadaten. - Failed to upload metadata Metadaten konnten nicht hochgeladen werden - OCC::FileActionsModel - - - Your account is offline %1. - account url - Ihr Konto ist offline %1. - - - - The file ID is empty for %1. - file name - Die Datei-ID für %1 ist leer. - - - - The file type for %1 is not valid. - file name - Der Dateityp für %1 ist ungültig. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - Für %1 Dateien wurden vom Server keine Dateiaktionen zurückgegeben. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - %1 hat nicht geklappt. Bitte später noch einmal versuchen. Für Hilfe, bitte an die Serveradministration wenden. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 erledigt. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Die Metadaten für die Verschlüsselung konnten nicht generiert werden. Entsperren des Ordners. +Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - Vor %1 SekundeVor %1 Sekunden - - - - %1 minute(s) ago - minutes elapsed since file last modified - Vor %1 MinuteVor %1 Minuten + %1 day(s) ago + days elapsed since file last modified + + Vor %1 Tag + Vor %1 Tagen + - %1 hour(s) ago hours elapsed since file last modified - Vor %1 StundeVor %1 Stunden + + Vor %1 Stunde + Vor %1 Stunden + - - %1 day(s) ago - days elapsed since file last modified - Vor %1 TagVor %1 Tagen + %1 minute(s) ago + minutes elapsed since file last modified + + Vor %1 Minute + Vor %1 Minuten + - %1 month(s) ago months elapsed since file last modified - Vor %1 MonatVor %1 Monaten + + Vor %1 Monat + Vor %1 Monaten + + + + %1 second(s) ago + seconds elapsed since file last modified + + Vor %1 Sekunde + Vor %1 Sekunden + - %1 year(s) ago years elapsed since file last modified - Vor %1 JahrVor %1 Jahren + + Vor %1 Jahr + Vor %1 Jahren + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Gesperrt von %1 - Läuft in %2 Minute abGesperrt von %1 - Läuft in %2 Minuten ab + + Gesperrt von %1 - Läuft in %2 Minute ab + Gesperrt von %1 - Läuft in %2 Minuten ab + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + Beim Versuch, auf den Server zuzugreifen, ist ein unerwarteter Fehler aufgetreten. Bitte später erneut versuchen, oder an die Serveradministration wenden, falls das das Problem weiterhin besteht. + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. Die zurückgegebene Server-URL beginnt nicht mit HTTPS, obwohl die Anmelde-URL mit HTTPS beginnt. Die Anmeldung ist nicht möglich, da dies ein Sicherheitsproblem darstellen könnte. Bitte wenden Sie sich an Ihre Administration. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + Der Server hat nicht mit den erwarteten Daten geantwortet. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Der Server ist vorübergehend nicht verfügbar, da er sich im Wartungsmodus befindet. Bitte erneut versuchen, sobald die Wartung abgeschlossen ist. - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - Beim Versuch, auf den Server zuzugreifen, ist ein unerwarteter Fehler aufgetreten. Bitte später erneut versuchen, oder an die Serveradministration wenden, falls das das Problem weiterhin besteht. - - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Die Serverantwort konnte nicht analysiert werden.. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. - - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - Der Server hat nicht mit den erwarteten Daten geantwortet. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. - - + OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Der Browser kann nicht geöffnet werden. Bitte kopieren Sie den Link in Ihren Browser. - - - - Waiting for authorization - Warte auf Autorisierung - - - - Polling for authorization - Abruf der Autorisierung + Copy Link + Link kopieren - - Starting authorization - Starte Autorisierung + Error + Fehler - Link copied to clipboard. Link in die Zwischenablage kopiert. - Open Browser Browser öffnen - - Copy Link - Link kopieren + Polling for authorization + Abruf der Autorisierung - - - OCC::Folder - - %1 has been removed. - %1 names a file. - %1 wurde entfernt. + Starting authorization + Starte Autorisierung - - %1 has been updated. - %1 names a file. - %1 wurde aktualisiert. + Switch to your browser to connect your account + Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 wurde in %2 umbenannt. + + Unable to open the Browser, please copy the link to your Browser. + Der Browser kann nicht geöffnet werden. Bitte kopieren Sie den Link in Ihren Browser. - - %1 has been moved to %2. - %1 wurde in %2 verschoben. + Waiting for authorization + Warte auf Autorisierung + + + OCC::Folder - - %1 and %n other file(s) have been removed. - %1 und %n andere Datei wurden gelöscht.%1 und %n andere Dateien wurden entfernt. - - - - Please choose a different location. The folder %1 doesn't exist. - Bitte wählen Sie einen anderen Speicherort. Der Ordner %1 ist nicht vorhanden. - - - - Please choose a different location. %1 isn't a valid folder. - Bitte wählen Sie einen anderen Speicherort. %1 ist kein gültiger Ordner. - - - - Please choose a different location. %1 isn't a readable folder. - Bitte wählen Sie einen anderen Speicherort. %1 ist kein lesbarer Ordner. + %1 and %n other file(s) are currently locked. + + %1 und %n andere Datei sind aktuell gesperrt. + %1 und %n andere Dateien sind aktuell gesperrt. + - - %1 and %n other file(s) have been added. - %1 und %n andere Datei wurden hinzugefügt.%1 und %n andere Dateien wurden hinzugefügt. - - - - %1 has been added. - %1 names a file. - %1 wurde hinzugefügt. + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 und %n weitere Datei konnten aufgrund von Fehlern nicht synchronisiert werden. Schauen Sie in das Protokoll für Details. + %1 und %n weitere Dateien konnten aufgrund von Fehlern nicht synchronisiert werden. Details finden Sie im Protokoll. + - - %1 and %n other file(s) have been updated. - %1 und %n andere Datei wurde aktualisiert.%1 und %n andere Dateien wurden aktualisiert. + %1 and %n other file(s) have been added. + + %1 und %n andere Datei wurden hinzugefügt. + %1 und %n andere Dateien wurden hinzugefügt. + - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 wurde in %2 umbenannt und %n andere Datei wurde umbenannt.%1 wurde in %2 umbenannt und %n andere Dateien wurden umbenannt. + %1 and %n other file(s) have been removed. + + %1 und %n andere Datei wurden gelöscht. + %1 und %n andere Dateien wurden entfernt. + - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 wurde in %2 verschoben und %n andere Datei wurde verschoben.%1 wurde in %2 verschoben und %n andere Dateien wurden verschoben. + %1 and %n other file(s) have been updated. + + %1 und %n andere Datei wurde aktualisiert. + %1 und %n andere Dateien wurden aktualisiert. + - - - %1 has and %n other file(s) have sync conflicts. - %1 und %n andere Datei haben Konflikte beim Abgleichen.%1 und %n andere Dateien haben Konflikte beim Abgleichen. + + %1 could not be synced due to an error. See the log for details. + %1 konnte aufgrund eines Fehlers nicht synchronisiert werden. Details finden Sie im Protokoll. - %1 has a sync conflict. Please check the conflict file! Es gab einen Konflikt bei der Synchronisierung von %1. Bitte prüfen Sie die Konfliktdatei! - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 und %n weitere Datei konnten aufgrund von Fehlern nicht synchronisiert werden. Schauen Sie in das Protokoll für Details.%1 und %n weitere Dateien konnten aufgrund von Fehlern nicht synchronisiert werden. Details finden Sie im Protokoll. + %1 has and %n other file(s) have sync conflicts. + + %1 und %n andere Datei haben Konflikte beim Abgleichen. + %1 und %n andere Dateien haben Konflikte beim Abgleichen. + - - %1 could not be synced due to an error. See the log for details. - %1 konnte aufgrund eines Fehlers nicht synchronisiert werden. Details finden Sie im Protokoll. + %1 has been added. + %1 names a file. + %1 wurde hinzugefügt. - - %1 and %n other file(s) are currently locked. - %1 und %n andere Datei sind aktuell gesperrt.%1 und %n andere Dateien sind aktuell gesperrt. + %1 has been moved to %2 and %n other file(s) have been moved. + + %1 wurde in %2 verschoben und %n andere Datei wurde verschoben. + %1 wurde in %2 verschoben und %n andere Dateien wurden verschoben. + - - %1 is currently locked. - %1 ist aktuell gesperrt. + %1 has been moved to %2. + %1 wurde in %2 verschoben. - - Sync Activity - Synchronisierungsaktivität + %1 has been removed. + %1 names a file. + %1 wurde entfernt. + + + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 wurde in %2 umbenannt und %n andere Datei wurde umbenannt. + %1 wurde in %2 umbenannt und %n andere Dateien wurden umbenannt. + - - Could not read system exclude file - Systemeigene Ausschlussdatei kann nicht gelesen werden + %1 has been renamed to %2. + %1 and %2 name files. + %1 wurde in %2 umbenannt. - - A new folder larger than %1 MB has been added: %2. - - Ein neuer Ordner größer als %1 MB wurde hinzugefügt: %2. - + %1 has been updated. + %1 names a file. + %1 wurde aktualisiert. - - A folder from an external storage has been added. - - Ein Ordner von einem externen Speicher wurde hinzugefügt. - + %1 is currently locked. + %1 ist aktuell gesperrt. - - Please go in the settings to select it if you wish to download it. - Bitte wechseln Sie zu den Einstellungen, falls Sie den Ordner herunterladen möchten. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Ein Ordner hat die festgelegte Ordnergrößenbeschränkung von %1 MB überschritten: %2. %3 - - Keep syncing - Weiterhin synchronisieren - - - - Stop syncing - Synchronisation stoppen - - - - The folder %1 has surpassed the set folder size limit of %2MB. - Der Ordner %1 hat die festgelegte Größenbeschränkung von %2 MB überschritten. - - - - Would you like to stop syncing this folder? - Soll die Synchronisierung dieses Ordners gestoppt werden? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Eine große Anzahl von Dateien auf dem Server wurde gelöscht. +Bitte bestätigen Sie, dass Sie mit deren Löschung fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie von Ordner '%1' auf den Server hochladen. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - Der Ordner %1 wurde erstellt, wurde jedoch zuvor von der Synchronisierung ausgeschlossen. Die darin enthaltenen Daten werden nicht synchronisiert. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Eine große Anzahl von Dateien wurde lokal im Ordner '%1' gelöscht. +Bitte bestätigen Sie, dass Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie auch alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Die Datei % 1 wurde erstellt, jedoch bereits zuvor von der Synchronisierung ausgeschlossen. Sie wird nicht synchronisiert werden. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2333,210 +1894,206 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - Der Download der virtuellen Datei ist mit dem Code "%1", dem Status "%2" und der Fehlermeldung "%3" fehlgeschlagen. + Could not read system exclude file + Systemeigene Ausschlussdatei kann nicht gelesen werden - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Eine große Anzahl von Dateien auf dem Server wurde gelöscht. -Bitte bestätigen Sie, dass Sie mit deren Löschung fortfahren möchten. -Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie von Ordner '%1' auf den Server hochladen. + Keep syncing + Weiterhin synchronisieren - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - Eine große Anzahl von Dateien wurde lokal im Ordner '%1' gelöscht. -Bitte bestätigen Sie, dass Sie mit diesen Löschungen fortfahren möchten. -Alternativ können Sie auch alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + Please choose a different location. %1 isn't a readable folder. + Bitte wählen Sie einen anderen Speicherort. %1 ist kein lesbarer Ordner. - - Remove all files? - Alle Dateien entfernen? + Please choose a different location. %1 isn't a valid folder. + Bitte wählen Sie einen anderen Speicherort. %1 ist kein gültiger Ordner. + + + Please choose a different location. The folder %1 doesn't exist. + Bitte wählen Sie einen anderen Speicherort. Der Ordner %1 ist nicht vorhanden. + + + Please go in the settings to select it if you wish to download it. + Bitte wechseln Sie zu den Einstellungen, falls Sie den Ordner herunterladen möchten. - Proceed with Deletion Mit der Löschung fortfahren - - Restore Files to Server - Dateien auf dem Server wiederherstellen + Remove all files? + Alle Dateien entfernen? - Restore Files from Server Dateien vom Server wiederherstellen - - - OCC::FolderCreationDialog - - - Create new folder - Neuen Ordner erstellen - - - - Enter folder name - Ordnernamen eingeben + + Restore Files to Server + Dateien auf dem Server wiederherstellen - - Folder already exists - Ordner existiert bereits + Stop syncing + Synchronisation stoppen - - Error - Fehler + Sync Activity + Synchronisierungsaktivität - - Could not create a folder! Check your write permissions. - Ordner konnte nicht erstellt werden! Prüfen Sie die Schreibberechtigungen. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Die Datei % 1 wurde erstellt, jedoch bereits zuvor von der Synchronisierung ausgeschlossen. Sie wird nicht synchronisiert werden. - - - OCC::FolderMan - - Could not reset folder state - Konnte Ordner-Zustand nicht zurücksetzen + The folder %1 has surpassed the set folder size limit of %2MB. + Der Ordner %1 hat die festgelegte Größenbeschränkung von %2 MB überschritten. - - (backup) - (Sicherung) + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Der Ordner %1 wurde erstellt, wurde jedoch zuvor von der Synchronisierung ausgeschlossen. Die darin enthaltenen Daten werden nicht synchronisiert. - - (backup %1) - (Sicherung %1) + Virtual file download failed with code "%1", status "%2" and error message "%3" + Der Download der virtuellen Datei ist mit dem Code "%1", dem Status "%2" und der Fehlermeldung "%3" fehlgeschlagen. - - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - Ein altes Synchronisierungsprotokoll "%1" wurde gefunden, konnte jedoch nicht entfernt werden. Bitte stellen Sie sicher, dass keine Anwendung es verwendet. + Would you like to stop syncing this folder? + Soll die Synchronisierung dieses Ordners gestoppt werden? + + + OCC::FolderCreationDialog - - Undefined state. - Undefinierter Zustand. + %1 Create new folder + - - Waiting to start syncing. - Wartet auf Beginn der Synchronisierung. + Could not create a folder! Check your write permissions. + Ordner konnte nicht erstellt werden! Prüfen Sie die Schreibberechtigungen. - - - Preparing for sync. - Synchronisierung wird vorbereitet. + + Create new folder + Neuen Ordner erstellen - - Syncing %1 of %2 (A few seconds left) - Synchronisiere %1 von %2 (ein paar Sekunden übrig) + Enter folder name + Ordnernamen eingeben - - Syncing %1 of %2 (%3 left) - Synchronisiere %1 von %2 (%3 übrig) + Error + Fehler - - Syncing %1 of %2 - Synchronisiere %1 von %2 + Folder already exists + Ordner existiert bereits + + + OCC::FolderMan - - Syncing %1 (A few seconds left) - Synchronisiere %1 (ein paar Sekunden übrig) + %1 (Sync is paused) + %1 (Synchronisierung ist pausiert) - - - Syncing %1 (%2 left) - Synchronisiere %1 (%2 übrig) + + (backup %1) + - - Syncing %1 - Synchronisiere %1 + (backup) + - - Sync is running. - Synchronisierung läuft. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + Ein altes Synchronisierungsprotokoll "%1" wurde gefunden, konnte jedoch nicht entfernt werden. Bitte stellen Sie sicher, dass keine Anwendung es verwendet. - - Sync finished with unresolved conflicts. - Synchronisierung mit ungelösten Konflikten beendet. + Could not reset folder state + Konnte Ordner-Zustand nicht zurücksetzen - Last sync was successful. Die letzte Synchronisierung war erfolgreich. - - Setup error. - Einrichtungsfehler. - - - - Sync request was cancelled. - Synchronisierungsanfrage wurde abgebrochen. - - - - Please choose a different location. The selected folder isn't valid. - Bitte wählen Sie einen anderen Speicherort. Der ausgewählte Ordner ist ungültig. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Bitte wählen Sie einen anderen Speicherort. %1 wird bereits als Synchronisierungsordner für %2 verwendet. - - Please choose a different location. %1 is already being used as a sync folder. Bitte wählen Sie einen anderen Speicherort. %1 wird bereits als Synchronisationsordner verwendet. - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Bitte wählen Sie einen anderen Speicherort. %1 ist bereits in einem Ordner enthalten, der als Synchronisierungsordner verwendet wird. + + Please choose a different location. The path %1 doesn't exist. Bitte wählen Sie einen anderen Speicherort. Der Pfad %1 existiert nicht. - Please choose a different location. The path %1 isn't a folder. Bitte wählen Sie einen anderen Speicherort. Der Pfad %1 ist kein Ordner. - - + Please choose a different location. The selected folder isn't valid. + Bitte wählen Sie einen anderen Speicherort. Der ausgewählte Ordner ist ungültig. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Bitte wählen Sie einen anderen Speicherort. Sie haben nicht genügend Berechtigungen, um in %1 zu schreiben. - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Bitte wählen Sie einen anderen Speicherort. %1 ist bereits in einem Ordner enthalten, der als Synchronisierungsordner verwendet wird. + Preparing for sync. + Synchronisierung wird vorbereitet. - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Bitte wählen Sie einen anderen Speicherort. %1 wird bereits als Synchronisierungsordner für %2 verwendet. + Setup error. + Einrichtungsfehler. + + + Sync finished with unresolved conflicts. + Synchronisierung mit ungelösten Konflikten beendet. + + + Sync is paused. + Synchronisierung ist pausiert. + + + Sync is running. + Synchronisierung läuft. + + + Sync request was cancelled. + Synchronisierungsanfrage wurde abgebrochen. + + + Syncing %1 + Synchronisiere %1 + + + Syncing %1 (%2 left) + Synchronisiere %1 (%2 übrig) + + + Syncing %1 (A few seconds left) + Synchronisiere %1 (ein paar Sekunden übrig) + + + Syncing %1 of %2 + Synchronisiere %1 von %2 + + + Syncing %1 of %2 (%3 left) + Synchronisiere %1 von %2 (%3 übrig) + + + Syncing %1 of %2 (A few seconds left) + Synchronisiere %1 von %2 (ein paar Sekunden übrig) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2547,207 +2104,161 @@ So beheben Sie dieses Problem: Entfernen Sie %1 von einem der Konten und erstell Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass sich mehrere Synchronisierungsdatenbankdateien in einem Ordner befinden. Suchen Sie in %1 nach veralteten und nicht verwendeten .sync_*.db-Dateien und entfernen Sie diese. - - Sync is paused. - Synchronisierung ist pausiert. - - - - Please open the app settings to grant access to the sync folders. - Bitte die App-Einstellungen öffnen, um Zugriff auf die Synchronisierungsordner zu gewähren. + Undefined state. + Undefinierter Zustand. - - %1 (Sync is paused) - %1 (Synchronisierung ist pausiert) + Waiting to start syncing. + Wartet auf Beginn der Synchronisierung. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Ordner-Synchronisierung hinzufügen - - - - - - Grant access - Zugriff gewähren + Add Folder Sync + - File Datei - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Sie müssen verbunden sein, um einen Ordner hinzuzufügen + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Wählen Sie diese Schaltfläche, um einen zu synchronisierenden Ordner hinzuzufügen. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 von %4) - - Could not decrypt! - Konnte nicht entschlüsseln! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Fehler beim Empfang der Ordnerliste vom Server. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 of %2, Datei %3 von %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - Aufgrund aktueller Sicherheitsverbesserungen hat der Client keinen Zugriff mehr auf den Ordner. Ihre Zustimmung ist einmalig erforderlich, um den Zugriff wiederherzustellen. Bitte das Stammverzeichnis des Synchronisierungsordners auswählen. + %5 left, %1 of %2, file %3 of %4 + %5 übrig, %1 von %2, Datei %3 von %4 - - Virtual file support is enabled. - Unterstützung für virtuelle Dateien ist aktiviert. + , + , - - Signed out - Abgemeldet + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Noch ein paar Sekunden, %1 von %2, Datei %3 von %4 - - Synchronizing virtual files in local folder - Virtuelle Dateien im lokalen Ordner synchronisieren + About to start syncing + Die Synchronisierung beginnt - - Synchronizing files in local folder - Dateien im lokalen Ordner synchronisieren + Checking for changes in local "%1" + Nach Änderungen in lokalem "%1" suchen - Checking for changes in remote "%1" Nach Änderungen in entfernten "%1" suchen - - Checking for changes in local "%1" - Nach Änderungen in lokalem "%1" suchen - - - - Syncing local and remote changes - Synchronisieren von lokalen und Remote-Änderungen + Click this button to add a folder to synchronize. + Wählen Sie diese Schaltfläche, um einen zu synchronisierenden Ordner hinzuzufügen. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + Konnte nicht entschlüsseln! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) %1/s herunterladen - - File %1 of %2 - Datei %1 von %2 - - - - There are unresolved conflicts. Click for details. - Es existieren ungelöste Konflikte. Für Details klicken. - - - - - , - , + Error while loading the list of folders from the server. + Fehler beim Empfang der Ordnerliste vom Server. - Fetching folder list from server … Rufe Ordnerliste vom Server ab … - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Datei %1 von %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - %1/s hochladen + Preparing to sync … + Synchronisierung wird vorbereitet … + + + Signed out + Abgemeldet - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Dateien im lokalen Ordner synchronisieren - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 von %4) + Synchronizing virtual files in local folder + Virtuelle Dateien im lokalen Ordner synchronisieren - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Synchronisieren von lokalen und Remote-Änderungen - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Noch ein paar Sekunden, %1 von %2, Datei %3 von %4 + There are unresolved conflicts. Click for details. + Es existieren ungelöste Konflikte. Für Details klicken. - - %5 left, %1 of %2, file %3 of %4 - %5 übrig, %1 von %2, Datei %3 von %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + %1/s hochladen - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 of %2, Datei %3 von %4 + Virtual file support is enabled. + Unterstützung für virtuelle Dateien ist aktiviert. - Waiting for %n other folder(s) … - Warte auf %n anderen Ordner …Warte auf %n andere Ordner … + + Warte auf %n anderen Ordner … + Warte auf %n andere Ordner … + - - About to start syncing - Die Synchronisierung beginnt + You need to be connected to add a folder + Sie müssen verbunden sein, um einen Ordner hinzuzufügen - - Preparing to sync … - Synchronisierung wird vorbereitet … + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. Der Beobachter hat keine Testbenachrichtigung erhalten. @@ -2755,7 +2266,6 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Dieses Problem tritt zumeist auf, wenn die Inotify-Zähler voll sind. Details finden Sie im FAQ. @@ -2763,12 +2273,10 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizard - Add Folder Sync Connection Ordner-Synchronisierung hinzufügen - Add Sync Connection Synchronisierung hinzufügen @@ -2776,362 +2284,312 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Hier klicken, um einen lokalen Ordner zum Synchronisieren auszuwählen. - Enter the path to the local folder. Pfad zum lokalen Ordner eingeben - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Quellordner auswählen - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Entfernten Ordner erstellen + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: + Authentication failed accessing %1 + Beim Zugriff auf %1 ist die Authentifizierung fehlgeschlagen - - Folder was successfully created on %1. - Ordner auf %1 erstellt. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Beim Zugriff auf %1 ist die Authentifizierung fehlgeschlagen + Choose this to sync the entire account + Wählen Sie dies, um das gesamte Konto zu synchronisieren + + + Create Remote Folder + Entfernten Ordner erstellen + + + Create folder + Ordner erstellen + + + Enter the name of the new folder to be created below "%1": + Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: - Failed to create the folder on %1. Please check manually. Der Ordner konnte nicht auf %1 erstellt werden. Bitte prüfen Sie dies manuell. - Failed to list a folder. Error: %1 Ordner konnte nicht gelistet werden. Fehler: %1 - - Choose this to sync the entire account - Wählen Sie dies, um das gesamte Konto zu synchronisieren + Folder was successfully created on %1. + Ordner auf %1 erstellt. - - Please choose a different location. %1 is already being synced to %2. Bitte wählen Sie einen anderen Speicherort. %1 wird bereits mit %2 synchronisiert. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Aktualisieren + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. Sie synchronisieren bereits den Unterordner %1 bei %2. - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 - - - - (experimental) (experimentell) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. + Add Folder Sync + - - Virtual files are not supported at the selected location - Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt + Step 3 of 3: Selektive Synchronisation + - - - OCC::GETFileJob - - No E-Tag received from server, check Proxy/Gateway - Kein E-Tag vom Server empfangen, bitte Proxy/Gateway überprüfen + Use virtual files instead of downloading content immediately %1 + Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 - - We received a different E-Tag for resuming. Retrying next time. - Es wurde ein unterschiedliches E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen. + Virtual files are not supported at the selected location + Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt + + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. + + + OCC::GeneralSettings - - We received an unexpected download Content-Length. - Wir haben eine unerwartete Download-Content-Länge erhalten. + &Automatically check for updates + &Automatisch auf Aktualisierungen prüfen - - Server returned wrong content-range - Server hat falschen Bereich für den Inhalt zurückgegeben + &Launch on System Startup + Beim &Systemstart starten - - Connection Timeout - Zeitüberschreitung der Verbindung - - - - OCC::GeneralSettings - - - Show Call Notifications - Anrufbenachrichtigungen anzeigen - - - - For System Tray - Für das Systembenachrichtungsfeld + &Restart && Update + &Neustarten && aktualisieren - - Show Chat Notifications - Chat-Benachrichtigungen anzeigen + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - Beta: enthält Versionen mit neuen Funktionen, die möglicherweise nicht gründlich getestet wurden +- Täglich: enthält täglich erstellte Versionen, die nur zu Test- und Entwicklungszwecken erstellt werden + +Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. - - Show Server &Notifications - Server&benachrichtigungen anzeigen + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - Enterprise: enthält stabile Versionen für Kunden. + +Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. - Advanced Erweitert - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB - - - Ask for confirmation before synchronizing external storages Bestätigung erfragen, bevor externe Speicher synchronisiert werden - - &Launch on System Startup - Beim &Systemstart starten - - - - General Settings - Allgemeine Einstellungen - - - - General settings - Allgemeine Einstellungen + Ask for confirmation before synchronizing new folders larger than + Bestätigung erfragen, bevor neue Ordner synchronisiert werden, die größer sind als - - Use &Monochrome Icons - &Monochrome Symbole verwenden + Automatically disable synchronisation of folders that overcome limit + Automatisch die Synchronisierung von Ordnern beenden, die das Limit überschreiten - - Show &Quota Warning Notifications - Benachrichtigung für &Kontingentwarnung anzeigen + Cancel + Abbrechen - - Ask for confirmation before synchronizing new folders larger than - Bestätigung erfragen, bevor neue Ordner synchronisiert werden, die größer sind als + Change update channel + Update-Kanal ändern - - Notify when synchronised folders grow larger than specified limit - Benachrichtigen, wenn synchronisierte Ordner größer werden als das angegebene Limit + Changing update channel? + Update-Kanal ändern? - - Automatically disable synchronisation of folders that overcome limit - Automatisch die Synchronisierung von Ordnern beenden, die das Limit überschreiten + Check Now + Jetzt prüfen - - Move removed files to trash - Entfernte Dateien in den Papierkorb verschieben + Create Debug Archive + Debug-Archiv erstellen - - Show sync folders in &Explorer's navigation pane - Synchronisierungsordner im Navigationsbereich des &Explorers anzeigen + Data Protection + - - Server poll interval - Serverabrufintervall + Debug Archive Created + Debug-Archiv erstellt - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - Sekunden (Wenn <a href="https://github.com/nextcloud/notify_push">Client Push</a> nicht verfügbar ist) + Desktop client x.x.x + Desktop-Client x.x.x - Edit &Ignored Files I&gnorierte Dateien bearbeiten - - - Create Debug Archive - Debug-Archiv erstellen + For System Tray + Für das Systembenachrichtungsfeld - - Info - Info + General Settings + Allgemeine Einstellungen - - Desktop client x.x.x - Desktop-Client x.x.x + Legal Notice + Impressum - - Update channel - Update-Kanal + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - &Automatisch auf Aktualisierungen prüfen + More Information + + + + Move removed files to trash + Entfernte Dateien in den Papierkorb verschieben - - Check Now - Jetzt prüfen + Necessary data + - - Usage Documentation - Bedienungsanleitung + Notify when synchronised folders grow larger than specified limit + Benachrichtigen, wenn synchronisierte Ordner größer werden als das angegebene Limit - - Legal Notice - Impressum + Open Source Software + - - Restore &Default - &Standard wiederherstellen + Privacy Policy + - - &Restart && Update - &Neustarten && aktualisieren + Redact information deemed sensitive before sharing! Debug archive created at %1 + Informationen, die als vertraulich gelten, vor der Weitergabe redigieren! Debug-Archiv erstellt unter %1 - - Server notifications that require attention. - Server-Benachrichtigungen, die Aufmerksamkeit erfordern. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - Dialog zu Chat-Benachrichtigungen anzeigen + Restore &Default + &Standard wiederherstellen - - Show call notification dialogs. - Dialog zu Anrufbenachrichtigungen anzeigen + Restore to &%1 + Wiederherstellen auf &%1 - - Show notification when quota usage exceeds 80%. - Benachrichtigung anzeigen, wenn die Kontingentauslastung 80% übersteigt. + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - Sie können den Autostart nicht deaktivieren, da der systemweite Autostart aktiviert ist. + Server notifications that require attention. + Server-Benachrichtigungen, die Aufmerksamkeit erfordern. - - Restore to &%1 - Wiederherstellen auf &%1 + Server poll interval + Serverabrufintervall - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - An ein Unternehmenssystem angebunden. Update-Kanal (%1) kann nicht geändert werden. + Show &Quota Warning Notifications + Benachrichtigung für &Kontingentwarnung anzeigen - - stable - Stabil + Show Call Notifications + Anrufbenachrichtigungen anzeigen - - beta - Beta + Show Chat Notifications + Chat-Benachrichtigungen anzeigen - - daily - Täglich + Show Server &Notifications + Server&benachrichtigungen anzeigen - - enterprise - Unternehmensversion + Show call notification dialogs. + Dialog zu Anrufbenachrichtigungen anzeigen - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - Beta: enthält Versionen mit neuen Funktionen, die möglicherweise nicht gründlich getestet wurden -- Täglich: enthält täglich erstellte Versionen, die nur zu Test- und Entwicklungszwecken erstellt werden - -Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. + Show chat notification dialogs. + Dialog zu Chat-Benachrichtigungen anzeigen - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - Enterprise: enthält stabile Versionen für Kunden. - -Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. + Show notification when quota usage exceeds 80%. + Benachrichtigung anzeigen, wenn die Kontingentauslastung 80% übersteigt. - - Changing update channel? - Update-Kanal ändern? + Show sync folders in &Explorer's navigation pane + Synchronisierungsordner im Navigationsbereich des &Explorers anzeigen - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable @@ -3140,70 +2598,80 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf - Stabil: enthält getestete Versionen, die als zuverlässig gelten - - Change update channel - Update-Kanal ändern + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Abbrechen + Update channel + Update-Kanal - - Login Item Requires Approval - Anmeldeelement erfordert Überprüfung + Updates + + + + Usage Documentation + Bedienungsanleitung + + + Use &Monochrome Icons + &Monochrome Symbole verwenden - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - Das Anmeldeelement wurde registriert, benötigt aber Ihre Überprüfung, um aktiviert zu werden. Bitte Systemeinstellungen → Allgemein → Anmeldeelemente öffnen und dort %1 aktivieren. + You cannot disable autostart because system-wide autostart is enabled. + Sie können den Autostart nicht deaktivieren, da der systemweite Autostart aktiviert ist. - Zip Archives Zip-Archive - - Failed to Access File - Auf die Datei konnte nicht zugegriffen werden + beta + Beta - - Could not access the selected location. Please try again or choose a different location. - Auf den ausgewählten Standort konnte nicht zugegriffen werden. Bitte erneut versuchen oder einen anderen Standort auswählen. + daily + Täglich - - Debug Archive Created - Debug-Archiv erstellt + enterprise + Unternehmensversion - - Redact information deemed sensitive before sharing! Debug archive created at %1 - Informationen, die als vertraulich gelten, vor der Weitergabe redigieren! Debug-Archiv erstellt unter %1 + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + Sekunden (Wenn <a href="https://github.com/nextcloud/notify_push">Client Push</a> nicht verfügbar ist) - + + stable + Stabil + + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Passwort für die Freigabe erforderlich + Connection Timeout + Zeitüberschreitung der Verbindung + + + No E-Tag received from server, check Proxy/Gateway + Kein E-Tag vom Server empfangen, bitte Proxy/Gateway überprüfen - - Please enter a password for your link share: - Bitte Passwort für die Linkfreigabe eingeben: + Server returned wrong content-range + Server hat falschen Bereich für den Inhalt zurückgegeben - - Sharing error - Fehler beim Teilen + We received a different E-Tag for resuming. Retrying next time. + Es wurde ein unterschiedliches E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen. + + + We received an unexpected download Content-Length. + Wir haben eine unerwartete Download-Content-Länge erhalten. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3211,54 +2679,57 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf %1 - + + Password for share required + Passwort für die Freigabe erforderlich + + + Please enter a password for your link share: + Bitte Passwort für die Linkfreigabe eingeben: + + + Sharing error + Fehler beim Teilen + + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + <a href="%1">Hier klicken</a>, um von der Web-Oberfläche ein App-Passwort zu erhalten. + + + Enter Password + Passwort eingeben + + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Bitte %1 Passwort:<br><br>Benutzername: %2<br>Konto: %3<br>eingeben - Reading from keychain failed with error: "%1" Lesen vom Schlüsselbund fehlgeschlagen mit Fehler: "%1" + + + OCC::IgnoreListEditor - - Enter Password - Passwort eingeben + Files Ignored by Patterns + Nach Muster ignorierte Dateien - - <a href="%1">Click here</a> to request an app password from the web interface. - <a href="%1">Hier klicken</a>, um von der Web-Oberfläche ein App-Passwort zu erhalten. + Global Ignore Settings + Globale Ignorier-Einstellungen - - - OCC::IgnoreListEditor - Ignored Files Editor Editor für ignorierte Dateien - - Global Ignore Settings - Globale Ignorier-Einstellungen - - - Sync hidden files Synchronisiere versteckte Dateien - - Files Ignored by Patterns - Nach Muster ignorierte Dateien - - - This entry is provided by the system at "%1" and cannot be modified in this view. Dieser Eintrag wird vom System auf "%1" bereitgestellt und kann in dieser Ansicht nicht geändert werden. @@ -3266,32 +2737,26 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf OCC::IgnoreListTableWidget - - Pattern - Muster + Add + Hinzufügen - + Add a new ignore pattern: + Neues Ignoriermuster hinzufügen + + Allow Deletion Löschen erlauben - - Add - Hinzufügen - - - - Remove - Entfernen + Cannot write changes to "%1". + Konnte Änderungen nicht in "%1" schreiben. - - Remove all - Alle entfernen + Could not open file + Datei konnte nicht geöffnet werden - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3300,158 +2765,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfernen eines Ordners verhindern würden. Dies ist für Metadaten nützlich. - - Could not open file - Datei konnte nicht geöffnet werden + Ignore Pattern + - - Cannot write changes to "%1". - Konnte Änderungen nicht in "%1" schreiben. + Pattern + Muster - - Add Ignore Pattern - Ignoriermuster hinzufügen + Remove + Entfernen - - Add a new ignore pattern: - Neues Ignoriermuster hinzufügen + Remove all + Alle entfernen - + OCC::InvalidFilenameDialog - - Invalid filename - Ungültiger Dateiname + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Die Datei kann nicht umbenannt werden, da eine Datei mit demselben Namen bereits auf dem Server existiert. Bitte wählen Sie einen anderen Namen. - - The file could not be synced because it contains characters which are not allowed on this system. - Die Datei konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. + Checking rename permissions … + Prüfe Umbenennungsrechte … - - Error - Fehler + Could not rename file. Please make sure you are connected to the server. + Datei konnte nicht umbenannt werden. Bitte stellen Sie sicher, dass Sie mit dem Server verbunden sind. - - Please enter a new name for the file: - Bitte geben Sie einen neuen Namen für die Datei ein: + Could not rename local file. %1 + Lokale Datei konnte nicht umbenannt werden. %1 - - - New filename - Neuer Dateiname + + Error + Fehler - - Rename file - Datei umbenennen + Failed to fetch permissions with error %1 + Rechte konnten nicht abgerufen werden. Fehler: %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. + Filename contains illegal characters: %1 + Dateiname enthält unzulässige Zeichen: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - Die folgenden Zeichen sind auf dem System nicht zulässig: \ / : ? * " < > | führende/nachgestellte Leerzeichen + Filename contains leading and trailing spaces. + Dateiname enthält Leerzeichen am Anfang und am Ende. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf dem Server unzulässig sind. + Filename contains leading spaces. + Dateiname enthält Leerzeichen am Anfang. - - The following characters are not allowed: %1 - Die folgenden Zeichen sind nicht erlaubt: %1 + Filename contains trailing spaces. + Dateiname enthält Leerzeichen am Ende. - - The following basenames are not allowed: %1 - Die folgenden Basisnamen sind nicht erlaubt: %1 + Invalid filename + Ungültiger Dateiname - - The following filenames are not allowed: %1 - Die folgenden Dateinamen sind nicht erlaubt: %1 + New filename + Neuer Dateiname - - The following file extensions are not allowed: %1 - Die folgenden Dateierweiterungen sind nicht erlaubt: %1 + Please enter a new name for the file: + Bitte geben Sie einen neuen Namen für die Datei ein: - - Checking rename permissions … - Prüfe Umbenennungsrechte … + Rename file + Datei umbenennen - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich an den Autor der Datei, um sie umzubenennen. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf dem Server unzulässig sind. - - Failed to fetch permissions with error %1 - Rechte konnten nicht abgerufen werden. Fehler: %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. - - Filename contains leading and trailing spaces. - Dateiname enthält Leerzeichen am Anfang und am Ende. + The file could not be synced because it contains characters which are not allowed on this system. + Die Datei konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. - - Filename contains leading spaces. - Dateiname enthält Leerzeichen am Anfang. + The following basenames are not allowed: %1 + Die folgenden Basisnamen sind nicht erlaubt: %1 - - Filename contains trailing spaces. - Dateiname enthält Leerzeichen am Ende. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + Die folgenden Zeichen sind auf dem System nicht zulässig: \ / : ? * " < > | führende/nachgestellte Leerzeichen - - Use invalid name - Ungültigen Namen verwenden + The following characters are not allowed: %1 + Die folgenden Zeichen sind nicht erlaubt: %1 - - Filename contains illegal characters: %1 - Dateiname enthält unzulässige Zeichen: %1 + The following file extensions are not allowed: %1 + Die folgenden Dateierweiterungen sind nicht erlaubt: %1 - - Could not rename file. Please make sure you are connected to the server. - Datei konnte nicht umbenannt werden. Bitte stellen Sie sicher, dass Sie mit dem Server verbunden sind. + The following filenames are not allowed: %1 + Die folgenden Dateinamen sind nicht erlaubt: %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Die Datei kann nicht umbenannt werden, da eine Datei mit demselben Namen bereits auf dem Server existiert. Bitte wählen Sie einen anderen Namen. + Use invalid name + Ungültigen Namen verwenden - - Could not rename local file. %1 - Lokale Datei konnte nicht umbenannt werden. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich an den Autor der Datei, um sie umzubenennen. - + OCC::LegacyAccountSelectionDialog - Legacy import Legacy-Import - Select the accounts to import from the legacy configuration: Bitte die Konten auswählen, die aus der alten Konfiguration importiert werden sollen: @@ -3459,36 +2894,37 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer OCC::LegalNotice - - - Legal notice - Impressum - - - - Close - Schliessen - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Lizensiert unter der GNU General Public License (GPL) Version 2.0 oder jeder neueren Version.</p> - + + Close + Schliessen + + + Legal notice + Impressum + + OCC::LogBrowser - + Enable logging to temporary folder + Protokollierung in temporären Ordner aktivieren + + Log Output Protokoll-Ausgabe - + Open folder + Ordner öffnen + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3497,415 +2933,393 @@ Da die Protokolldateien sehr groß werden können, erstellt der Client für jede Wenn aktiviert, werden die Protokolle nach %1 geschrieben. - - Enable logging to temporary folder - Protokollierung in temporären Ordner aktivieren - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Diese Einstellung bleibt über Client-Neustarts hinweg bestehen. Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollierung diese Einstellung außer Kraft setzt. - - - Open folder - Ordner öffnen - - + OCC::Logger - - - Error - Fehler - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Datei "%1"<br/>kann nicht zum Schreiben geöffnet werden.<br/><br/>Die Protokolldatei kann <b>nicht</b> gespeichert werden!</nobr> - + + Error + Fehler + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Lokale Bearbeitung konnte nicht gestartet werden. - - - An error occurred during setup. Es ist ein Fehler während der Einrichtung aufgetreten. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. Eine Datei für die lokale Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist und die Datei lokal synchronisiert wird. - Could not get file ID. Datei-ID konnte nicht abgerufen werden. - Could not get file identifier. Dateikennung konnte nicht abgerufen werden. - + Could not start editing locally. + Lokale Bearbeitung konnte nicht gestartet werden. + + The file identifier is empty. Dateikennung ist leer - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Eine neue Version ist verfügbar + Download Bandwidth + Download-Bandbreite - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Eine neue Version des %1 - Clients ist verfügbar.</p><p><b>%2</b> steht zum Herunterladen bereit. Die installierte Version ist %3.</p> + HTTP(S) proxy + HTTP(S)-Proxy - - Update Failed - Aktualisierung fehlgeschlagen + Host + Host - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Eine neue Version des %1 - Clients ist verfügbar, aber die Aktualisierung ist fehlgeschlagen.</p><p><b>%2</b> wurde heruntergeladen. Die installierte Version ist %3. Wenn Sie Neustart und Aktualisieren bestätigen, wird Ihr Computer möglicherweise neu gestartet, um die Installation abzuschließen.</p> + Hostname of proxy server + Hostname des Proxy-Servers - - Ask again later - Versuchen Sie es später erneut + KBytes/s + KBytes/s - - Restart and update - Neu starten und aktualisieren + Limit automatically + Automatisch begrenzen - - Update manually - Manuell aktualisieren + Limit to + Begrenzen auf - - Skip this time - Dieses Mal überspringen + Limit to 3/4 of estimated bandwidth + Auf 3/4 der geschätzten Bandbreite begrenzen - - Get update - Aktualisierung durchführen + Manually specify proxy + Proxy manuell festlegen - - - OCC::NetworkSettings - - Proxy Settings - Proxy-Einstellungen + No limit + Keine Begrenzung - - Use system proxy - System-Proxy verwenden + No proxy + Kein Proxy - - Host - Host + Note: proxy settings have no effects for accounts on localhost + Hinweis: Proxy-Einstellungen haben keine Auswirkungen für Konten auf localhost - - Proxy server requires authentication - Proxy-Server erfordert eine Authentifizierung + Password for proxy server + Passwort für den Proxy-Server - - Download Bandwidth - Download-Bandbreite - - - - - Limit to - Begrenzen auf + Proxy Settings + Proxy-Einstellungen - - - Limit to 3/4 of estimated bandwidth - Auf 3/4 der geschätzten Bandbreite begrenzen + Proxy server requires authentication + Proxy-Server erfordert eine Authentifizierung - - - Limit automatically - Automatisch begrenzen + SOCKS5 proxy + SOCKS5-Proxy - - - - KBytes/s - KBytes/s + + Upload Bandwidth + Upload-Bandbreite - - Note: proxy settings have no effects for accounts on localhost - Hinweis: Proxy-Einstellungen haben keine Auswirkungen für Konten auf localhost + Use system proxy + System-Proxy verwenden - - Manually specify proxy - Proxy manuell festlegen + Username for proxy server + Benutzername für den Proxy-Server + + + OCC::NSISUpdater - - No proxy - Kein Proxy + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Eine neue Version des %1 - Clients ist verfügbar, aber die Aktualisierung ist fehlgeschlagen.</p><p><b>%2</b> wurde heruntergeladen. Die installierte Version ist %3. Wenn Sie Neustart und Aktualisieren bestätigen, wird Ihr Computer möglicherweise neu gestartet, um die Installation abzuschließen.</p> - - - No limit - Keine Begrenzung + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Eine neue Version des %1 - Clients ist verfügbar.</p><p><b>%2</b> steht zum Herunterladen bereit. Die installierte Version ist %3.</p> - - Upload Bandwidth - Upload-Bandbreite + Ask again later + Versuchen Sie es später erneut - - Hostname of proxy server - Hostname des Proxy-Servers + Get update + Aktualisierung durchführen + + + New Version Available + Eine neue Version ist verfügbar - - Username for proxy server - Benutzername für den Proxy-Server + Restart and update + Neu starten und aktualisieren - - Password for proxy server - Passwort für den Proxy-Server + Skip this time + Dieses Mal überspringen - - HTTP(S) proxy - HTTP(S)-Proxy + Update Failed + Aktualisierung fehlgeschlagen - - SOCKS5 proxy - SOCKS5-Proxy + Update manually + Manuell aktualisieren - + OCC::OCUpdater - - Could not check for new updates. - Auf neue Aktualisierungen kann nicht geprüft werden. + %1 available. Restart application to start the update. + %1-Version verfügbar. Anwendung zum Start der Aktualisierung neustarten. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Eine neue Aktualisierung für %1 wird installiert. Während des Aktualisierungsvorgangs werden Sie eventuell aufgefordert, zusätzliche Berechtigungen zu gewähren. Ihr Computer wird möglicherweise neu gestartet, um die Installation abzuschließen. - Checking update server … Aktualisierungsserver wird überprüft … - - New %1 update ready - Neue %1 Aktualisierung verfügbar + Could not check for new updates. + Auf neue Aktualisierungen kann nicht geprüft werden. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Eine neue Aktualisierung für %1 wird installiert. Während des Aktualisierungsvorgangs werden Sie eventuell aufgefordert, zusätzliche Berechtigungen zu gewähren. Ihr Computer wird möglicherweise neu gestartet, um die Installation abzuschließen. + Could not download update. Please open %1 to download the update manually. + Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie %1, um die Aktualisierung manuell herunterzuladen. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie <a href='%1'>%1</a>, um die Aktualisierung manuell herunterzuladen. - Downloading %1 … Lade %1 herunter … - - %1 available. Restart application to start the update. - %1-Version verfügbar. Anwendung zum Start der Aktualisierung neustarten. + New %1 is available. Please open %2 to download the update. + Neue Version von %1 vorhanden. Bitte öffnen Sie %2, um die Aktualisierung herunterzuladen. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie <a href='%1'>%1</a>, um die Aktualisierung manuell herunterzuladen. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + Neue Version von %1 vorhanden. Bitte öffnen Sie <a href='%2'>%2</a>, um die Aktualisierung herunterzuladen. - - Could not download update. Please open %1 to download the update manually. - Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie %1, um die Aktualisierung manuell herunterzuladen. + New %1 update ready + Neue %1 Aktualisierung verfügbar - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - Neue Version von %1 vorhanden. Bitte öffnen Sie <a href='%2'>%2</a>, um die Aktualisierung herunterzuladen. + No updates available. Your installation is the latest version. + Keine Aktualisierungen verfügbar. Ihre Installation ist die neueste Version. - - New %1 is available. Please open %2 to download the update. - Neue Version von %1 vorhanden. Bitte öffnen Sie %2, um die Aktualisierung herunterzuladen. + Update Check + Aktualitätsprüfung - - + Update status is unknown: Did not check for new updates. Aktualisierungsstatus unbekannt: Auf neue Aktualisierungen wurde nicht geprüft. - You are using the %1 update channel. Your installation is the latest version. Sie verwenden den Update-Kanal %1. Ihre Installation ist die neueste Version. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - Keine Aktualisierungen verfügbar. Ihre Installation ist die neueste Version. + %1 folder "%2" is synced to local folder "%3" + %1 Ordner "%2" wird mit dem lokalen Ordner "%3" synchronisiert - - Update Check - Aktualitätsprüfung + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 freier Platz - - - OCC::OwncloudAdvancedSetupPage - - Connect - Verbinden + (%1) + (%1) - - (experimental) (experimentell) - - - Use &virtual files instead of downloading content immediately %1 - &Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 + Connect + Verbinden - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. + In Finder's "Locations" sidebar section + In der Finder-Seitenleiste unter "Orte" - - - %1 folder "%2" is synced to local folder "%3" - %1 Ordner "%2" wird mit dem lokalen Ordner "%3" synchronisiert + + Local Sync Folder + Lokaler Ordner für die Synchronisierung - Sync the folder "%1" Ordner "%1" synchronisieren - - Warning: The local folder is not empty. Pick a resolution! - Achtung: Der lokale Ordner ist nicht leer. Bitte wählen Sie eine entsprechende Lösung! + There isn't enough free space in the local folder! + Nicht genug freier Platz im lokalen Ordner vorhanden! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 freier Platz + Use &virtual files instead of downloading content immediately %1 + &Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 - Virtual files are not supported at the selected location Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt - - Local Sync Folder - Lokaler Ordner für die Synchronisierung + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Achtung: Der lokale Ordner ist nicht leer. Bitte wählen Sie eine entsprechende Lösung! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - Nicht genug freier Platz im lokalen Ordner vorhanden! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Sichere Verbindung zur Serveradresse <em>%1</em> fehlgeschlagen. Wie wollen Sie fortfahren?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Verbindung mit der angegebenen sicheren Serveradresse fehlgeschlagen. Wie möchten Sie fortfahren?</p></body></html> - - In Finder's "Locations" sidebar section - In der Finder-Seitenleiste unter "Orte" + Configure client-side TLS certificate + Clientseitiges TLS-Zertifikat konfigurieren. - - - OCC::OwncloudConnectionMethodDialog - Connection failed Verbindung fehlgeschlagen - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Verbindung mit der angegebenen sicheren Serveradresse fehlgeschlagen. Wie möchten Sie fortfahren?</p></body></html> + Retry unencrypted over HTTP (insecure) + Unverschlüsselt über HTTP versuchen (unsicher) - Select a different URL Andere URL wählen + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Unverschlüsselt über HTTP versuchen (unsicher) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Clientseitiges TLS-Zertifikat konfigurieren. + Account %1: %2 + Konto %1: %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Sichere Verbindung zur Serveradresse <em>%1</em> fehlgeschlagen. Wie wollen Sie fortfahren?</p></body></html> + Account synchronization is disabled + Konto-Synchronisierung ist deaktiviert - + + Checking for changes in local "%1" + Nach Änderungen in lokalem "%1" suchen + + + Checking for changes in remote "%1" + Nach Änderungen in entfernten "%1" suchen + + + Disconnected from %1 + Von %1 getrennt + + + Disconnected from accounts: + Verbindungen zu Konten getrennt: + + + Please sign in + Bitte melden Sie sich an + + + Terms of service + Nutzungsbedingungen + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + Der Server auf Konto %1 verwendet die nicht unterstützte Version %2. Die Verwendung dieses Clients mit nicht unterstützten Serverversionen ist ungetestet und potenziell gefährlich. Die Verwendung erfolgt auf eigene Gefahr. + + + There are no sync folders configured. + Es wurden keine Synchronisierungsordner konfiguriert. + + + Unsupported Server Version + Nicht unterstütze Serverversion + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Für Ihr Konto %1 müssen Sie die Nutzungsbedingungen Ihres Servers akzeptieren. Sie werden weitergeleitet an %2, um zu bestätigen, dass Sie die Nutzungsbedingungen gelesen haben und damit einverstanden sind. + + + macOS VFS for %1: A problem was encountered. + macOS VFS für %1: Es ist ein Problem aufgetreten. + + + macOS VFS for %1: Last sync was successful. + macOS VFS für %1: Letzte Synchronisierung war erfolgreich. + + + macOS VFS for %1: Sync is running. + macOS VFS für %1: Synchronisierung läuft. + + OCC::OwncloudHttpCredsPage - &Email &E-Mail - Connect to %1 Verbinden mit %1 - Enter user credentials Geben Sie Ihre Benutzer-Anmeldeinformationen ein @@ -3913,8 +3327,6 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Es ist nicht möglich, die Änderungszeit für die in Konflikt stehende Datei abzurufen %1 @@ -3922,220 +3334,184 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - Der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. - - - &Next > &Weiter > - + Could not load certificate. Maybe wrong password? + Das Zertifikat konnte nicht geladen werden. Vielleicht ein falsches Passwort? + + Server address does not seem to be valid Serveradresse scheint nicht gültig zu sein - - Could not load certificate. Maybe wrong password? - Das Zertifikat konnte nicht geladen werden. Vielleicht ein falsches Passwort? - - + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + Der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. + + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Dateianbieter-basiertes Konto %1 erstellt!</b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Lokaler Sync-Ordner %1 erstellt!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Erfolgreich mit %1 verbunden: %2 Version %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Die Verbindung zu %1 auf %2 konnte nicht hergestellt werden: <br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">Die Erstellung des entfernten Ordners ist fehlgeschlagen, vermutlich sind die angegebenen Zugangsdaten falsch.</font><br/>Bitte gehen Sie zurück und überprüfen Sie Ihre Zugangsdaten.</p> - - Timeout while trying to connect to %1 at %2. - Zeitüberschreitung beim Verbindungsversuch mit %1 unter %2. + A sync connection from %1 to remote directory %2 was set up. + Eine Synchronisierungsverbindung für Ordner %1 zum entfernten Ordner %2 wurde eingerichtet. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Zugang vom Server nicht erlaubt. <a href="%1">Klicken Sie hier</a> zum Zugriff auf den Dienst mithilfe Ihres Browsers, so dass Sie sicherstellen können, dass Ihr Zugang ordnungsgemäß funktioniert. - - Invalid URL - Ungültige URL + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei und versuchen Sie es erneut oder beenden Sie die Installation. - - - Trying to connect to %1 at %2 … - Verbindungsversuch mit %1 unter %2 … + Connection to %1 could not be established. Please check again. + Die Verbindung zu %1 konnte nicht hergestellt werden. Bitte prüfen Sie die Einstellungen erneut. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - Die Authentifizierungs-Anfrage an den Server wurde weitergeleitet an "%1". Diese Adresse ist ungültig, der Server ist falsch konfiguriert. + Could not create local folder %1 + Der lokale Ordner %1 konnte nicht erstellt werden - - There was an invalid response to an authenticated WebDAV request - Ungültige Antwort auf eine WebDAV-Authentifizierungs-Anfrage + Creating local sync folder %1 … + Lokaler Ordner %1 für die Synchronisierung wird erstellt … - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - Lokaler Sync-Ordner %1 existiert bereits, aktiviere Synchronistation.<br/><br/> + Error: %1 + Fehler: %1 - - Creating local sync folder %1 … - Lokaler Ordner %1 für die Synchronisierung wird erstellt … + Failed to connect to %1 at %2:<br/>%3 + Die Verbindung zu %1 auf %2 konnte nicht hergestellt werden: <br/>%3 - - OK - OK + Folder rename failed + Ordner umbenennen fehlgeschlagen. - - failed. - fehlgeschlagen. + Invalid URL + Ungültige URL - - Could not create local folder %1 - Der lokale Ordner %1 konnte nicht erstellt werden + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Lokaler Sync-Ordner %1 existiert bereits, aktiviere Synchronistation.<br/><br/> - No remote folder specified! Kein entfernter Ordner angegeben! - - Error: %1 - Fehler: %1 - - - - creating folder on Nextcloud: %1 - Erstelle Ordner auf Nextcloud: %1 + OK + OK - Remote folder %1 created successfully. Entfernter Ordner %1 erstellt. - - The remote folder %1 already exists. Connecting it for syncing. - Der Ordner %1 ist auf dem Server bereits vorhanden. Verbinde zur Synchronisierung. - - - - - The folder creation resulted in HTTP error code %1 - Das Erstellen des Ordners erzeugte den HTTP-Fehler-Code %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + Entfernter Ordner %1 konnte mit folgendem Fehler nicht erstellt werden: <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - Die Erstellung des entfernten Ordners ist fehlgeschlagen, weil die angegebenen Zugangsdaten falsch sind. <br/>Bitte gehen Sie zurück und überprüfen Sie die Zugangsdaten.</p> + Successfully connected to %1! + Erfolgreich mit %1 verbunden! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">Die Erstellung des entfernten Ordners ist fehlgeschlagen, vermutlich sind die angegebenen Zugangsdaten falsch.</font><br/>Bitte gehen Sie zurück und überprüfen Sie Ihre Zugangsdaten.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + Die Authentifizierungs-Anfrage an den Server wurde weitergeleitet an "%1". Diese Adresse ist ungültig, der Server ist falsch konfiguriert. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Entfernter Ordner %1 konnte mit folgendem Fehler nicht erstellt werden: <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + Das Erstellen des Ordners erzeugte den HTTP-Fehler-Code %1 - - A sync connection from %1 to remote directory %2 was set up. - Eine Synchronisierungsverbindung für Ordner %1 zum entfernten Ordner %2 wurde eingerichtet. + The remote folder %1 already exists. Connecting it for syncing. + Der Ordner %1 ist auf dem Server bereits vorhanden. Verbinde zur Synchronisierung. - - Successfully connected to %1! - Erfolgreich mit %1 verbunden! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + Die Erstellung des entfernten Ordners ist fehlgeschlagen, weil die angegebenen Zugangsdaten falsch sind. <br/>Bitte gehen Sie zurück und überprüfen Sie die Zugangsdaten.</p> - - Connection to %1 could not be established. Please check again. - Die Verbindung zu %1 konnte nicht hergestellt werden. Bitte prüfen Sie die Einstellungen erneut. + There was an invalid response to an authenticated WebDAV request + Ungültige Antwort auf eine WebDAV-Authentifizierungs-Anfrage - - Folder rename failed - Ordner umbenennen fehlgeschlagen. + Timeout while trying to connect to %1 at %2. + Zeitüberschreitung beim Verbindungsversuch mit %1 unter %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei und versuchen Sie es erneut oder beenden Sie die Installation. + Trying to connect to %1 at %2 … + Verbindungsversuch mit %1 unter %2 … - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b>Dateianbieter-basiertes Konto %1 erstellt!</b></font> + creating folder on Nextcloud: %1 + Erstelle Ordner auf Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Lokaler Sync-Ordner %1 erstellt!</b></font> + failed. + fehlgeschlagen. - + OCC::OwncloudWizard - Add %1 account %1 Konto hinzufügen - - Skip folders configuration - Ordner-Konfiguration überspringen + Back + Next button text in new account wizard + Zurück - Cancel Abbrechen - - Proxy Settings - Proxy Settings button text in new account wizard - Proxyeinstellungen + Enable experimental feature? + Experimentelle Funktion aktivieren? + + + Enable experimental placeholder mode + Experimentellen Platzhaltermodus aktivieren - Next Next button text in new account wizard Weiter - - Back - Next button text in new account wizard - Zurück + Proxy Settings + Proxy Settings button text in new account wizard + Proxyeinstellungen - - Enable experimental feature? - Experimentelle Funktion aktivieren? + Skip folders configuration + Ordner-Konfiguration überspringen - + Stay safe + Bleiben Sie sicher + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4151,26 +3527,14 @@ Wenn Sie in diesen Modus wechseln, wird eine aktuell laufende Synchronisierung a Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu verwenden, melden Sie bitte alle auftretenden Probleme. - - - Enable experimental placeholder mode - Experimentellen Platzhaltermodus aktivieren - - - - Stay safe - Bleiben Sie sicher - - + OCC::PasswordInputDialog - Password for share required Passwort für die Freigabe erforderlich - Please enter a password for your share: Bitte vergeben sie für die Freigabe ein Passwort: @@ -4178,7 +3542,6 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PollJob - Invalid JSON reply from the poll URL Ungültige JSON-Antwort von der Poll-URL @@ -4186,344 +3549,259 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Symbolische Verknüpfungen werden bei der Synchronisierung nicht unterstützt. + Cannot be renamed or uploaded. + Kann nicht umbenannt oder hochgeladen werden. - - File is locked by another application. - Datei ist von einer anderen Anwendung gesperrt. + Cannot modify encrypted item because the selected certificate is not valid. + Das verschlüsselte Element kann nicht geändert werden, da das ausgewählte Zertifikat nicht gültig ist. - - File is listed on the ignore list. - Die Datei ist in der Ignorierliste aufgeführt. + Cannot sync due to invalid modification time + Synchronisierung wegen ungültiger Änderungszeit nicht möglich - - File names ending with a period are not supported on this file system. - Dateinamen, die mit einem Punkt enden, werden von diesem Dateisystem nicht unterstützt. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Problem der Groß- und Kleinschreibung: Serverdatei heruntergeladen und umbenannt, um Konflikte zu vermeiden. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Ordnernamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Konflikt: Serverversion heruntergeladen, lokale Kopie umbenannt und nicht hochgeladen. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - Dateinamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. + Could not upload file, because it is open in "%1". + Datei konnte nicht hochgeladen werden, da sie in "%1" geöffnet ist. - - Folder name contains at least one invalid character - Ordnername enthält mindestens ein ungültiges Zeichen + Error while deleting file record %1 from the database + Fehler beim Löschen des Dateidatensatzes %1 aus der Datenbank - - File name contains at least one invalid character - Der Dateiname enthält mindestens ein ungültiges Zeichen + Error while reading the database + Fehler beim Lesen der Datenbank + + + File has extension reserved for virtual files. + Die Endung der Datei ist für virtuelle Dateien reserviert. - - Folder name is a reserved name on this file system. - Der Ordnername ist ein reservierter Name in diesem Dateisystem. + File is listed on the ignore list. + Die Datei ist in der Ignorierliste aufgeführt. + + + File is not accessible on the server. + server error + Auf die Datei kann auf dem Server nicht zugegriffen werden. + + + File name contains at least one invalid character + Der Dateiname enthält mindestens ein ungültiges Zeichen - File name is a reserved name on this file system. Der Dateiname ist ein reservierter Name auf diesem Dateisystem. - - Filename contains trailing spaces. - Dateiname enthält Leerzeichen am Ende. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + Dateinamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. - - - - - Cannot be renamed or uploaded. - Kann nicht umbenannt oder hochgeladen werden. + File names ending with a period are not supported on this file system. + Dateinamen, die mit einem Punkt enden, werden von diesem Dateisystem nicht unterstützt. - - Filename contains leading spaces. - Dateiname enthält Leerzeichen am Anfang. + File/Folder is ignored because it's hidden. + Datei/Ordner wird ignoriert, weil sie unsichtbar ist. - Filename contains leading and trailing spaces. Dateiname enthält Leerzeichen am Anfang und am Ende. - - Filename is too long. - Der Dateiname ist zu lang. + Filename contains leading spaces. + Dateiname enthält Leerzeichen am Anfang. - - File/Folder is ignored because it's hidden. - Datei/Ordner wird ignoriert, weil sie unsichtbar ist. + Filename contains trailing spaces. + Dateiname enthält Leerzeichen am Ende. - - Stat failed. - Stat fehlgeschlagen. + Filename is too long. + Der Dateiname ist zu lang. - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Konflikt: Serverversion heruntergeladen, lokale Kopie umbenannt und nicht hochgeladen. + Folder is not accessible on the server. + server error + Auf den Ordner kann auf dem Server nicht zugegriffen werden. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Problem der Groß- und Kleinschreibung: Serverdatei heruntergeladen und umbenannt, um Konflikte zu vermeiden. + Folder name contains at least one invalid character + Ordnername enthält mindestens ein ungültiges Zeichen - - The filename cannot be encoded on your file system. - Der Dateiname kann auf Ihrem Dateisystem nicht entschlüsselt werden. + Folder name is a reserved name on this file system. + Der Ordnername ist ein reservierter Name in diesem Dateisystem. - - The filename is blacklisted on the server. - Der Dateiname steht auf dem Server auf einer schwarzen Liste. + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Ordnernamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. - - Reason: the entire filename is forbidden. - Grund: Der gesamte Dateiname ist unzulässig. + Ignored because of the "choose what to sync" blacklist + Ignoriert wegen der "Choose what to sync"-Blacklist - - Reason: the filename has a forbidden base name (filename start). - Grund: Der Dateiname hat einen unzulässigen Basisnamen (Beginn des Dateinamens). + Moved to invalid target, restoring + Auf ungültiges Ziel verschoben, wiederherstellen. - - Reason: the file has a forbidden extension (.%1). - Grund: Die Datei hat eine unzulässige Erweiterung (.%1). + Not allowed because you don't have permission to add files in that folder + Nicht erlaubt, da Sie keine Berechtigung zum Hinzufügen von Dateien in diesen Ordner haben. - - Reason: the filename contains a forbidden character (%1). - Grund: Der Dateiname enthält ein unzulässiges Zeichen (%1). + Not allowed because you don't have permission to add subfolders to that folder + Nicht erlaubt, da Sie nicht die Berechtigung haben, Unterordner zu diesem Ordner hinzuzufügen. - - File has extension reserved for virtual files. - Die Endung der Datei ist für virtuelle Dateien reserviert. - - - - Folder is not accessible on the server. - server error - Auf den Ordner kann auf dem Server nicht zugegriffen werden. - - - - File is not accessible on the server. - server error - Auf die Datei kann auf dem Server nicht zugegriffen werden. - - - - Cannot sync due to invalid modification time - Synchronisierung wegen ungültiger Änderungszeit nicht möglich - - - - Upload of %1 exceeds %2 of space left in personal files. - Hochladen von %1 übersteigt %2 des in den persönlichen Dateien verfügbaren Speicherplatzes. + Not allowed to remove, restoring + Entfernen nicht erlaubt, wiederherstellen. - - Upload of %1 exceeds %2 of space left in folder %3. - Hochladen von %1 übersteigt %2 des in dem Ordner %3 verfügbaren Speicherplatzes. + Not allowed to upload this file because it is read-only on the server, restoring + Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist. Wiederherstellen. - - Could not upload file, because it is open in "%1". - Datei konnte nicht hochgeladen werden, da sie in "%1" geöffnet ist. + Reason: the entire filename is forbidden. + Grund: Der gesamte Dateiname ist unzulässig. - - Error while deleting file record %1 from the database - Fehler beim Löschen des Dateidatensatzes %1 aus der Datenbank + Reason: the file has a forbidden extension (.%1). + Grund: Die Datei hat eine unzulässige Erweiterung (.%1). - - - Moved to invalid target, restoring - Auf ungültiges Ziel verschoben, wiederherstellen. + Reason: the filename contains a forbidden character (%1). + Grund: Der Dateiname enthält ein unzulässiges Zeichen (%1). - - Cannot modify encrypted item because the selected certificate is not valid. - Das verschlüsselte Element kann nicht geändert werden, da das ausgewählte Zertifikat nicht gültig ist. + Reason: the filename has a forbidden base name (filename start). + Grund: Der Dateiname hat einen unzulässigen Basisnamen (Beginn des Dateinamens). - - Ignored because of the "choose what to sync" blacklist - Ignoriert wegen der "Choose what to sync"-Blacklist + Stat failed. + Stat fehlgeschlagen. - - Not allowed because you don't have permission to add subfolders to that folder - Nicht erlaubt, da Sie nicht die Berechtigung haben, Unterordner zu diesem Ordner hinzuzufügen. + Symbolic links are not supported in syncing. + Symbolische Verknüpfungen werden bei der Synchronisierung nicht unterstützt. - - Not allowed because you don't have permission to add files in that folder - Nicht erlaubt, da Sie keine Berechtigung zum Hinzufügen von Dateien in diesen Ordner haben. + The filename cannot be encoded on your file system. + Der Dateiname kann auf Ihrem Dateisystem nicht entschlüsselt werden. - - Not allowed to upload this file because it is read-only on the server, restoring - Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist. Wiederherstellen. + The filename is blacklisted on the server. + Der Dateiname steht auf dem Server auf einer schwarzen Liste. - - Not allowed to remove, restoring - Entfernen nicht erlaubt, wiederherstellen. + Upload of %1 exceeds %2 of space left in folder %3. + Hochladen von %1 übersteigt %2 des in dem Ordner %3 verfügbaren Speicherplatzes. - - Error while reading the database - Fehler beim Lesen der Datenbank + Upload of %1 exceeds %2 of space left in personal files. + Hochladen von %1 übersteigt %2 des in den persönlichen Dateien verfügbaren Speicherplatzes. - + OCC::PropagateDirectory - Could not delete file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank gelöscht werden - Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit - - - - - - - The folder %1 cannot be made read-only: %2 - Der Ordner %1 kann nicht schreibgeschützt werden: %2 - - - - - unknown exception - Unbekannter Ausnahmefehler - - - Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 - File is currently in use Datei ist aktuell in Benutzung - + + The folder %1 cannot be made read-only: %2 + Der Ordner %1 kann nicht schreibgeschützt werden: %2 + + + unknown exception + Unbekannter Ausnahmefehler + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden - + Error updating metadata: %1 + Fehler beim Aktualisieren der Metadaten: %1 + + File %1 cannot be downloaded because encryption information is missing. Die Datei %1 kann nicht heruntergeladen werden, da die Verschlüsselungsinformationen fehlen. - - - Could not delete file record %1 from local DB - Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + File %1 downloaded but it resulted in a local file name clash! + Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! - - The download would reduce free local disk space below the limit - Das Herunterladen würde den lokalen freien Speicherplatz unter die Grenze reduzieren + File %1 has invalid modified time reported by server. Do not save it. + Datei %1 hat eine ungültige Änderungszeit, die vom Server gemeldet wurde. Speichern Sie sie nicht. - - Free space on disk is less than %1 - Der freie Speicher auf der Festplatte ist weniger als %1 + File has changed since discovery + Datei ist seit der Entdeckung geändert worden - - + File was deleted from server Die Datei wurde vom Server gelöscht - - The file could not be downloaded completely. - Die Datei konnte nicht vollständig heruntergeladen werden. - - - - The downloaded file is empty, but the server said it should have been %1. - Die heruntergeladene Datei ist leer, obwohl der Server %1 als Größe übermittelt hat. - - - - - File %1 has invalid modified time reported by server. Do not save it. - Datei %1 hat eine ungültige Änderungszeit, die vom Server gemeldet wurde. Speichern Sie sie nicht. + Free space on disk is less than %1 + Der freie Speicher auf der Festplatte ist weniger als %1 - - File %1 downloaded but it resulted in a local file name clash! - Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! + The download would reduce free local disk space below the limit + Das Herunterladen würde den lokalen freien Speicherplatz unter die Grenze reduzieren - - Error updating metadata: %1 - Fehler beim Aktualisieren der Metadaten: %1 + The downloaded file is empty, but the server said it should have been %1. + Die heruntergeladene Datei ist leer, obwohl der Server %1 als Größe übermittelt hat. - The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - - - File has changed since discovery - Datei ist seit der Entdeckung geändert worden + The file could not be downloaded completely. + Die Datei konnte nicht vollständig heruntergeladen werden. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. Wiederherstellung fehlgeschlagen: %2 - - - ; Restoration Failed: %1 ; Wiederherstellung fehlgeschlagen: %1 - A file or folder was removed from a read only share, but restoring failed: %1 Eine Datei oder ein Ordner wurde von einer Nur-Lese-Freigabe wiederhergestellt, aber die Wiederherstellung ist mit folgendem Fehler fehlgeschlagen: %1 @@ -4531,130 +3809,102 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - Konnte Datei %1 nicht löschen. Fehler: %2 + Could not create folder %1 + Ordner %1 konnte nicht erstellt werden + + + Error updating metadata: %1 + Fehler beim Aktualisieren der Metadaten: %1 - Folder %1 cannot be created because of a local file or folder name clash! Ordner %1 kann aufgrund einer lokalen Datei- oder Ordnernamenskollision nicht erstellt werden! - - Could not create folder %1 - Ordner %1 konnte nicht erstellt werden + The file %1 is currently in use + Die Datei %1 ist aktuell in Benutzung - - - - + The folder %1 cannot be made read-only: %2 Der Ordner %1 kann nicht schreibgeschützt werden: %2 - - unknown exception - Unbekannter Ausnahmefehler - - - - Error updating metadata: %1 - Fehler beim Aktualisieren der Metadaten: %1 + could not delete file %1, error: %2 + Konnte Datei %1 nicht löschen. Fehler: %2 - - The file %1 is currently in use - Die Datei %1 ist aktuell in Benutzung + unknown exception + Unbekannter Ausnahmefehler - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + + Could not remove %1 because of a local file name clash %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht entfernt werden - - - Temporary error when removing local item removed from server. Vorübergehender Fehler beim Entfernen eines vom Server entfernten lokalen Objekts. - - - Could not delete file record %1 from local DB - Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - Ordner %1 kann aufgrund einer lokalen Datei- oder Ordnernamenskollision nicht umbenannt werden! - - - - File %1 downloaded but it resulted in a local file name clash! - Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! + Could not delete file record %1 from local DB + Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - - - + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden - - Error setting pin state Fehler beim Setzen des PIN-Status - Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 - - The file %1 is currently in use - Die Datei %1 ist aktuell in Benutzung - - - Failed to propagate directory rename in hierarchy Die Umbenennung des Verzeichnisses in der Hierarchie konnte nicht weitergegeben werden - Failed to rename file Datei konnte nicht umbenannt werden - - Could not delete file record %1 from local DB - Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + File %1 downloaded but it resulted in a local file name clash! + Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 204, aber gesendet wurde "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + Ordner %1 kann aufgrund einer lokalen Datei- oder Ordnernamenskollision nicht umbenannt werden! + + + The file %1 is currently in use + Die Datei %1 ist aktuell in Benutzung + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 204, aber gesendet wurde "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Falscher HTTP-Code vom Server zurückgegeben. 204 erwartet, aber "%1 %2" erhalten. @@ -4662,203 +3912,152 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". + Error writing metadata to the database: %1 + Fehler beim Schreiben der Metadaten in die Datenbank: %1 - Failed to encrypt a folder %1 Ordner konnte nicht verschlüsselt werden %1 - - Error writing metadata to the database: %1 - Fehler beim Schreiben der Metadaten in die Datenbank: %1 - - - The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + + + Could not get file %1 from local DB + Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden + + Could not rename %1 to %2, error: %3 Konnte %1 nicht nach %2 umbenennen. Fehler: %3 - - + Error setting pin state + Fehler beim Setzen des PIN-Status + + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 - - + Error writing metadata to the database + Fehler beim Schreiben der Metadaten in die Datenbank + + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden - - - - Could not delete file record %1 from local DB - Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Error updating metadata: %1 + Fehler beim Aktualisieren der Metadaten: %1 - - Error setting pin state - Fehler beim Setzen des PIN-Status + Failed to unlock encrypted folder. + Verschlüsselter Ordner konnte nicht entsperrt werden. - - Error writing metadata to the database - Fehler beim Schreiben der Metadaten in die Datenbank + Failed to upload encrypted file. + Verschlüsselte Datei konnte nicht hochgeladen werden. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Die Datei %1 kann nicht hochgeladen werden, da eine andere Datei mit dem selben Namen, nur unterschiedlicher Groß-/Kleinschreibung, existiert - - - File %1 has invalid modification time. Do not upload to the server. Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. - - Local file changed during syncing. It will be resumed. - Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wiederaufgenommen. + File Removed (start upload) %1 + Datei entfernt (starte Hochladen) %1 - - + Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. - - Failed to unlock encrypted folder. - Verschlüsselter Ordner konnte nicht entsperrt werden. + Local file changed during syncing. It will be resumed. + Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wiederaufgenommen. - - Unable to upload an item with invalid characters - Ein Element mit ungültigen Zeichen kann nicht hochgeladen werden - - - - Error updating metadata: %1 - Fehler beim Aktualisieren der Metadaten: %1 - - - The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - - - Upload of %1 exceeds the quota for the folder - Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners - - - - Failed to upload encrypted file. - Verschlüsselte Datei konnte nicht hochgeladen werden. + Unable to upload an item with invalid characters + Ein Element mit ungültigen Zeichen kann nicht hochgeladen werden - - File Removed (start upload) %1 - Datei entfernt (starte Hochladen) %1 + Upload of %1 exceeds the quota for the folder + Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Die Datei ist gesperrt, was eine Synchronisierung verhindert + File is not accessible on the server. + server error + Auf die Datei kann auf dem Server nicht zugegriffen werden. - - - The local file was removed during sync. - Die lokale Datei wurde während der Synchronisierung entfernt. + + Folder is not accessible on the server. + server error + Auf den Ordner kann auf dem Server nicht zugegriffen werden. - Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. - - Poll URL missing - Poll-URL fehlt - - - - Unexpected return code from server (%1) - Unerwarteter Rückgabe-Code Antwort vom Server (%1) - - - Missing File ID from server Fehlende Datei-ID vom Server - - Folder is not accessible on the server. - server error - Auf den Ordner kann auf dem Server nicht zugegriffen werden. + Poll URL missing + Poll-URL fehlt - - File is not accessible on the server. - server error - Auf die Datei kann auf dem Server nicht zugegriffen werden. + The local file was removed during sync. + Die lokale Datei wurde während der Synchronisierung entfernt. - + + Unexpected return code from server (%1) + Unerwarteter Rückgabe-Code Antwort vom Server (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Die Datei ist gesperrt, was eine Synchronisierung verhindert + Local file changed during sync. + Eine lokale Datei wurde während der Synchronisierung geändert. - Poll URL missing Poll-URL fehlt - The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. - - Local file changed during sync. - Eine lokale Datei wurde während der Synchronisierung geändert. - - - The server did not acknowledge the last chunk. (No e-tag was present) Der Server hat den letzten Block nicht bestätigt. (Kein E-Tag vorhanden) @@ -4866,35 +4065,29 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ProxyAuthDialog - + Password: + Passwort: + + Proxy authentication required Proxy-Authentifzierung erforderlich - - Username: - Benutzername: - - - Proxy: Proxy: - The proxy server needs a username and password. Der Proxy-Server benötigt Benutzername und Passwort - - Password: - Passwort: + Username: + Benutzername: - + OCC::SelectiveSyncDialog - Choose What to Sync Zu synchronisierende Elemente auswählen @@ -4902,78 +4095,103 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::SelectiveSyncWidget - - Loading … - Lade … + An error occurred while loading the list of sub folders. + Es ist ein Fehler während des Ladens der Liste der Unterordner aufgetreten. - - + Deselect remote folders you do not wish to synchronize. Entfernte Ordner abwählen, die nicht synchronisiert werden sollen. - - Name - Name + Loading … + Lade … - - Size - Größe + Name + Name - - No subfolders currently on the server. Aktuell befinden sich keine Unterordner auf dem Server. - - An error occurred while loading the list of sub folders. - Es ist ein Fehler während des Ladens der Liste der Unterordner aufgetreten. + Size + Größe - + OCC::ServerNotificationHandler - + Dismiss + Ablehnen + + Reply Antworten + + + OCC::sesSnackBar - - Dismiss - Ablehnen + Error + Fehler - - - OCC::SettingsDialog - - Settings - Einstellungen + Success + + + Warning + Warnung + + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud %1-Einstellungen - + Account + Konto + + General Allgemein - - Account - Konto + New account + - + + Settings + Einstellungen + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Globale Suchergebnisse + + + No results found + Keine Ergebnisse gefunden + + + Search globally + Global suchen + + OCC::ShareManager - Error Fehler @@ -4981,126 +4199,61 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ShareModel - %1 days %1 Tage - - %1 day - %1 Tag - - - 1 day 1 Tag - - Today - Heute - - - - Secure file drop link - Sicherer Link zur Dateiablage + Could not find local folder for %1 + Lokaler Ordner für %1 nicht gefunden - - - Share link - Freigabe-Link + + Internal link + Interner Link - Link share Link teilen - - Internal link - Interner Link - - - Secure file drop Sichere Dateiablage - - Could not find local folder for %1 - Lokaler Ordner für %1 nicht gefunden - - - - OCC::ShareeModel - - - - Search globally - Global suchen - - - - No results found - Keine Ergebnisse gefunden + Secure file drop link + Sicherer Link zur Dateiablage - - Global search results - Globale Suchergebnisse + Share link + Freigabe-Link - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Heute - + OCC::SocketApi - - Context menu share - Kontextmenü Freigabe - - - - I shared something with you - Ich habe etwas mit Ihnen geteilt + Activity + Aktivität - - - Share options - Freigabeoptionen + Context menu share + Kontextmenü Freigabe - - Send private link by email … - Privaten Link als E-Mail verschicken … + Copy internal link + Internen Link kopieren - Copy private link to clipboard Privater Link in die Zwischenablage kopiert - - Failed to encrypt folder at "%1" - Ordner unter "%1" konnte nicht verschlüsselt werden - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - Für das Konto %1 ist keine Ende-zu-Ende-Verschlüsselung konfiguriert. Bitte konfigurieren Sie diese in Ihren Kontoeinstellungen, um die Ordnerverschlüsselung zu aktivieren. - - - - Failed to encrypt folder - Ordner konnte nicht verschlüsselt werden - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5109,990 +4262,787 @@ Server replied with error: %2 Server antwortete mit Fehler: %2 - - Folder encrypted successfully - Ordner verschlüsselt + Delete + Löschen - - The following folder was encrypted successfully: "%1" - Der folgende Ordner wurde verschlüsselt: "%1" + Delete local changes + Lokale Änderungen löschen - - Select new location … - Neuen Ort auswählen … + Encrypt + Verschlüsseln - - - - File actions - Dateiaktionen + + Expires in %1 minutes + remaining time before lock expires + + Läuft in %1 Minute ab + Läuft in %1 Minuten ab + - - - Activity - Aktivität + Failed to encrypt folder + Ordner konnte nicht verschlüsselt werden - - Leave this share - Freigabe verlassen + Failed to encrypt folder at "%1" + Ordner unter "%1" konnte nicht verschlüsselt werden - - Resharing this file is not allowed - Weiterteilen dieser Datei ist nicht erlaubt + Folder encrypted successfully + Ordner verschlüsselt - - Resharing this folder is not allowed - Weiterteilen dieses Ordners ist nicht erlaubt + I shared something with you + Ich habe etwas mit Ihnen geteilt - - Encrypt - Verschlüsseln + Leave this share + Freigabe verlassen - Lock file Datei sperren - - Unlock file - Datei entsperren - - - Locked by %1 Gesperrt von %1 - - - Expires in %1 minutes - remaining time before lock expires - Läuft in %1 Minute abLäuft in %1 Minuten ab - - - Resolve conflict … - Konflikt lösen… - - - Move and rename … Verschieben und umbenennen … - + Move and upload … + Verschieben und hochladen … + + Move, rename and upload … Verschieben, umbenennen und hochladen … - - Delete local changes - Lokale Änderungen löschen + Open in browser + Im Browser öffnen + + + Resharing this file is not allowed + Weiterteilen dieser Datei ist nicht erlaubt - - Move and upload … - Verschieben und hochladen … + Resharing this folder is not allowed + Weiterteilen dieses Ordners ist nicht erlaubt - - Delete - Löschen + Resolve conflict … + Konflikt lösen… - - Copy internal link - Internen Link kopieren + Select new location … + Neuen Ort auswählen … - - - Open in browser - Im Browser öffnen + Send private link by email … + Privaten Link als E-Mail verschicken … - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Zertifikatdetails</h3> + Share options + Freigabeoptionen - - Common Name (CN): - Gemeinsamer Name (CN): + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + Für das Konto %1 ist keine Ende-zu-Ende-Verschlüsselung konfiguriert. Bitte konfigurieren Sie diese in Ihren Kontoeinstellungen, um die Ordnerverschlüsselung zu aktivieren. - - Subject Alternative Names: - Subject Alternative Names: + The following folder was encrypted successfully: "%1" + Der folgende Ordner wurde verschlüsselt: "%1" - - Organization (O): - Organisation (O): + Unlock file + Datei entsperren + + + OCC::SslButton - - Organizational Unit (OU): - Organisationseinheit (OU): + %1 + %1 - - State/Province: - Staat/Provinz: + %1 (self-signed) + %1 (selbst signiert) - - Country: - Land: + <h3>Certificate Details</h3> + <h3>Zertifikatdetails</h3> - - Serial: - Seriennummer: + <h3>Fingerprints</h3> + <h3>Fingerabdrücke</h3> - <h3>Issuer</h3> <h3>Aussteller</h3> - - Issuer: - Aussteller: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Hinweis:</b> Dieses Zertifikat wurde manuell bestätigt</p> - - Issued on: - Ausgestellt am: + Certificate information: + Zertifikatsinformation: + + + Common Name (CN): + Gemeinsamer Name (CN): + + + Country: + Land: - Expires on: Ablaufdatum: - - <h3>Fingerprints</h3> - <h3>Fingerabdrücke</h3> + Issued on: + Ausgestellt am: - - SHA-256: - SHA-256: + Issuer: + Aussteller: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + Keine Unterstützung für SSL session tickets - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Hinweis:</b> Dieses Zertifikat wurde manuell bestätigt</p> + Organization (O): + Organisation (O): - - %1 (self-signed) - %1 (selbst signiert) + Organizational Unit (OU): + Organisationseinheit (OU): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - Diese Verbindung ist verschlüsselt mit %1 Bit %2. - + SHA-256: + SHA-256: + + + Serial: + Seriennummer: - Server version: %1 Serverversion: %1 - - No support for SSL session tickets/identifiers - Keine Unterstützung für SSL session tickets + State/Province: + Staat/Provinz: - - Certificate information: - Zertifikatsinformation: + Subject Alternative Names: + Subject Alternative Names: - The connection is not secure Die Verbindung ist nicht sicher + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Diese Verbindung ist NICHT sicher, da diese nicht verschlüsselt ist. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Diesem Zertifikat trotzdem vertrauen + &lt;not specified&gt; + &lt;nicht angegeben&gt; - - Untrusted Certificate - Nicht vertrauenswürdiges Zertifikat + Additional errors: + Zusätzliche Fehler: - Cannot connect securely to <i>%1</i>: Kann keine sichere Verbindung zu <i>%1</i> herstellen: - - Additional errors: - Zusätzliche Fehler: - - - - with Certificate %1 - mit Zertifikat %1 + Country: %1 + Land: %1 - - - - &lt;not specified&gt; - &lt;nicht angegeben&gt; + Effective Date: %1 + Datum des Inkrafttretens: %1 - - - Organization: %1 - Organisation: %1 + Expiration Date: %1 + Ablaufdatum: %1 - - - Unit: %1 - Einheit: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Fingerabdruck (SHA-256): <tt>%1</tt> - - - Country: %1 - Land: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Fingerabdruck (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Fingerabdruck (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Fingerabdruck (SHA-256): <tt>%1</tt> + Issuer: %1 + Aussteller: %1 + + + Organization: %1 + Organisation: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Fingerabdruck (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Diesem Zertifikat trotzdem vertrauen - - Effective Date: %1 - Datum des Inkrafttretens: %1 + Unit: %1 + Einheit: %1 - - Expiration Date: %1 - Ablaufdatum: %1 + Untrusted Certificate + Nicht vertrauenswürdiges Zertifikat - - Issuer: %1 - Aussteller: %1 + with Certificate %1 + mit Zertifikat %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (übersprungen aufgrund des früheren Fehlers, erneuter Versuch in %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Nur %1 sind verfügbar. Zum Beginnen werden mindestens %2 benötigt. - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Öffnen oder erstellen der Sync-Datenbank nicht möglich. Bitte sicherstellen, dass Schreibrechte für den zu synchronisierenden Ordner existieren. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Der freie Speicherplatz wird knapp: Downloads, die den freien Speicher unter %1 reduzieren, wurden ausgelassen. + Cannot open the sync journal + Synchronisierungsprotokoll kann nicht geöffnet werden - - - There is insufficient space available on the server for some uploads. - Auf dem Server ist für einige Dateien zum Hochladen nicht genug Platz. + + Could not set file record to local DB: %1 + Der Dateidatensatz konnte nicht in die lokale Datenbank eingestellt werden: %1 - - Unresolved conflict. - Ungelöster Konflikt. + Could not update file metadata: %1 + Die Metadaten der Datei konnten nicht aktualisiert werden: %1 - Could not update file: %1 Datei konnte nicht aktualisiert werden: %1 - Could not update virtual file metadata: %1 Metadaten der virtuellen Datei konnten nicht aktualisiert werden: %1 - - Could not update file metadata: %1 - Die Metadaten der Datei konnten nicht aktualisiert werden: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Der freie Speicherplatz wird knapp: Downloads, die den freien Speicher unter %1 reduzieren, wurden ausgelassen. - - Could not set file record to local DB: %1 - Der Dateidatensatz konnte nicht in die lokale Datenbank eingestellt werden: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Nur %1 sind verfügbar. Zum Beginnen werden mindestens %2 benötigt. - - Using virtual files with suffix, but suffix is not set - Virtuelle Dateien mit Endung verwenden, aber Endung ist nicht gesetzt. + There is insufficient space available on the server for some uploads. + Auf dem Server ist für einige Dateien zum Hochladen nicht genug Platz. - - Unable to read the blacklist from the local database - Fehler beim Einlesen der Blacklist aus der lokalen Datenbank + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Öffnen oder erstellen der Sync-Datenbank nicht möglich. Bitte sicherstellen, dass Schreibrechte für den zu synchronisierenden Ordner existieren. - Unable to read from the sync journal. Fehler beim Einlesen des Synchronisierungsprotokolls. - - Cannot open the sync journal - Synchronisierungsprotokoll kann nicht geöffnet werden + Unable to read the blacklist from the local database + Fehler beim Einlesen der Blacklist aus der lokalen Datenbank - - - OCC::SyncStatusSummary - - - - Offline - Offline + Unresolved conflict. + Ungelöster Konflikt. - - You need to accept the terms of service - Die Nutzungsbedingungen müssen bestätigt werden + Using virtual files with suffix, but suffix is not set + Virtuelle Dateien mit Endung verwenden, aber Endung ist nicht gesetzt. + + + OCC::SyncStatusSummary - - Reauthorization required - Neuanmeldung erforderlich + %1 of %2 + %1 von %2 - - Please grant access to your sync folders - Bitte Zugriff auf Ihre Synchronisierungsordner gewähren + %1 of %2 · %3 left + %1 von %2 · %3 verbleiben - - - All synced! Alles synchronisiert! - - Some files couldn't be synced! - Einige Dateien konnten nicht synchronisiert werden! + Checking folder changes + Prüfe Ordneränderungen + + + Offline + Offline - See below for errors Warnungen siehe unten - - Checking folder changes - Prüfe Ordneränderungen + See below for warnings + Warnungen siehe unten - - Syncing changes - Synchronisiere Änderungen + Some files could not be synced! + Einige Dateien konnten nicht synchronisiert werden! + + + Some files couldn't be synced! + Einige Dateien konnten nicht synchronisiert werden! - Sync paused Synchronisierung pausiert - - Some files could not be synced! - Einige Dateien konnten nicht synchronisiert werden! - - - - See below for warnings - Warnungen siehe unten - - - Syncing Synchronisiere - - %1 of %2 · %3 left - %1 von %2 · %3 verbleiben - - - - %1 of %2 - %1 von %2 + Syncing changes + Synchronisiere Änderungen - Syncing file %1 of %2 Synchronisiere Datei %1 von %2 - - - No synchronisation configured - Keine Synchronisierung konfiguriert + + You need to accept the terms of service + Die Nutzungsbedingungen müssen bestätigt werden - + OCC::Systray - + Add account + Konto hinzufügen + + Download Herunterladen - - Add account - Konto hinzufügen + Exit %1 + %1 beenden + + + Help + Hilfe - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. %1 Desktop öffnen - - Pause sync Synchronisierung pausieren - - - Resume sync - Synchronisierung fortsetzen - - - - Settings - Einstellungen - - - - Help - Hilfe - - - - Exit %1 - %1 beenden - - - Pause sync for all Synchronisierung für alle pausieren - + Resume sync + Synchronisierung fortsetzen + + Resume sync for all Synchronisierung für alle fortsetzen - + + Settings + Einstellungen + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - Es wird auf die Bestätigung der Nutzungsbedingungen gewartet - - - - Polling - Abfrage + Copy Link + Link kopieren - - + Link copied to clipboard. Link in die Zwischenablage kopiert. - Open Browser Browser öffnen - - Copy Link - Link kopieren + Polling + Abfrage - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - %1 Desktop-Client-Version %2 (%3 läuft auf %4) + Waiting for terms to be accepted + Es wird auf die Bestätigung der Nutzungsbedingungen gewartet + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Desktop-Client Version %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Plugin für virtuelle Dateien: %1</small></p> - <p>This release was supplied by %1.</p> <p>Diese Version wird von %1 bereitgestellt.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Anbieter konnten nicht abgerufen werden. - Failed to fetch search providers for '%1'. Error: %2 Suchanbieter für '%1' konnte nicht abgerufen werden. Fehler: %2 - - Search has failed for '%2'. - Suche nach '%2' fehlgeschlagen. - - - Search has failed for '%1'. Error: %2 Suche nach '%1' fehlgeschlagen. Fehler: %2 - + + Search has failed for '%2'. + Suche nach '%2' fehlgeschlagen. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Ordner-Metadaten konnten nicht aktualisiert werden + Failed to finalize item. + Element konnte nicht fertiggestellt werden - - + Failed to unlock encrypted folder. Verschlüsselter Ordner konnte nicht entsperrt werden. - - Failed to finalize item. - Element konnte nicht fertiggestellt werden + Failed to update folder metadata. + Ordner-Metadaten konnten nicht aktualisiert werden - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Fehler beim Aktualisieren der Metadaten für einen Ordner %1 + Could not add or remove user %1 to access folder %2 + Benutzer %1 konnte für den Zugriff auf Ordner %2 nicht hinzugefügt oder entfernt werden - Could not fetch public key for user %1 Öffentlicher Schlüssel für den Benutzer %1 konnte nicht abgerufen werden - Could not find root encrypted folder for folder %1 Verschlüsselter Stammordner für den Ordner %1 nicht gefunden - - Could not add or remove user %1 to access folder %2 - Benutzer %1 konnte für den Zugriff auf Ordner %2 nicht hinzugefügt oder entfernt werden + Error updating metadata for a folder %1 + Fehler beim Aktualisieren der Metadaten für einen Ordner %1 - Failed to unlock a folder. Ordner konnte nicht entsperrt werden OCC::User - - - End-to-end certificate needs to be migrated to a new one - Das Ende-zu-Ende-Zertifikat muss auf ein neues migriert werden - - - - Trigger the migration - Starten der Migration - - %n notification(s) - %n Benachrichtigung%n Benachrichtigungen - - - - - “%1” was not synchronized - “%1” wurde nicht synchronisiert - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - Nicht genügend Speicher auf dem Server. Die Datei erfordert %1, es sind aber nur %2 verfügbar. - - - - Insufficient storage on the server. The file requires %1. - Nicht genügend Speicher auf dem Server. Die Datei erfordert %1. - - - - Insufficient storage on the server. - Nicht genügend Speicher auf dem Server. + + %n Benachrichtigung + %n Benachrichtigungen + - - There is insufficient space available on the server for some uploads. - Für einige Uploads ist auf dem Server nicht genügend Speicherplatz verfügbar. - - - - Retry all uploads - Alle Uploads neu starten - - - - - Resolve conflict - Konflikt lösen - - - - Rename file - Datei umbenennen - - - - Public Share Link - Öffentlicher Freigabe-Link + End-to-end certificate needs to be migrated to a new one + Das Ende-zu-Ende-Zertifikat muss auf ein neues migriert werden - Open %1 Assistant in browser The placeholder will be the application name. Please keep it %1 Assistant im Browser öffnen - Open %1 Talk in browser The placeholder will be the application name. Please keep it %1 Talk im Browser öffnen - - Open %1 Assistant - The placeholder will be the application name. Please keep it - Assistent %1 öffnen - - - - Assistant is not available for this account. - Assistent ist für dieses Konto nicht verfügbar - - - - Assistant is already processing a request. - Assistent verarbeitet bereits eine Anfrage. - - - - Sending your request… - Anfrage wird gesendet … - - - - Sending your request … - Anfrage wird gesendet … + Public Share Link + Öffentlicher Freigabe-Link - - No response yet. Please try again later. - Bislang keine Antwort. Bitte später erneut versuchen. + Quota Warning - %1 percent or more storage in use + Kontingentwarnung – %1 Prozent oder mehr Speicher verwendet - - - No supported assistant task types were returned. - Es wurden keine vom Assistenten unterstützten Anfragetypen zurückgeliefert. + + Quota is updated; %1 percent of the total space is used. + Das Kontingent wird aktualisiert; %1 Prozent des gesamten Speicherplatzes wird genutzt. - - Waiting for the assistant response… - Warte auf die Assistentenantwort … + Rename file + Datei umbenennen - - Assistant request failed (%1). - Assistentenanfrage fehlgeschlagen (%1). + Resolve conflict + Konflikt lösen - - Quota is updated; %1 percent of the total space is used. - Das Kontingent wird aktualisiert; %1 Prozent des gesamten Speicherplatzes wird genutzt. + Retry all uploads + Alle Uploads neu starten - - Quota Warning - %1 percent or more storage in use - Kontingentwarnung – %1 Prozent oder mehr Speicher verwendet + Trigger the migration + Starten der Migration - + OCC::UserModel - - Confirm Account Removal - Kontenentfernung bestätigen - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Soll die Verbindung zum Konto <i>%1</i> entfernt werden?</p><p><b>Hinweis:</b> Es werden <b>keine</b> Dateien gelöscht.</p> - - Remove connection - Verbindung entfernen - - - Cancel Abbrechen - + Confirm Account Removal + Kontenentfernung bestätigen + + Leave share Freigabe verlassen - Remove account Konto entfernen - + + Remove connection + Verbindung entfernen + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - Vordefinierte Status konnten nicht abgerufen werden. Stellen Sie bitte sicher, dass Sie mit dem Server verbunden sind. + + %n day(s) + + %n Tag + %n Tage + - - - Could not fetch status. Make sure you are connected to the server. - Benutzerstatus konnte nicht abgerufen werden. Bitte sicherstellen, dass Sie mit dem Server verbunden sind. + + %n hour(s) + + %n Stunde + %n Stunden + + + + %n minute(s) + + %n Minute + %n Minuten + - - Status feature is not supported. You will not be able to set your status. - Benutzerstatus-Funktion wird nicht unterstützt. Benutzerstatus kann nicht gesetzt werden. + 1 hour + 1 Stunde - - Emojis are not supported. Some status functionality may not work. - Emoji-Funktion wird nicht unterstützt. Einige Benutzerstatus-Funktionen funktionieren unter Umständen nicht. + 30 minutes + 30 Minuten - - Could not set status. Make sure you are connected to the server. - Benutzerstatus konnte nicht gesetzt werden. Bitte sicherstellen, dass eine Verbindung mit dem Server besteht. + 4 hours + 4 Stunden - Could not clear status message. Make sure you are connected to the server. Statusnachricht konnte nicht gelöscht werden. Bitte sicherstellen, dass eine Verbindung mit dem Server besteht. - - - Don't clear - Nicht löschen - - - - 30 minutes - 30 Minuten + Could not fetch predefined statuses. Make sure you are connected to the server. + Vordefinierte Status konnten nicht abgerufen werden. Stellen Sie bitte sicher, dass Sie mit dem Server verbunden sind. - - 1 hour - 1 Stunde + Could not fetch status. Make sure you are connected to the server. + Benutzerstatus konnte nicht abgerufen werden. Bitte sicherstellen, dass Sie mit dem Server verbunden sind. - - 4 hours - 4 Stunden + Could not set status. Make sure you are connected to the server. + Benutzerstatus konnte nicht gesetzt werden. Bitte sicherstellen, dass eine Verbindung mit dem Server besteht. - - - Today - Heute + Don't clear + Nicht löschen - - - This week - Diese Woche + Emojis are not supported. Some status functionality may not work. + Emoji-Funktion wird nicht unterstützt. Einige Benutzerstatus-Funktionen funktionieren unter Umständen nicht. - Less than a minute Weniger als eine Minute - - - %n minute(s) - %n Minute%n Minuten + + Status feature is not supported. You will not be able to set your status. + Benutzerstatus-Funktion wird nicht unterstützt. Benutzerstatus kann nicht gesetzt werden. - - - %n hour(s) - %n Stunde%n Stunden + + This week + Diese Woche - - - %n day(s) - %n Tag%n Tage + + Today + Heute - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist ein Laufwerk. Es unterstützt keine virtuellen Dateien. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Bitte wählen Sie einen anderen Speicherort. %1 ist kein NTFS-Dateisystem. Es unterstützt keine virtuellen Dateien. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist ein Netzlaufwerk. Es unterstützt keine virtuellen Dateien. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Bitte wählen Sie einen anderen Speicherort. %1 ist kein NTFS-Dateisystem. Es unterstützt keine virtuellen Dateien. + + OCC::VfsDownloadErrorDialog - - Download error - Fehler beim Herunterladen + %1 could not be downloaded. + %1 konnte nicht heruntergeladen werden. - - - Error downloading - Fehler beim Herunterladen + + > More details + > Weitere Details - Could not be downloaded Konnte nicht heruntergeladen werden - - > More details - > Weitere Details + Download error + Fehler beim Herunterladen - - More details - Weitere Details + Error downloading + Fehler beim Herunterladen - Error downloading %1 Fehler beim Herunterladen von %1 - - %1 could not be downloaded. - %1 konnte nicht heruntergeladen werden. + More details + Weitere Details - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit @@ -6100,8 +5050,6 @@ Server antwortete mit Fehler: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit @@ -6109,12 +5057,10 @@ Server antwortete mit Fehler: %2 OCC::WebEnginePage - Invalid certificate detected Ungültiges Zertifikat gefunden - The host "%1" provided an invalid certificate. Continue? Der Server "%1" hat ein ungültiges Zertifikat. Fortsetzen? @@ -6122,769 +5068,642 @@ Server antwortete mit Fehler: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Sie wurden von Ihrem Konto %1 als %2 abgemeldet. Bitte melden Sie sich erneut an. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formular - - Log in - Anmelden - - - - Sign up with provider - Mit Provider anmelden + Host your own server + Eigenen Server betreiben - - + Keep your data secure and under your control Halten Sie Ihre Daten sicher und unter Ihrer Kontrolle - - Secure collaboration & file exchange - Sichere Zusammenarbeit & Dateiaustausch - - - - Easy-to-use web mail, calendaring & contacts - Einfach zu bedienende Webmail, Kalender & Kontakte - - - - Screensharing, online meetings & web conferences - Bildschirmfreigabe, Online-Meetings & Webkonferenzen + Log in + Anmelden - - Host your own server - Eigenen Server betreiben + Sign up with provider + Mit Provider anmelden - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - Proxyeinstellungen + HTTP(S) proxy + HTTP(S)-Proxy - Hostname of proxy server Hostname des Proxyservers - - Username for proxy server - Benutzername für den Proxyserver - - - Password for proxy server Passwort für den Proxyserver - - HTTP(S) proxy - HTTP(S)-Proxy + Proxy Settings + Dialog window title for proxy settings + Proxyeinstellungen - SOCKS5 proxy SOCKS5-Proxy - + + Username for proxy server + Benutzername für den Proxyserver + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Bitte melden Sie sich an + &Local Folder + &Lokaler Ordner - - - There are no sync folders configured. - Es wurden keine Synchronisierungsordner konfiguriert. + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Wenn diese Option gesetzt ist, werden bestehende Inhalte im lokalen Ordner gelöscht, um eine saubere Synchronisierung nur der Serverdaten zu ermöglichen.</p><p>Wählen Sie diese Option nicht, wenn die lokalen Inhalte auf den Server übertragen werden sollen.</p></body></html> - - Disconnected from %1 - Von %1 getrennt + Ask before syncing folders larger than + Fragen, bevor Ordner synchronisiert werden. Grenze: - - Unsupported Server Version - Nicht unterstütze Serverversion + Choose different folder + Anderen Ordner wählen - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - Der Server auf Konto %1 verwendet die nicht unterstützte Version %2. Die Verwendung dieses Clients mit nicht unterstützten Serverversionen ist ungetestet und potenziell gefährlich. Die Verwendung erfolgt auf eigene Gefahr. + Choose what to sync + Zu synchronisierende Elemente auswählen - - Terms of service - Nutzungsbedingungen + Erase local folder and start a clean sync + Lokalen Ordner löschen und eine saubere Synchronisierung starten - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Für Ihr Konto %1 müssen Sie die Nutzungsbedingungen Ihres Servers akzeptieren. Sie werden weitergeleitet an %2, um zu bestätigen, dass Sie die Nutzungsbedingungen gelesen haben und damit einverstanden sind. + Keep local data + Lokale Daten behalten - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1: %2 + Local Folder + Lokaler Ordner - - macOS VFS for %1: Sync is running. - macOS VFS für %1: Synchronisierung läuft. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Last sync was successful. - macOS VFS für %1: Letzte Synchronisierung war erfolgreich. + Server address + Serveradresse - - macOS VFS for %1: A problem was encountered. - macOS VFS für %1: Es ist ein Problem aufgetreten. + Sync Logo + Sync-Logo - - macOS VFS for %1: An error was encountered. - macOS VFS für %1: Es ist ein Fehler aufgetreten. + Synchronize everything from server + Alle Daten vom Server synchronisieren - - Checking for changes in remote "%1" - Nach Änderungen in entfernten "%1" suchen + Username + Benutzername + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Nach Änderungen in lokalem "%1" suchen + &Password + &Passwort - - - Internal link copied - + + &Username + &Benutzername + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Serveradresse - - Disconnected from accounts: - Verbindungen zu Konten getrennt: + This is the link to your %1 web interface when you open it in the browser. + Dies ist der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. + + + progress - - Account %1: %2 - Konto %1: %2 + Deleted + Gelöscht - - Account synchronization is disabled - Konto-Synchronisierung ist deaktiviert + Deleting + Lösche - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Heruntergeladen - - - OwncloudAdvancedSetupPage - - Username - Benutzername + Downloading + Lade herunter - - Local Folder - Lokaler Ordner + Error + Fehler - - Choose different folder - Anderen Ordner wählen + Filesystem access error + Zugriffsfehler im Dateisystem - - Server address - Serveradresse + Ignored + Ignoriert - - Sync Logo - Sync-Logo + Ignoring + ignoriere - - Synchronize everything from server - Alle Daten vom Server synchronisieren + Moved to %1 + Verschoben nach %1 - - Ask before syncing folders larger than - Fragen, bevor Ordner synchronisiert werden. Grenze: + Moving + Verschiebe - - Ask before syncing external storages - Fragen, bevor externe Speicher synchronisiert werden + Replaced by virtual file + Ersetzt durch virtuelle Datei - - Keep local data - Lokale Daten behalten + Server version downloaded, copied changed local file into case conflict conflict file + Serverversion heruntergeladen, geänderte lokale Datei in Fallkonflikt-Konfliktdatei kopiert - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Wenn diese Option gesetzt ist, werden bestehende Inhalte im lokalen Ordner gelöscht, um eine saubere Synchronisierung nur der Serverdaten zu ermöglichen.</p><p>Wählen Sie diese Option nicht, wenn die lokalen Inhalte auf den Server übertragen werden sollen.</p></body></html> + Server version downloaded, copied changed local file into conflict file + Serverversion heruntergeladen. Die bearbeitete lokale Datei wurde in eine Konfliktdatei kopiert. - - Erase local folder and start a clean sync - Lokalen Ordner löschen und eine saubere Synchronisierung starten + Unknown + Unbekannt - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated end-to-end encryption metadata + Metadaten für die Ende-zu-Ende-Verschlüsselung aktualisiert - - Choose what to sync - Zu synchronisierende Elemente auswählen + Updated local metadata + Lokale Metadaten aktualisiert - - &Local Folder - &Lokaler Ordner + Updated local virtual files metadata + Metadaten für lokale virtuelle Dateien aktualisiert - - - OwncloudHttpCredsPage - - &Username - &Benutzername + Updating end-to-end encryption metadata + Aktualisieren der Metadaten für die Ende-zu-Ende-Verschlüsselung - - - &Password - &Passwort + + Updating local metadata + Aktualisiere lokale Metadaten - - - OwncloudSetupPage - - Logo - Logo + Updating local virtual files metadata + Aktualisiere Metadaten für lokale virtuelle Dateien - - Server address - Serveradresse + Uploaded + Hochgeladen - - This is the link to your %1 web interface when you open it in the browser. - Dies ist der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. + Uploading + Lade hoch - + + Virtual file created + Virtuelle Datei erstellt + + ProxySettings - Form Formular - - Proxy Settings - Proxyeinstellungen + Host + Host - Manually specify proxy Proxy manuell festlegen - - Host - Host + No proxy + Kein Proxy + + + Note: proxy settings have no effects for accounts on localhost + Hinweis: Proxy-Einstellungen haben keine Auswirkungen auf Konten auf localhost - - Proxy server requires authentication - Proxy-Server erfordert eine Authentifizierung + Proxy Settings + Proxyeinstellungen - - Note: proxy settings have no effects for accounts on localhost - Hinweis: Proxy-Einstellungen haben keine Auswirkungen auf Konten auf localhost + Proxy server requires authentication + Proxy-Server erfordert eine Authentifizierung - Use system proxy Systemproxy verwenden - - - No proxy - Kein Proxy - - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %nd%nd - - - - in the future - in der Zukunft + + %nd + %nd + - %nh delay in hours after an activity - %nh%nh + + %nh + %nh + - - - now - jetzt + + %nmin + delay in minutes after an activity + + %n Minute + %n Minuten + - 1min one minute after activity date and time 1 Minute - - - %nmin - delay in minutes after an activity - %n Minute%n Minuten - - - Some time ago - Vor einiger Zeit + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder an Ihre Serveradministration wenden, wenn das Problem weiterhin besteht. - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + Es konnte kein Debug-Archiv am ausgewählten Ort erstellt werden! - - New folder - Neuer Ordner + Error deleting the file + Fehler beim Löschen der Datei - Failed to create debug archive Debug-Archiv konnte nicht erstellt werden - - Could not create debug archive in selected location! - Es konnte kein Debug-Archiv am ausgewählten Ort erstellt werden! - - - - Could not create debug archive in temporary location! - Es konnte kein Debug-Archiv an einem temporären Speicherort erstellt werden! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Es scheint, dass Sie einen Proxy verwenden, der eine Authentifizierung erfordert. Bitte überprüfen Sie Ihre Proxy-Einstellungen und Anmeldedaten. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. - - Could not remove existing file at destination! - Vorhandene Datei konnte am Zielort nicht entfernt werden! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Der Verbindungsaufbau zum Server dauert zu lange. Versuchen Sie es später noch einmal oder wenden sich für Hilfe an Ihre Serveradministration. - - Could not move debug archive to selected location! - Debug-Archiv konnte nicht an den ausgewählten Speicherort verschoben werden! + New folder + Neuer Ordner - - You renamed %1 - Sie haben %1 umbenannt + Paths beginning with '#' character are not supported in VFS mode. + Pfade, die mit dem Zeichen '#' beginnen, werden im VFS-Modus nicht unterstützt. - - You deleted %1 - Sie haben %1 gelöscht + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Die Serverdateien wurden während Ihrer Arbeit geändert. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, falls das Problem weiterhin besteht. - - You created %1 - Sie haben %1 erstellt + Some time ago + Vor einiger Zeit - - You changed %1 - Sie haben %1 geändert + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Auf dem Server ist etwas schief gelaufen. Bitte erneut versuchen, oder die Serveradministration informieren, falls das Problem weiterhin besteht. - Synced %1 %1 synchronisiert - - Error deleting the file - Fehler beim Löschen der Datei + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + Die für die Anfrage verwendete Adresse ist zu lang, um vom Server verarbeitet werden zu können. Bitte versuchen Sie, die gesendeten Informationen zu kürzen, oder wenden Sie sich an Ihre Serveradministration. - - Paths beginning with '#' character are not supported in VFS mode. - Pfade, die mit dem Zeichen '#' beginnen, werden im VFS-Modus nicht unterstützt. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - Die Anfrage konnte nicht bearbeitet werden. Bitte versuchen, die Synchronisierung später zu wiederholen, oder für Hilfe an die Serveradministration wenden. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + Die Datei ist zu groß zum Hochladen. Wählen Sie eine kleinere Datei aus oder wenden Sie sich für Hilfe an Ihre Serveradministration. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - Sie müssen sich anmelden, um fortzufahren. Wenn Sie Probleme mit Ihren Anmeldedaten haben, wenden Sie sich bitte an Ihre Serveradministration. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + Die Anfrage konnte nicht abgeschlossen werden, weil einige erforderliche Bedingungen nicht erfüllt waren. Bitte die Synchronisierung erneut versuchen. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - Sie haben keinen Zugriff auf diese Ressource. Wenn Sie denken, dass dies ein Fehler ist, wenden Sie sich bitte an die Serveradministration. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + Die Anfrage dauert länger als üblich. Bitte die Synchronisierung erneut versuchen. Wenn es immer noch nicht funktioniert, wenden Sie sich an Ihre Serveradministration. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - Es konnte nicht gefunden werden, wonach Sie gesucht haben. Möglicherweise wurde es verschoben oder gelöscht. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + Die Ressource, auf die Sie zuzugreifen versuchen, ist derzeit gesperrt und kann nicht geändert werden. Versuchen Sie bitte, sie später zu ändern, oder wenden sich für Hilfe an Ihre Serveradministration. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Es scheint, dass Sie einen Proxy verwenden, der eine Authentifizierung erfordert. Bitte überprüfen Sie Ihre Proxy-Einstellungen und Anmeldedaten. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + Der Server konnte Ihre Anfrage nicht bearbeiten, da einige Informationen falsch oder unvollständig waren. Bitte die Synchronisierung später wiederholen, oder wenden sich an Ihre Serveradministration. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - Die Anfrage dauert länger als üblich. Bitte die Synchronisierung erneut versuchen. Wenn es immer noch nicht funktioniert, wenden Sie sich an Ihre Serveradministration. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + Der Server verfügt nicht über genügend Speicherplatz, um Ihre Anfrage zu bearbeiten. Wenden Sie sich an Ihre Serveradministration, um zu prüfen, wie viel Speicherkontingent ihr Konto hat. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Die Serverdateien wurden während Ihrer Arbeit geändert. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, falls das Problem weiterhin besteht. + The server does not recognize the request method. Please contact your server administrator for help. + Der Server erkennt die Anfragemethode nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - Dieser Ordner oder diese Datei ist nicht mehr verfügbar. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + The server does not support the version of the connection being used. Contact your server administrator for help. + Der Server unterstützt die verwendete Version der Verbindung nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - Die Anfrage konnte nicht abgeschlossen werden, weil einige erforderliche Bedingungen nicht erfüllt waren. Bitte die Synchronisierung erneut versuchen. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + Der Server ist aktuell ausgelastet. Bitte in wenigen Minuten erneut versuchen eine Verbindung herzustellen, oder in dringenden Fällen an die Serveradministration wenden. - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - Die Datei ist zu groß zum Hochladen. Wählen Sie eine kleinere Datei aus oder wenden Sie sich für Hilfe an Ihre Serveradministration. + This file type isn’t supported. Please contact your server administrator for assistance. + Dieser Dateityp wird nicht unterstützt. Wenden Sie sich bitte an Ihre Serveradministration, um Hilfe zu erhalten. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - Die für die Anfrage verwendete Adresse ist zu lang, um vom Server verarbeitet werden zu können. Bitte versuchen Sie, die gesendeten Informationen zu kürzen, oder wenden Sie sich an Ihre Serveradministration. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + Dieser Ordner oder diese Datei ist nicht mehr verfügbar. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. - - This file type isn’t supported. Please contact your server administrator for assistance. - Dieser Dateityp wird nicht unterstützt. Wenden Sie sich bitte an Ihre Serveradministration, um Hilfe zu erhalten. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + Diese Anfrage konnte nicht abgeschlossen werden, da einige erforderliche Bedingungen fehlen. Bitte später noch einmal versuchen, oder wenden Sie sich für Hilfe an Ihre Serveradministration. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - Der Server konnte Ihre Anfrage nicht bearbeiten, da einige Informationen falsch oder unvollständig waren. Bitte die Synchronisierung später wiederholen, oder wenden sich an Ihre Serveradministration. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + Es konnte nicht gefunden werden, wonach Sie gesucht haben. Möglicherweise wurde es verschoben oder gelöscht. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - Die Ressource, auf die Sie zuzugreifen versuchen, ist derzeit gesperrt und kann nicht geändert werden. Versuchen Sie bitte, sie später zu ändern, oder wenden sich für Hilfe an Ihre Serveradministration. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + Die Anfrage konnte nicht bearbeitet werden. Bitte versuchen, die Synchronisierung später zu wiederholen, oder für Hilfe an die Serveradministration wenden. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - Diese Anfrage konnte nicht abgeschlossen werden, da einige erforderliche Bedingungen fehlen. Bitte später noch einmal versuchen, oder wenden Sie sich für Hilfe an Ihre Serveradministration. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + Es bestehen Probleme, bei der Verbindung zum Server. Informieren Sie die Serveradministration, falls das Problem weiterhin besteht. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - Sie haben zu viele Anfragen gestellt. Bitte warten Sie und versuchen es erneut. Wenn Sie diese Meldung erneut sehen, kann Ihnen Ihre Serveradministration helfen. + You changed %1 + Sie haben %1 geändert - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Auf dem Server ist etwas schief gelaufen. Bitte erneut versuchen, oder die Serveradministration informieren, falls das Problem weiterhin besteht. + You created %1 + Sie haben %1 erstellt - - The server does not recognize the request method. Please contact your server administrator for help. - Der Server erkennt die Anfragemethode nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. + You deleted %1 + Sie haben %1 gelöscht - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - Es bestehen Probleme, bei der Verbindung zum Server. Informieren Sie die Serveradministration, falls das Problem weiterhin besteht. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + Sie haben keinen Zugriff auf diese Ressource. Wenn Sie denken, dass dies ein Fehler ist, wenden Sie sich bitte an die Serveradministration. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - Der Server ist aktuell ausgelastet. Bitte in wenigen Minuten erneut versuchen eine Verbindung herzustellen, oder in dringenden Fällen an die Serveradministration wenden. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + Sie haben keine Berechtigung, auf diese Ressource zuzugreifen. Wenn Sie glauben, dass es sich um einen Fehler handelt, wenden Sie sich für Hilfe an Ihre Serveradministration. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Der Verbindungsaufbau zum Server dauert zu lange. Versuchen Sie es später noch einmal oder wenden sich für Hilfe an Ihre Serveradministration. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + Sie haben zu viele Anfragen gestellt. Bitte warten Sie und versuchen es erneut. Wenn Sie diese Meldung erneut sehen, kann Ihnen Ihre Serveradministration helfen. - - The server does not support the version of the connection being used. Contact your server administrator for help. - Der Server unterstützt die verwendete Version der Verbindung nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + Sie müssen sich anmelden, um fortzufahren. Wenn Sie Probleme mit Ihren Anmeldedaten haben, wenden Sie sich bitte an Ihre Serveradministration. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - Der Server verfügt nicht über genügend Speicherplatz, um Ihre Anfrage zu bearbeiten. Wenden Sie sich an Ihre Serveradministration, um zu prüfen, wie viel Speicherkontingent ihr Konto hat. + You renamed %1 + Sie haben %1 umbenannt - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Ihr Netzwerk benötigt eine zusätzliche Authentifizierung. Bitte überprüfen Sie Ihre Verbindung. Informieren Sie die Serveradministration, falls das Problem weiterhin besteht. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - Sie haben keine Berechtigung, auf diese Ressource zuzugreifen. Wenn Sie glauben, dass es sich um einen Fehler handelt, wenden Sie sich für Hilfe an Ihre Serveradministration. + in the future + in der Zukunft - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder an Ihre Serveradministration wenden, wenn das Problem weiterhin besteht. + now + jetzt - + ResolveConflictsDialog - - - Solve sync conflicts - Synchronisationskonflikte lösen - - %1 files in conflict indicate the number of conflicts to resolve - %1 Dateikonflikt%1 Dateikonflikte - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Wählen Sie, ob Sie die lokale Version, die Serverversion oder beide behalten möchten. Wenn Sie beide auswählen, wird dem Namen der lokalen Datei eine Nummer hinzugefügt. + + %1 Dateikonflikt + %1 Dateikonflikte + - All local versions Alle lokalen Versionen - All server versions Alle Serverversionen - + Cancel + Abbrechen + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Wählen Sie, ob Sie die lokale Version, die Serverversion oder beide behalten möchten. Wenn Sie beide auswählen, wird dem Namen der lokalen Datei eine Nummer hinzugefügt. + + Resolve conflicts Konflikte lösen - - Cancel - Abbrechen + Solve sync conflicts + Synchronisationskonflikte lösen - + - ShareDelegate + SesErrorBox - - Copied! - Kopiert! + Error + Fehler - ShareDetailsPage + SesTrayHeader - - An error occurred setting the share password. - Es ist ein Fehler beim Festlegen des Freigabekennworts aufgetreten. + Open Nextcloud in browser + - - Edit share - Freigabe bearbeiten + Open local or team folders + Lokale Ordner oder Team-Ordner öffnen - - - Share label - Freigabe-Label + + Website + + + + ShareDelegate - - - Allow upload and editing - Hochladen und Bearbeiten erlauben + Copied! + Kopiert! - - View only - Nur anzeigen + Share options + Freigabeoptionen + + + ShareDetailsPage - - File drop (upload only) - Dateien ablegen (nur Hochladen) + Add another link + Weiteren Link hinzufügen - Allow resharing Weiterteilen erlauben - - Hide download - Download verbergen + Allow upload and editing + Hochladen und Bearbeiten erlauben - - Password protection - Passwortschutz + An error occurred setting the share password. + Es ist ein Fehler beim Festlegen des Freigabekennworts aufgetreten. - - Set expiration date - Ablaufdatum setzen + Copy share link + Freigabe-Link kopieren - - - Note to recipient - Notiz an Empfänger + + Custom Permissions + - Enter a note for the recipient Eine Notiz für den Empfänger eingeben - - Unshare - Freigabe aufheben + File drop (upload only) + Dateien ablegen (nur Hochladen) - - Add another link - Weiteren Link hinzufügen + Hide download + Download verbergen + + + Note to recipient + Notiz an Empfänger + + + Password protection + Passwortschutz + + + Set expiration date + Ablaufdatum setzen - Share link copied! Freigabelink kopiert! - - Copy share link - Freigabe-Link kopieren + Unshare + Freigabe aufheben + + + View only + Nur anzeigen + + + + ShareeSearchField + + Search for users or groups… + Suche nach Benutzern oder Gruppen… + + + Sharing is not available for this folder + Teilen ist für diesen Ordner nicht verfügbar ShareView - + Expires in %1 + Läuft ab in %1 + + Password required for new share Passwort für neue Freigabe erforderlich - Share password Freigabe-Passwort - Shared with you by %1 Geteilt mit Ihnen von %1 - - Expires in %1 - Läuft ab in %1 - - - Sharing is disabled Teilen ist deaktiviert - - This item cannot be shared. - Dieses Element kann nicht geteilt werden - - - Sharing is disabled. Teilen ist deaktiviert. - - - ShareeSearchField - - - Search for users or groups… - Suche nach Benutzern oder Gruppen… - - - - Sharing is not available for this folder - Teilen ist für diesen Ordner nicht verfügbar + + This item cannot be shared. + Dieses Element kann nicht geteilt werden - + SyncJournalDb - Failed to connect database. Verbindung zur Datenbank fehlgeschlagen @@ -6892,35 +5711,25 @@ Server antwortete mit Fehler: %2 SyncStatus - - Sync now - Jetzt synchronisieren + Open browser + Browser öffnen - - + Resolve conflicts Konflikte lösen - - Open browser - Browser öffnen - - - - Open settings - Einstellungen öffnen + Sync now + Jetzt synchronisieren - + TalkReplyTextField - Reply to … Antworten an … - Send reply to chat message Antwort auf Chatnachricht senden @@ -6928,76 +5737,176 @@ Server antwortete mit Fehler: %2 TermsOfServiceCheckWidget - - Terms of Service - Nutzungsbedingungen - - - Logo Logo - Switch to your browser to accept the terms of service Zum Browser wechseln, um die Nutzungsbedingungen zu bestätigen - + + Terms of Service + Nutzungsbedingungen + + + + theme + + Error occurred during setup + Fehler bei der Einrichtung aufgetreten + + + Error occurred during sync + Fehler beim Synchronisieren aufgetreten + + + Preparing to sync + Synchronisierung wird vorbereitet + + + Stopping sync + Beende Synchronisierung + + + Sync is paused + Synchronisierung ist angehalten. + + + Sync is running + Synchronisierung läuft + + + Sync status is unknown + Synchronisierungsstatus ist unbekannt + + + Sync was successful + Synchronisierung war erfolgreich + + + Sync was successful but some files were ignored + Synchronisierung war erfolgreich, aber einige Dateien wurden ignoriert + + + Waiting to start syncing + Warte auf Beginn der Synchronisierung. + + TrayFoldersMenuButton - - Open local folder - Lokalen Ordner öffnen + Files + - - Open local or team folders - Lokale Ordner oder Team-Ordner öffnen + Open %1 in file explorer + "%1" im Dateiexplorer öffnen + + + Open local folder + Lokalen Ordner öffnen - Open local folder "%1" Lokalen Ordner "%1" öffnen - - Open team folder "%1" - Team-Ordner "%1" öffnen + Open local or team folders + Lokale Ordner oder Team-Ordner öffnen - - Open %1 in file explorer - "%1" im Dateiexplorer öffnen + Open team folder "%1" + Team-Ordner "%1" öffnen - User group and local folders menu Menü für Benutzergruppen und lokale Ordner + + TrayWindowAccountMenu + + Account switcher and settings menu + Konto-Umschalter und Einstellungsmenü + + + Add account + Konto hinzufügen + + + Current account + Aktuelles Konto + + + Current account avatar + Avatar des aktuellen Kontos + + + Current account status is do not disturb + Aktueller Kontostatus ist "Nicht stören" + + + Current account status is online + Aktueller Kontostatus ist "Online" + + + Exit + Beenden + + + Pause sync for all + Synchronisierung für alle pausieren + + + Resume sync for all + Synchronisierung für alle fortsetzen + + + Settings + Einstellungen + + TrayWindowHeader - + More apps + Weitere Apps + + + Open %1 in browser + %1 im Browser öffnen + + Open local or team folders Lokale Ordner oder Team-Ordner öffnen + + + TrayWindowHeaderBar - More apps - Weitere Apps + Weitere Apps - Open %1 in browser - %1 im Browser öffnen + %1 im Browser öffnen - + + Open Nextcloud in browser + + + + Open local or team folders + Lokale Ordner oder Team-Ordner öffnen + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Suche Dateien, Nachrichten und Termine … @@ -7005,7 +5914,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchPlaceholderView - Start typing to search Beginnen Sie mit der Eingabe, um zu suchen @@ -7013,7 +5921,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultFetchMoreTrigger - Load more results Weitere Ergebnisse laden @@ -7021,7 +5928,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Suchergebnis-Skelett. @@ -7029,7 +5935,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultListItem - Load more results Weitere Ergebnisse laden @@ -7037,7 +5942,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultNothingFound - No results for Keine Ergebnisse für @@ -7045,7 +5949,6 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultSectionItem - Search results section %1 Suchergebnisse Abschnitt %1 @@ -7053,519 +5956,217 @@ Server antwortete mit Fehler: %2 UserLine - - Switch to account - Zu Konto wechseln - - - - Current account status is online - Aktueller Kontostatus ist "Online" - - - - Current account status is do not disturb - Aktueller Kontostatus ist "Nicht stören" - - - - Account sync status requires attention - Der Kontosynchronisierungsstatus erfordert Aufmerksamkeit - - - Account actions Konto-Aktionen - - Set status - Status setzen - - - - Status message - Statusnachricht + Log in + Anmelden - Log out Abmelden - - Log in - Anmelden + Remove account + Konto entfernen - + + Switch to account + Zu Konto wechseln + + UserStatusMessageView - - Status message - Statusnachricht + Apply + Anwenden + + + Cancel + Abbrechen - - What is your status? - Wie ist Ihr Status? + Clear + Leeren - Clear status message after Statusmeldung löschen nach - - Cancel - Abbrechen - - - - Clear - Leeren + Status message + Statusnachricht - - Apply - Anwenden + What is your status? + Wie ist Ihr Status? - + UserStatusSetStatusView - - Online status - Online-Status - - - - Online - Online + Appear offline + Offline erscheinen - Away Abwesend - Busy Beschäftigt - Do not disturb Nicht stören - - Mute all notifications - Alle Benachrichtigungen stummschalten - - - Invisible Unsichtbar - - Appear offline - Offline erscheinen + Mute all notifications + Alle Benachrichtigungen stummschalten - - Status message + Online + Online + + + Online status + Online-Status + + + Status message Statusnachricht Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - %n Jahr%n Jahre - - - - %n month(s) - %n Monat%n Monate - - - %n day(s) - %n Tag%n Tage + + %n Tag + %n Tage + - %n hour(s) - %n Stunde%n Stunden + + %n Stunde + %n Stunden + - %n minute(s) - %n Minute%n Minuten + + %n Minute + %n Minuten + - - %n second(s) - %n Sekunde%n Sekunden - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - Der Prüfsummen-Header hat ein fehlerhaftes Format. - - - - The checksum header contained an unknown checksum type "%1" - Der Prüfsummen-Header enthielt einen unbekannten Prüfsummentyp "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - Die heruntergeladene Datei stimmt nicht mit der Prüfsumme überein, sie wird fortgesetzt. "%1" != "%2" - - - - main.cpp - - - System Tray not available - Benachrichtigungsfeld (Taskleiste) ist nicht verfügbar. - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 benötigt ein funktionierendes Benachrichtigungsfeld. Falls Sie XFCE einsetzen, dann folgen Sie bitte <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">diesen Anweisungen</a>. Andernfalls installieren Sie bitte ein Benachrichtigungsfeld wie zum Beispiel "Trayer" und versuchen es nochmal. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Erstellt aus der Git-Revision <a href="%1">%2</a> auf %3, %4 unter Verwendung von Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Virtuelle Datei erstellt - - - - Replaced by virtual file - Ersetzt durch virtuelle Datei - - - - Downloaded - Heruntergeladen - - - - Uploaded - Hochgeladen - - - - Server version downloaded, copied changed local file into conflict file - Serverversion heruntergeladen. Die bearbeitete lokale Datei wurde in eine Konfliktdatei kopiert. - - - - Server version downloaded, copied changed local file into case conflict conflict file - Serverversion heruntergeladen, geänderte lokale Datei in Fallkonflikt-Konfliktdatei kopiert - - - - Deleted - Gelöscht - - - - Moved to %1 - Verschoben nach %1 - - - - Ignored - Ignoriert - - - - Filesystem access error - Zugriffsfehler im Dateisystem - - - - - Error - Fehler - - - - Updated local metadata - Lokale Metadaten aktualisiert - - - - Updated local virtual files metadata - Metadaten für lokale virtuelle Dateien aktualisiert - - - - Updated end-to-end encryption metadata - Metadaten für die Ende-zu-Ende-Verschlüsselung aktualisiert - - - - - Unknown - Unbekannt - - - - Downloading - Lade herunter - - - - Uploading - Lade hoch - - - - Deleting - Lösche - - - - Moving - Verschiebe - - - - Ignoring - ignoriere - - - - Updating local metadata - Aktualisiere lokale Metadaten + %n month(s) + + %n Monat + %n Monate + - - - Updating local virtual files metadata - Aktualisiere Metadaten für lokale virtuelle Dateien + + %n second(s) + + %n Sekunde + %n Sekunden + - - - Updating end-to-end encryption metadata - Aktualisieren der Metadaten für die Ende-zu-Ende-Verschlüsselung + + %n year(s) + + %n Jahr + %n Jahre + - + - theme - - - Sync status is unknown - Synchronisierungsstatus ist unbekannt - - - - Waiting to start syncing - Warte auf Beginn der Synchronisierung. - - - - Sync is running - Synchronisierung läuft - - - - Sync was successful - Synchronisierung war erfolgreich - - - - Sync was successful but some files were ignored - Synchronisierung war erfolgreich, aber einige Dateien wurden ignoriert - - - - Error occurred during sync - Fehler beim Synchronisieren aufgetreten - - - - Error occurred during setup - Fehler bei der Einrichtung aufgetreten - - - - Stopping sync - Beende Synchronisierung - + utility - - Preparing to sync - Synchronisierung wird vorbereitet + Always available locally + Immer lokal verfügbar - - Sync is paused - Synchronisierung ist angehalten. + Available online only + Nur online verfügbar - - - utility - Could not open browser Konnte Browser nicht öffnen - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Die URL %1 konnte aufgrund eines Fehlers beim Start des Browsers nicht aufgerufen werden. Ist vielleicht kein Standardbrowser konfiguriert? - - - Could not open email client Die E-Mail-Anwendung konnte nicht geöffnet werden - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Fehler beim Öffnen der E-Mail-Anwendung zum Erstellen einer neuen Nachricht. Vielleicht ist keine Standard-E-Mail Anwendung eingerichtet? - - - - Always available locally - Immer lokal verfügbar - - - Currently available locally Derzeit lokal verfügbar - - Some available online only - Einige sind nur online abrufbar - - - - Available online only - Nur online verfügbar - - - - Make always available locally - Immer lokal verfügbar machen - - - Free up local space Lokalen Speicherplatz freigeben - - - FileProviderEvictionDialog - - - Remove local copies - Lokale Kopien entfernen - - - - Local copies - Lokale Kopien - - - - Reload - Neu laden + + Make always available locally + Immer lokal verfügbar machen - - - FileProviderStorageInfo - - Local storage use - Nutzung des lokalen Speichers + Some available online only + Einige sind nur online abrufbar - - %1 GB of %2 GB remote files synced - %1 GB von %2 GB der entfernten Dateien synchronisiert + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Die URL %1 konnte aufgrund eines Fehlers beim Start des Browsers nicht aufgerufen werden. Ist vielleicht kein Standardbrowser konfiguriert? - - Free up space … - Speicherplatz freigeben … + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Fehler beim Öffnen der E-Mail-Anwendung zum Erstellen einer neuen Nachricht. Vielleicht ist keine Standard-E-Mail Anwendung eingerichtet? - + - FileProviderSyncStatus - - - Syncing - Synchronisiere - + ValidateChecksumHeader - - All synced! - Alles synchronisiert! + The checksum header contained an unknown checksum type "%1" + Der Prüfsummen-Header enthielt einen unbekannten Prüfsummentyp "%1" - - Request sync - Synchronisierung anfordern + The checksum header is malformed. + Der Prüfsummen-Header hat ein fehlerhaftes Format. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Eine Synchronisierung der Änderungen für die VFS-Umgebung anfordern. -macOS kann diese Anforderung ignorieren oder verzögern. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + Die heruntergeladene Datei stimmt nicht mit der Prüfsumme überein, sie wird fortgesetzt. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_en.ts b/translations/client_en.ts index bd5a3c883f869..5fe201fc57d33 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -1,1938 +1,1639 @@ - - + ActivityItem - - Open %1 locally - - - - In %1 - + - + + Open %1 locally + + + ActivityItemContent - - Open file details - - - - Dismiss - + - + + Open file details + + + ActivityList - Activity list - + - - Scroll to top - - - - No activities yet - + - + + Scroll to top + + + CallNotificationDialog - - Talk notification caller avatar - - - - Answer Talk call notification - + - Decline - + - Decline Talk call notification - + - + + Talk notification caller avatar + + + CloudProviderWrapper - %1 (%2, %3) - + - Checking for changes in "%1" - + - - Syncing %1 of %2 (%3 left) - + Help + - - Syncing %1 of %2 - + Log out + - - Syncing %1 (%2 left) - + No recently changed files + - - Syncing %1 - + Open %1 Desktop + Open Nextcloud main window. Placeholer will be the application name. Please keep it. + - - - No recently changed files - + Open in browser + - - Sync paused - + Pause synchronization + - - Syncing - + Quit sync client + - - - Open %1 Desktop - Open Nextcloud main window. Placeholer will be the application name. Please keep it. - + + Recently changed + - - Open in browser - + Settings + - - Recently changed - + Sync paused + - - Pause synchronization - + Syncing + - - Help - + Syncing %1 + - - Settings - + Syncing %1 (%2 left) + - - Log out - + Syncing %1 of %2 + - - Quit sync client - + Syncing %1 of %2 (%3 left) + - + ConflictDelegate - Local version - + - Server version - + CurrentAccountHeaderButton - - Current account - + Account switcher and settings menu + - - - - Resume sync for all - + + Add account + - - - Pause sync for all - + Add new account + - - Add account - + Current account + - - Add new account - + Current account avatar + - - Settings - + Current account status is do not disturb + - - Exit - + Current account status is online + - - Current account avatar - + Exit + - - Current account status is online - + Pause sync for all + - - Current account status is do not disturb - + Resume sync for all + - - Account switcher and settings menu - + Settings + - + EditFileLocallyLoadingDialog - Opening file for local editing - + EmojiPicker - No recent emojis - + EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token - + ErrorBox - Error - + FileDetailsPage - - Activity - - - - - Sharing - + Dismiss + FileDetailsWindow - File details of %1 · %2 - + FileProviderEvictionDialog - - Remove local copies - - - - Local copies - + - Reload - + - + + Remove local copies + + + FileProviderFileDelegate - Delete - + FileProviderSettings - - Virtual files settings - + Enable virtual files + - General settings - - - - - Enable virtual files - + - Reset virtual files environment - + - + + Virtual files settings + + + FileProviderStorageInfo - - Local storage use - - - - %1 GB of %2 GB remote files synced - + - Free up space … - + - + + Local storage use + + + FileProviderSyncStatus - - Syncing - - - - All synced! - + - + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + + + Request sync - + - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - + Syncing + - + FileSystem - - Error removing "%1": %2 - - - - Could not remove folder "%1" - + - + + Error removing "%1": %2 + + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + + + Browser Authentication - + - + Copy Link + + + Logo - + - Switch to your browser to connect your account - + + + + FolderWizardSelectiveSync - - An error occurred while connecting. Please try again. - + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - + &Choose + + + + Add Folder Sync + - - &Choose … - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder - + + + + Folders + + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + - Refresh - + - - Folders - + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content - + - + New activities + + + Unified search results list - + + + + nextcloudTheme::aboutInfo() - - New activities - + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + OCC::AbstractNetworkJob - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + - The server enforces strict transport security and does not accept untrusted certificates. - + - + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + + + OCC::Account - - Public Share Link - - - - File %1 is already locked by %2. - + - Lock operation on %1 failed with error %2 - + + + + Public Share Link + - Unlock operation on %1 failed with error %2 - + OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? - + - - - Legacy import - + Could not import accounts from legacy client configuration. + - - + Import - + - - Skip - + Legacy import + - - Could not import accounts from legacy client configuration. - + Skip + - + OCC::AccountSettings - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + - - Synchronize all - + %1 as %2 + - - Synchronize none - + %1 in use + - - Apply manual changes - + %1 of %2 in use + - - Standard file sync - + (experimental) + - - Virtual file sync - + <p>Could not create local folder <i>%1</i>.</p> + - - Connection settings - + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + - Apply - + - - Storage space: … - + Apply manual changes + - - - - Cancel - + Availability + - - Connected with <server> as <user> - + Cancel + - - No account configured. - + Choose what to sync + - - End-to-end Encryption with Virtual Files - + Confirm Folder Sync Connection Removal + - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + Connected to %1. + - - - Do not encrypt folder - + Connected with <server> as <user> + - - - Encrypt folder - + Connecting to %1 … + - - End-to-end Encryption - + Connection settings + - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - + Could not encrypt folder because the folder does not exist anymore + - - End-to-end encryption has not been initialized on this account. - + Create new folder + - - Forget encryption setup - + Currently there is no storage usage information available. + - - Display mnemonic - + Disable support + - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - + Disable virtual file support … + - - Warning - + Disable virtual file support? + - - Please wait for the folder to sync before trying to encrypt it. - + Display mnemonic + - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - + Do not encrypt folder + - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - + Do you want to forget the end-to-end encryption settings for %1 on this device? + - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - + Edit Ignored Files + - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - + Enable virtual file support %1 … + - - Encryption failed - + Encrypt + - - Could not encrypt folder because the folder does not exist anymore - + Encrypt folder + - - Encrypt - + Encryption failed + - - - Edit Ignored Files - + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + - - - Create new folder - + End-to-end Encryption + - - - Availability - + End-to-end Encryption with Virtual Files + - - Choose what to sync - + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + - - Force sync now - + End-to-end encryption has not been initialized on this account. + - - Restart sync - + End-to-end encryption mnemonic + - - Remove folder sync connection - + Expand Memory + + + + Folder creation failed + - - Disable virtual file support … - + Force sync now + - - Enable virtual file support %1 … - + Forget encryption setup + - - (experimental) - + Forget the end-to-end encryption on this device + - - Folder creation failed - + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + - - Confirm Folder Sync Connection Removal - + Migrate certificate to a new one + - - Remove Folder Sync Connection - + No %1 connection configured. + - - Disable virtual file support? - + No account configured. + - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - + Open folder + - - Disable support - + Pause sync + - - End-to-end encryption mnemonic - + Please wait for the folder to sync before trying to encrypt it. + - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + Remove Folder Sync Connection + - - Forget the end-to-end encryption on this device - + Remove folder sync connection + - - Do you want to forget the end-to-end encryption settings for %1 on this device? - + Restart sync + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - + Resume sync + - - Sync Running - + Server %1 is currently being redirected, or your connection is behind a captive portal. + - - The syncing operation is running.<br/>Do you want to terminate it? - + Server %1 is currently in maintenance mode. + - - %1 in use - + Server %1 is temporarily unavailable. + - - Migrate certificate to a new one - + Server configuration error: %1 at %2. + - - There are folders that have grown in size beyond %1MB: %2 - + Set up encryption + - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - + Signed out from %1. + - - This account supports end-to-end encryption, but it needs to be set up first. - + Standard file sync + - - Set up encryption - + Storage space %1% occupied + - - Connected to %1. - + Storage space: … + - - Server %1 is temporarily unavailable. - + Sync Running + - - Server %1 is currently in maintenance mode. - + Synchronize all + - - Signed out from %1. - + Synchronize none + - - There are folders that were not synchronized because they are too big: - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + - - There are folders that were not synchronized because they are external storages: - + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + - - There are folders that were not synchronized because they are too big or external storages: - + The server version %1 is unsupported! Proceed at your own risk. + - - - Open folder - + The syncing operation is running.<br/>Do you want to terminate it? + - - Resume sync - + There are folders that have grown in size beyond %1MB: %2 + - - Pause sync - + There are folders that were not synchronized because they are external storages: + - - <p>Could not create local folder <i>%1</i>.</p> - + There are folders that were not synchronized because they are too big or external storages: + - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - + There are folders that were not synchronized because they are too big: + - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - + This account supports end-to-end encryption, but it needs to be set up first. + - - %1 of %2 in use - + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + - - Currently there is no storage usage information available. - + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + - - %1 as %2 - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + - - The server version %1 is unsupported! Proceed at your own risk. - + Unable to connect to %1. + - - Server %1 is currently being redirected, or your connection is behind a captive portal. - + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + - - Connecting to %1 … - + Virtual file sync + - - Unable to connect to %1. - + Warning + - - Server configuration error: %1 at %2. - + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + + + + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + - You need to accept the terms of service at %1. - + - - No %1 connection configured. - + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + - There was an invalid response to an authenticated WebDAV request - + OCC::AccountState - - Signed out - + Asking Credentials + - - Disconnected - + Configuration error + - Connected - + - - Service unavailable - + Disconnected + - Maintenance mode - + - - Redirect detected - + Need the user to accept the terms of service + - Network error - + - - Configuration error - + Redirect detected + - - Asking Credentials - + Service unavailable + - - Need the user to accept the terms of service - + Signed out + - Unknown account state - + OCC::ActivityListModel - - For more activities please open the Activity app. - + Fetching activities … + - - Fetching activities … - + For more activities please open the Activity app. + - Network error occurred: client will retry syncing. - + OCC::AddCertificateDialog - - SSL client certificate authentication - + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + - - This server probably requires a SSL client certificate. - + Browse … + - Certificate & Key (pkcs12): - + - - Certificate password: - + Certificate files (*.p12 *.pfx) + - - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - + + Certificate password: + - - Browse … - + SSL client certificate authentication + - Select a certificate - + - - Certificate files (*.p12 *.pfx) - + This server probably requires a SSL client certificate. + - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - + %1 accounts + number of accounts imported + - - newer - newer software version - + %1 folders + number of folders imported + - - older - older software version - + 1 account + - - ignoring - + 1 folder + - - deleting - + Continue + - - Quit - + Error accessing the configuration file + - - Continue - + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + - - %1 accounts - number of accounts imported - + Legacy import + - - 1 account - + Quit + - - %1 folders - number of folders imported - + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + - - 1 folder - + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. + - - - Legacy import - + + deleting + - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - + ignoring + - - Error accessing the configuration file - + newer + newer software version + - - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. - + older + older software version + - + OCC::AuthenticationDialog - - Authentication Required - + &Password: + - - - Enter username and password for "%1" at %2. - + + &Username: + - - &Username: - + Authentication Required + - - &Password: - + Enter username and password for "%1" at %2. + - + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". - + - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - + OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + + + File %1 can not be downloaded because of a local file name clash! - + - + The file %1 is currently in use + + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - - - - - The file %1 is currently in use - + - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists - + - - File contains leading or trailing spaces and couldn't be renamed - + File %1 has invalid modification time. Do not upload to the server. + - File %1 has invalid modified time. Do not upload to the server. - + - File Removed (start upload) %1 - + - - File %1 has invalid modification time. Do not upload to the server. - + File contains leading or trailing spaces and couldn't be renamed + - - Local file changed during syncing. It will be resumed. - + Local file changed during sync. + - - - Local file changed during sync. - + Local file changed during syncing. It will be resumed. + - Network error: %1 - + - - Error updating metadata: %1 - + Restoration failed: %1 + - - + The file %1 is currently in use - + - The local file was removed during sync. - + - - - Restoration failed: %1 - - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. - + - Could not rename file. Please make sure you are connected to the server. - + - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - - - - Failed to fetch permissions with error %1 - + - Filename contains leading and trailing spaces. - + - Filename contains leading spaces. - + - Filename contains trailing spaces. - + - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + + + OCC::CaseClashFilenameDialog - - Case Clash Conflict - + %1 does not support equal file names with only letter casing differences. + - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - + 0 byte + - - Error - + Case Clash Conflict + - - Existing file - + Case clashing file + - - file A - + Error + - - - today - + Existing file + - - - 0 byte - + Filename contains illegal characters: %1 + + + + Filename contains leading and trailing spaces. + - - - Open existing file - + Filename contains leading spaces. + - - Case clashing file - + Filename contains trailing spaces. + - - file B - + New filename + - - Open clashing file - + - - Please enter a new name for the clashing file: - + Open existing file + - - New filename - + Please enter a new name for the clashing file: + - Rename file - + - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - + - - %1 does not support equal file names with only letter casing differences. - - - - - Filename contains leading and trailing spaces. - + The file could not be synced because it generates a case clash conflict with an existing file on this system. + - - Filename contains leading spaces. - + Use invalid name + - - Filename contains trailing spaces. - + file A + - - Use invalid name - + file B + - - Filename contains illegal characters: %1 - + today + - + OCC::CleanupPollsJob - Error writing metadata to the database - + OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - + Enter Certificate USB Token PIN: + - - Enter Certificate USB Token PIN: - + Enter E2E passphrase + + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + - Invalid PIN. Login failed - + - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! - + - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> - + - - - Enter E2E passphrase - - - + OCC::ConflictDialog - - Sync Conflict - - - - - - Conflicting versions of %1. - + 0 byte + - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - + <a href="%1">Open local version</a> + - - Local version - + <a href="%1">Open server version</a> + - - Click to open the file - + - - - today - + Conflicting versions of %1. + - - - 0 byte - + Keep both versions + - - <a href="%1">Open local version</a> - + Keep local version + - - Server version - + Keep selected version + - - <a href="%1">Open server version</a> - + Keep server version + - - - - Keep selected version - + + Local version + - Open local version - + - Open server version - + - - Keep both versions - + Server version + - - Keep local version - + Sync Conflict + - - Keep server version - + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + - + + today + + + OCC::ConflictSolver - - + Confirm deletion + + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + + + + Do you want to delete the file <i>%1</i> permanently? + + + Error - + - - Moving file failed: %1 - + + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - + Authentication error: Either username or password are wrong. + - - Do you want to delete the file <i>%1</i> permanently? - + No %1 account configured + The placeholder will be the application name. Please keep it + - - Confirm deletion - + Please update to the latest server and restart the client. + - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - + The configured server for this client is too old + - + The provided credentials are not correct + + + Timeout - + + + + OCC::DataProtectionPage - - The configured server for this client is too old - + Agree + - - Please update to the latest server and restart the client. - + Form + - - Authentication error: Either username or password are wrong. - + Settings + - - The provided credentials are not correct - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - + Back + - - Error while canceling deletion of %1 - + Form + + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - + Error while canceling deletion of %1 + - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + + Error while canceling deletion of a file + + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! - + - Encrypted metadata setup error: initial signature from server is empty. - + + + + Server error: PROPFIND reply is not XML formatted! + - - - OCC::DiscoverySingleLocalDirectoryJob - - Error while opening directory %1 - + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied - + - Directory not found: %1 - + - - Filename encoding is not valid - + Error while opening directory %1 + - Error while reading directory %1 - + - + + Filename encoding is not valid + + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - + An error occurred during data retrieval. + - - An error occurred during setup. - + - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - + An error occurred trying to synchronise the file to edit locally. + - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. - + - - - - An error occurred during data retrieval. - + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + - - - An error occurred trying to synchronise the file to edit locally. - + Could not find a remote file info for local editing. Make sure its path is valid. + - - Server error: PROPFIND reply is not XML formatted! - + Could not open %1 + - - Could not find a remote file info for local editing. Make sure its path is valid. - + Could not start editing locally. + - - Invalid local file path. - + File %1 already locked. + - - Could not open %1 - + File %1 could not be locked. + - - - Please try again. - + + File %1 now locked. + - - File %1 already locked. - + Invalid local file path. + - - Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. - + - - File %1 now locked. - + Please try again. + - - File %1 could not be locked. - + Server error: PROPFIND reply is not XML formatted! + - + OCC::EditLocallyManager - Could not validate the request to open a file from server. - + - Please try again. - + OCC::EditLocallyVerificationJob - - Invalid token received. - + An error occurred trying to verify the request to edit locally. + - - - - - Please try again. - + + Could not find an account for local editing. + - - Invalid file path was provided. - + Could not start editing locally. + - - Could not find an account for local editing. - + Invalid file path was provided. + - - Could not start editing locally. - + Invalid token received. + - - An error occurred trying to verify the request to edit locally. - + Please try again. + - + - OCC::EncryptFolderJob + OCC::EncryptedFolderMetadataHandler - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - + Error fetching encrypted folder ID. + - - - OCC::EncryptedFolderMetadataHandler - - - - - - Error fetching metadata. - + - - - Error locking folder. - + - - Error fetching encrypted folder ID. - - - - Error parsing or decrypting metadata. - + - Failed to upload metadata - + - OCC::FileDetails - - - %1 second(s) ago - seconds elapsed since file last modified - - %1 second ago - %1 seconds ago - + OCC::EncryptFolderJob + + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + + + + OCC::FileDetails - - %1 minute(s) ago - minutes elapsed since file last modified + %1 day(s) ago + days elapsed since file last modified - %1 minute ago - %1 minutes ago + %1 day ago + %1 days ago - %1 hour(s) ago hours elapsed since file last modified @@ -1941,16 +1642,14 @@ This can be an issue with your OpenSSL libraries. - - %1 day(s) ago - days elapsed since file last modified + %1 minute(s) ago + minutes elapsed since file last modified - %1 day ago - %1 days ago + %1 minute ago + %1 minutes ago - %1 month(s) ago months elapsed since file last modified @@ -1959,7 +1658,14 @@ This can be an issue with your OpenSSL libraries. - + %1 second(s) ago + seconds elapsed since file last modified + + %1 second ago + %1 seconds ago + + + %1 year(s) ago years elapsed since file last modified @@ -1968,7 +1674,6 @@ This can be an issue with your OpenSSL libraries. - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1980,641 +1685,533 @@ This can be an issue with your OpenSSL libraries. OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. - + - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. - + - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. + + + + OCC::Flow2AuthWidget - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + Copy Link + - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + Error + - - - OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - + Link copied to clipboard. + - - Waiting for authorization - + Open Browser + - Polling for authorization - + - Starting authorization - + - - Link copied to clipboard. - + Switch to your browser to connect your account + - - - Open Browser - + + Unable to open the Browser, please copy the link to your Browser. + - - Copy Link - + Waiting for authorization + - + OCC::Folder - - - %1 has been removed. - %1 names a file. - - - - - %1 has been updated. - %1 names a file. - + + %1 and %n other file(s) are currently locked. + + %1 and %n other file are currently locked. + %1 and %n other files are currently locked. + - - - %1 has been renamed to %2. - %1 and %2 name files. - + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 and %n other file could not be synced due to errors. See the log for details. + %1 and %n other files could not be synced due to errors. See the log for details. + - - - %1 has been moved to %2. - + + %1 and %n other file(s) have been added. + + %1 and %n other file have been added. + %1 and %n other files have been added. + - %1 and %n other file(s) have been removed. %1 and %n other file have been removed. %1 and %n other files have been removed. - - - Please choose a different location. The folder %1 doesn't exist. - + + %1 and %n other file(s) have been updated. + + %1 and %n other file have been updated. + %1 and %n other files have been updated. + - - Please choose a different location. %1 isn't a valid folder. - + %1 could not be synced due to an error. See the log for details. + - - Please choose a different location. %1 isn't a readable folder. - + %1 has a sync conflict. Please check the conflict file! + - - %1 and %n other file(s) have been added. + %1 has and %n other file(s) have sync conflicts. - %1 and %n other file have been added. - %1 and %n other files have been added. + %1 and %n other file have sync conflicts. + %1 and %n other files have sync conflicts. - %1 has been added. %1 names a file. - - - - - %1 and %n other file(s) have been updated. - - %1 and %n other file have been updated. - %1 and %n other files have been updated. - - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - - %1 has been renamed to %2 and %n other file has been renamed. - %1 has been renamed to %2 and %n other files have been renamed. - + - %1 has been moved to %2 and %n other file(s) have been moved. %1 has been moved to %2 and %n other file has been moved. %1 has been moved to %2 and %n other files have been moved. - - - %1 has and %n other file(s) have sync conflicts. - - %1 and %n other file have sync conflicts. - %1 and %n other files have sync conflicts. - + + %1 has been moved to %2. + - - %1 has a sync conflict. Please check the conflict file! - + %1 has been removed. + %1 names a file. + - - %1 and %n other file(s) could not be synced due to errors. See the log for details. + %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 and %n other file could not be synced due to errors. See the log for details. - %1 and %n other files could not be synced due to errors. See the log for details. + %1 has been renamed to %2 and %n other file has been renamed. + %1 has been renamed to %2 and %n other files have been renamed. - - %1 could not be synced due to an error. See the log for details. - + %1 has been renamed to %2. + %1 and %2 name files. + - - - %1 and %n other file(s) are currently locked. - - %1 and %n other file are currently locked. - %1 and %n other files are currently locked. - + + %1 has been updated. + %1 names a file. + - %1 is currently locked. - + - - Sync Activity - + A folder from an external storage has been added. + - - Could not read system exclude file - + A folder has surpassed the set folder size limit of %1MB: %2. +%3 + - - A new folder larger than %1 MB has been added: %2. - - + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + - - A folder from an external storage has been added. - - + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + - - Please go in the settings to select it if you wish to download it. - + A new folder larger than %1 MB has been added: %2. + - - A folder has surpassed the set folder size limit of %1MB: %2. -%3 - + Changes in synchronized folders could not be tracked reliably. + +This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). + +%1 + + + + Could not read system exclude file + - Keep syncing - + - - Stop syncing - + Please choose a different location. %1 isn't a readable folder. + - - The folder %1 has surpassed the set folder size limit of %2MB. - + Please choose a different location. %1 isn't a valid folder. + - - Would you like to stop syncing this folder? - + Please choose a different location. The folder %1 doesn't exist. + - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - + Please go in the settings to select it if you wish to download it. + - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - + Proceed with Deletion + - - Changes in synchronized folders could not be tracked reliably. - -This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). - -%1 - + Remove all files? + - - Virtual file download failed with code "%1", status "%2" and error message "%3" - + Restore Files from Server + + + + Restore Files to Server + - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Stop syncing + - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - + Sync Activity + - - Remove all files? - + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + - - Proceed with Deletion - + The folder %1 has surpassed the set folder size limit of %2MB. + - - Restore Files to Server - + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + - - Restore Files from Server - + Virtual file download failed with code "%1", status "%2" and error message "%3" + - + + Would you like to stop syncing this folder? + + + OCC::FolderCreationDialog - - Create new folder - + %1 Create new folder + - - Enter folder name - + Could not create a folder! Check your write permissions. + + + + Create new folder + - - Folder already exists - + Enter folder name + - Error - + - - Could not create a folder! Check your write permissions. - + Folder already exists + - + OCC::FolderMan - - Could not reset folder state - + %1 (Sync is paused) + - - - (backup) - + + (backup %1) + - - (backup %1) - + (backup) + - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - + - - Undefined state. - + Could not reset folder state + - - Waiting to start syncing. - + Last sync was successful. + - - Preparing for sync. - + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + - - Syncing %1 of %2 (A few seconds left) - + Please choose a different location. %1 is already being used as a sync folder. + - - Syncing %1 of %2 (%3 left) - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + - - Syncing %1 of %2 - + Please choose a different location. The path %1 doesn't exist. + - - Syncing %1 (A few seconds left) - + Please choose a different location. The path %1 isn't a folder. + - - Syncing %1 (%2 left) - + Please choose a different location. The selected folder isn't valid. + - - Syncing %1 - + Please choose a different location. You don't have enough permissions to write to %1. + folder location + - - Sync is running. - + Preparing for sync. + - - Sync finished with unresolved conflicts. - + Setup error. + - - Last sync was successful. - + Sync finished with unresolved conflicts. + - - Setup error. - + Sync is paused. + - - Sync request was cancelled. - + Sync is running. + - - Please choose a different location. The selected folder isn't valid. - + Sync request was cancelled. + - - - Please choose a different location. %1 is already being used as a sync folder. - + Syncing %1 + - - Please choose a different location. The path %1 doesn't exist. - + Syncing %1 (%2 left) + - - Please choose a different location. The path %1 isn't a folder. - + Syncing %1 (A few seconds left) + - - - Please choose a different location. You don't have enough permissions to write to %1. - folder location - + Syncing %1 of %2 + - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - + Syncing %1 of %2 (%3 left) + - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - + Syncing %1 of %2 (A few seconds left) + - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. For advanced users: this issue might be related to multiple sync database files found in one folder. Please check %1 for outdated and unused .sync_*.db files and remove them. - + - - Sync is paused. - + Undefined state. + - - %1 (Sync is paused) - + Waiting to start syncing. + - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - + Add Folder Sync + - File - + - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - + %1 %2 + Example text: "Uploading foobar.png" + - - Click this button to add a folder to synchronize. - + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + - - Could not decrypt! - + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + - - %1 (%2) - + - - Error while loading the list of folders from the server. - + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + - - Virtual file support is enabled. - + %5 left, %1 of %2, file %3 of %4 + - - Signed out - + , + - - Synchronizing virtual files in local folder - + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + - - Synchronizing files in local folder - + About to start syncing + - - Checking for changes in remote "%1" - + Checking for changes in local "%1" + - - Checking for changes in local "%1" - + Checking for changes in remote "%1" + - - Syncing local and remote changes - + Click this button to add a folder to synchronize. + - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - + Could not decrypt! + - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) - - - - - File %1 of %2 - + - - There are unresolved conflicts. Click for details. - - - - - - , - + Error while loading the list of folders from the server. + - Fetching folder list from server … - + - - ↓ %1/s - + File %1 of %2 + - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - + Preparing to sync … + + + + Signed out + - - ↑ %1/s - + Synchronizing files in local folder + - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - + Synchronizing virtual files in local folder + - - %1 %2 - Example text: "Uploading foobar.png" - + Syncing local and remote changes + - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - + There are unresolved conflicts. Click for details. + - - %5 left, %1 of %2, file %3 of %4 - + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - + Virtual file support is enabled. + - Waiting for %n other folder(s) … Waiting for %n other folder … @@ -2622,1364 +2219,1261 @@ For advanced users: this issue might be related to multiple sync database files - - About to start syncing - + You need to be connected to add a folder + - - Preparing to sync … - + ↑ %1/s + - + + ↓ %1/s + + + OCC::FolderWatcher - The watcher did not receive a test notification. - + OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. - + OCC::FolderWizard - Add Folder Sync Connection - + - Add Sync Connection - + OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. - + - Enter the path to the local folder. - + + + + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - Select the source folder - + - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - + Authentication failed accessing %1 + - - Folder was successfully created on %1. - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - + Choose this to sync the entire account + + + + Create Remote Folder + + + + Create folder + + + + Enter the name of the new folder to be created below "%1": + - Failed to create the folder on %1. Please check manually. - + - Failed to list a folder. Error: %1 - + - - Choose this to sync the entire account - + Folder was successfully created on %1. + - - Please choose a different location. %1 is already being synced to %2. - - - - - You are already syncing the subfolder %1 at %2. - + - - - OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + - - - (experimental) - + Refresh + - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - + Step 2 of 3: Directory in your %1 + - - Virtual files are not supported at the selected location - + You are already syncing the subfolder %1 at %2. + - + - OCC::GETFileJob + OCC::FolderWizardSelectiveSync - - No E-Tag received from server, check Proxy/Gateway - + (experimental) + - - We received a different E-Tag for resuming. Retrying next time. - + Add Folder Sync + - - We received an unexpected download Content-Length. - + Step 3 of 3: Selektive Synchronisation + - - Server returned wrong content-range - + Use virtual files instead of downloading content immediately %1 + - - Connection Timeout - + Virtual files are not supported at the selected location + - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + + + OCC::GeneralSettings - - General Settings - + &Automatically check for updates + - - Show Call Notifications - + &Launch on System Startup + - - For System Tray - + &Restart && Update + - - Show Chat Notifications - + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - - Show Server &Notifications - + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - Advanced - + - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - - - - Ask for confirmation before synchronizing external storages - + - - &Launch on System Startup - + Ask for confirmation before synchronizing new folders larger than + - - Use &Monochrome Icons - + Automatically disable synchronisation of folders that overcome limit + - - Show &Quota Warning Notifications - + Cancel + - - Ask for confirmation before synchronizing new folders larger than - + Change update channel + - - Notify when synchronised folders grow larger than specified limit - + Changing update channel? + - - Automatically disable synchronisation of folders that overcome limit - + Check Now + - - Move removed files to trash - + Create Debug Archive + - - Show sync folders in &Explorer's navigation pane - + Data Protection + - - Server poll interval - + Debug Archive Created + - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - + Desktop client x.x.x + - Edit &Ignored Files - + - - - Create Debug Archive - + For System Tray + - - Info - + General Settings + - - Desktop client x.x.x - + Legal Notice + - - Update channel - + MB + Trailing part of "Ask confirmation before syncing folder larger than" + - - &Automatically check for updates - + More Information + + + + Move removed files to trash + - - Check Now - + Necessary data + - - Usage Documentation - + Notify when synchronised folders grow larger than specified limit + - - Legal Notice - + Open Source Software + - - Restore &Default - + Privacy Policy + - - &Restart && Update - + Redact information deemed sensitive before sharing! Debug archive created at %1 + - - Server notifications that require attention. - + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - + Restore &Default + - - Show call notification dialogs. - + Restore to &%1 + - - Show notification when quota usage exceeds 80%. - + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - + Server notifications that require attention. + - - Restore to &%1 - + Server poll interval + - - stable - + Show &Quota Warning Notifications + - - beta - + Show Call Notifications + - - daily - + Show Chat Notifications + - - enterprise - + Show Server &Notifications + - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - + Show call notification dialogs. + - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - + Show chat notification dialogs. + - - Changing update channel? - + Show notification when quota usage exceeds 80%. + + + + Show sync folders in &Explorer's navigation pane + - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable starts list of available update channels, stable is always available - + - - Change update channel - + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - + Update channel + + + + Updates + + + + Usage Documentation + + + + Use &Monochrome Icons + + + + You cannot disable autostart because system-wide autostart is enabled. + - Zip Archives - + - - Debug Archive Created - + beta + - - Redact information deemed sensitive before sharing! Debug archive created at %1 - + daily + - + + enterprise + + + + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + + + stable + + + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - + Connection Timeout + + + + No E-Tag received from server, check Proxy/Gateway + - - Please enter a password for your link share: - + Server returned wrong content-range + - - Sharing error - + We received a different E-Tag for resuming. Retrying next time. + + + + We received an unexpected download Content-Length. + + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 - + + + + Password for share required + - - - OCC::HttpCredentialsGui - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - + Please enter a password for your link share: + - - Reading from keychain failed with error: "%1" - + Sharing error + + + + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + + + Enter Password - + - - <a href="%1">Click here</a> to request an app password from the web interface. - + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + - + + Reading from keychain failed with error: "%1" + + + OCC::IgnoreListEditor - - Ignored Files Editor - + Files Ignored by Patterns + - Global Ignore Settings - + - - Sync hidden files - + Ignored Files Editor + - - Files Ignored by Patterns - + Sync hidden files + - This entry is provided by the system at "%1" and cannot be modified in this view. - + OCC::IgnoreListTableWidget - - Pattern - + Add + - - Allow Deletion - + Add a new ignore pattern: + - - - Add - + + Allow Deletion + - - Remove - + Cannot write changes to "%1". + - - Remove all - + Could not open file + - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - + - - Could not open file - + Ignore Pattern + - - Cannot write changes to "%1". - + Pattern + - - Add Ignore Pattern - + Remove + - - Add a new ignore pattern: - + Remove all + - + OCC::InvalidFilenameDialog - - Invalid filename - + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + - - The file could not be synced because it contains characters which are not allowed on this system. - + Checking rename permissions … + - - Error - + Could not rename file. Please make sure you are connected to the server. + - - Please enter a new name for the file: - + Could not rename local file. %1 + - - - New filename - + + Error + - - Rename file - + Failed to fetch permissions with error %1 + - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - + Filename contains illegal characters: %1 + - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - + Filename contains leading and trailing spaces. + - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - + Filename contains leading spaces. + - - The following characters are not allowed: %1 - + Filename contains trailing spaces. + - - The following basenames are not allowed: %1 - + Invalid filename + - - The following filenames are not allowed: %1 - + New filename + - - The following file extensions are not allowed: %1 - + Please enter a new name for the file: + - - Checking rename permissions … - + Rename file + - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + - - Failed to fetch permissions with error %1 - + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + - - Filename contains leading and trailing spaces. - + The file could not be synced because it contains characters which are not allowed on this system. + - - Filename contains leading spaces. - + The following basenames are not allowed: %1 + - - Filename contains trailing spaces. - + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + - - Use invalid name - + The following characters are not allowed: %1 + - - Filename contains illegal characters: %1 - + The following file extensions are not allowed: %1 + - - Could not rename file. Please make sure you are connected to the server. - + The following filenames are not allowed: %1 + - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - + Use invalid name + - - Could not rename local file. %1 - + You don't have the permission to rename this file. Please ask the author of the file to rename it. + - + OCC::LegacyAccountSelectionDialog - Legacy import - + - Select the accounts to import from the legacy configuration: - + OCC::LegalNotice - - - Legal notice - + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + - - Close - + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> + - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - + + Close + - - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - + Legal notice + - + OCC::LogBrowser - + Enable logging to temporary folder + + + Log Output - + - + Open folder + + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 - - - - - Enable logging to temporary folder - + - This setting persists across client restarts. Note that using any logging command line options will override this setting. - - - - - Open folder - + - + OCC::Logger - - - Error - - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> - + - + + Error + + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - - - - An error occurred during setup. - + - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - + - Could not get file ID. - + - Could not get file identifier. - + + + + Could not start editing locally. + - The file identifier is empty. - + - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - + Download Bandwidth + - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - + HTTP(S) proxy + - - Update Failed - + Host + - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - + Hostname of proxy server + - - Ask again later - + KBytes/s + - - Restart and update - + Limit automatically + - - Update manually - + Limit to + - - Skip this time - + Limit to 3/4 of estimated bandwidth + - - Get update - + Manually specify proxy + - - - OCC::NetworkSettings - - Proxy Settings - + No limit + - - Use system proxy - + No proxy + - - Host - + Note: proxy settings have no effects for accounts on localhost + - - Proxy server requires authentication - + Password for proxy server + - - Download Bandwidth - + Proxy Settings + - - - Limit to - + Proxy server requires authentication + - - - KBytes/s - + SOCKS5 proxy + - - - Note: proxy settings have no effects for accounts on localhost - + + Upload Bandwidth + - - Manually specify proxy - + Use system proxy + - - No proxy - + Username for proxy server + + + + OCC::NSISUpdater - - - No limit - + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + - - - Limit to 3/4 of estimated bandwidth - + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + - - Upload Bandwidth - + Ask again later + - - - Limit automatically - + Get update + - - - Hostname of proxy server - + + New Version Available + - - Username for proxy server - + Restart and update + - - Password for proxy server - + Skip this time + - - HTTP(S) proxy - + Update Failed + - - SOCKS5 proxy - + Update manually + - + OCC::OCUpdater - - Could not check for new updates. - - - - - Checking update server … - - - - - New %1 update ready - + %1 available. Restart application to start the update. + - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - + - - Downloading %1 … - + Checking update server … + - - %1 available. Restart application to start the update. - + Could not check for new updates. + - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - + Could not download update. Please open %1 to download the update manually. + - - Could not download update. Please open %1 to download the update manually. - + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - + Downloading %1 … + - New %1 is available. Please open %2 to download the update. - + - - Update status is unknown: Did not check for new updates. - + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + - - You are using the %1 update channel. Your installation is the latest version. - + New %1 update ready + - No updates available. Your installation is the latest version. - + - Update Check - + - + + Update status is unknown: Did not check for new updates. + + + + You are using the %1 update channel. Your installation is the latest version. + + + OCC::OwncloudAdvancedSetupPage - - Connect - + %1 folder "%2" is synced to local folder "%3" + - - - (experimental) - + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + - - - Use &virtual files instead of downloading content immediately %1 - + (%1) + - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - + (experimental) + - - %1 folder "%2" is synced to local folder "%3" - + Connect + - - Sync the folder "%1" - + In Finder's "Locations" sidebar section + - - - Warning: The local folder is not empty. Pick a resolution! - + + Local Sync Folder + - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - + Sync the folder "%1" + - - Virtual files are not supported at the selected location - + There isn't enough free space in the local folder! + - - Local Sync Folder - + Use &virtual files instead of downloading content immediately %1 + - - - (%1) - + Virtual files are not supported at the selected location + - - There isn't enough free space in the local folder! - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + - - In Finder's "Locations" sidebar section - + Warning: The local folder is not empty. Pick a resolution! + - + OCC::OwncloudConnectionMethodDialog - - Connection failed - + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + - - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - + - - Select a different URL - + Configure client-side TLS certificate + - - Retry unencrypted over HTTP (insecure) - + Connection failed + - - Configure client-side TLS certificate - + Retry unencrypted over HTTP (insecure) + - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - + Select a different URL + - + - OCC::OwncloudHttpCredsPage + OCC::ownCloudGui - - &Email - + %1 (%2, %3) + - - - Connect to %1 - + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + - - Enter user credentials - + Account %1: %2 + - - - OCC::OwncloudPropagator - - - Impossible to get modification time for file in conflict %1 - + Account synchronization is disabled + - - - OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - + Checking for changes in local "%1" + - - &Next > - + Checking for changes in remote "%1" + - - Server address does not seem to be valid - + Disconnected from %1 + - - Could not load certificate. Maybe wrong password? - + Disconnected from accounts: + - - - OCC::OwncloudSetupWizard - - <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> - + Please sign in + - - Failed to connect to %1 at %2:<br/>%3 - + Terms of service + - - Timeout while trying to connect to %1 at %2. - + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - + There are no sync folders configured. + - - Invalid URL - + Unsupported Server Version + - - - Trying to connect to %1 at %2 … - + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - + macOS VFS for %1: A problem was encountered. + - - There was an invalid response to an authenticated WebDAV request - + macOS VFS for %1: Last sync was successful. + - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - + macOS VFS for %1: Sync is running. + + + + OCC::OwncloudHttpCredsPage - - Creating local sync folder %1 … - + &Email + - - OK - + Connect to %1 + - - failed. - + Enter user credentials + + + + + OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 + + + + + OCC::OwncloudSetupPage + + &Next > + + + + Could not load certificate. Maybe wrong password? + + + + Server address does not seem to be valid + + + + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + + + + + OCC::OwncloudSetupWizard + + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + + + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> + + + + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + + + + A sync connection from %1 to remote directory %2 was set up. + + + + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + + + + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + + + + Connection to %1 could not be established. Please check again. + - Could not create local folder %1 - + - - No remote folder specified! - + Creating local sync folder %1 … + - Error: %1 - + - - creating folder on Nextcloud: %1 - + Failed to connect to %1 at %2:<br/>%3 + - - Remote folder %1 created successfully. - + Folder rename failed + - - The remote folder %1 already exists. Connecting it for syncing. - + Invalid URL + - - - The folder creation resulted in HTTP error code %1 - + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - + No remote folder specified! + - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - + OK + - - - Remote folder %1 creation failed with error <tt>%2</tt>. - + Remote folder %1 created successfully. + - - A sync connection from %1 to remote directory %2 was set up. - + Remote folder %1 creation failed with error <tt>%2</tt>. + - Successfully connected to %1! - + - - Connection to %1 could not be established. Please check again. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + - - Folder rename failed - + The folder creation resulted in HTTP error code %1 + - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - + The remote folder %1 already exists. Connecting it for syncing. + - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - + There was an invalid response to an authenticated WebDAV request + - + + Timeout while trying to connect to %1 at %2. + + + + Trying to connect to %1 at %2 … + + + + creating folder on Nextcloud: %1 + + + + failed. + + + OCC::OwncloudWizard - Add %1 account - + - - Skip folders configuration - + Back + Next button text in new account wizard + - Cancel - + - - Proxy Settings - Proxy Settings button text in new account wizard - + Enable experimental feature? + + + + Enable experimental placeholder mode + - Next Next button text in new account wizard - + - - Back - Next button text in new account wizard - + Proxy Settings + Proxy Settings button text in new account wizard + - - Enable experimental feature? - + Skip folders configuration + - + Stay safe + + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3987,1595 +3481,1321 @@ The virtual files mode is mutually exclusive with selective sync. Currently unse Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. - - - - - Enable experimental placeholder mode - + - - - Stay safe - - - + OCC::PasswordInputDialog - Password for share required - + - Please enter a password for your share: - + OCC::PollJob - Invalid JSON reply from the poll URL - + OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - + Cannot be renamed or uploaded. + - - File is listed on the ignore list. - + Cannot modify encrypted item because the selected certificate is not valid. + - - File names ending with a period are not supported on this file system. - + Cannot sync due to invalid modification time + - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Conflict: Server version downloaded, local copy renamed and not uploaded. + - - Folder name contains at least one invalid character - + Could not upload file, because it is open in "%1". + - - File name contains at least one invalid character - + Error while deleting file record %1 from the database + - - Folder name is a reserved name on this file system. - + Error while reading the database + - - - File name is a reserved name on this file system. - + + File has extension reserved for virtual files. + - - Filename contains trailing spaces. - + File is listed on the ignore list. + - - - - - Cannot be renamed or uploaded. - + File is not accessible on the server. + server error + - - Filename contains leading spaces. - + File name contains at least one invalid character + - - Filename contains leading and trailing spaces. - + File name is a reserved name on this file system. + - - Filename is too long. - + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - File/Folder is ignored because it's hidden. - + File names ending with a period are not supported on this file system. + - - Stat failed. - + File/Folder is ignored because it's hidden. + - - Conflict: Server version downloaded, local copy renamed and not uploaded. - + Filename contains leading and trailing spaces. + - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - + Filename contains leading spaces. + - - The filename cannot be encoded on your file system. - + Filename contains trailing spaces. + - - The filename is blacklisted on the server. - + Filename is too long. + - - Reason: the entire filename is forbidden. - + Folder is not accessible on the server. + server error + - - Reason: the filename has a forbidden base name (filename start). - + Folder name contains at least one invalid character + - - Reason: the file has a forbidden extension (.%1). - + Folder name is a reserved name on this file system. + - - Reason: the filename contains a forbidden character (%1). - + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - File has extension reserved for virtual files. - + Ignored because of the "choose what to sync" blacklist + - - Folder is not accessible on the server. - server error - + Moved to invalid target, restoring + - - File is not accessible on the server. - server error - + Not allowed because you don't have permission to add files in that folder + - - Cannot sync due to invalid modification time - + Not allowed because you don't have permission to add subfolders to that folder + - - Upload of %1 exceeds %2 of space left in personal files. - + Not allowed to remove, restoring + - - Upload of %1 exceeds %2 of space left in folder %3. - + Not allowed to upload this file because it is read-only on the server, restoring + - - Could not upload file, because it is open in "%1". - + Reason: the entire filename is forbidden. + - - Error while deleting file record %1 from the database - + Reason: the file has a forbidden extension (.%1). + - - - Moved to invalid target, restoring - + Reason: the filename contains a forbidden character (%1). + - - Cannot modify encrypted item because the selected certificate is not valid. - + Reason: the filename has a forbidden base name (filename start). + - - Ignored because of the "choose what to sync" blacklist - + Stat failed. + - - Not allowed because you don't have permission to add subfolders to that folder - + Symbolic links are not supported in syncing. + - - Not allowed because you don't have permission to add files in that folder - + The filename cannot be encoded on your file system. + - - Not allowed to upload this file because it is read-only on the server, restoring - + The filename is blacklisted on the server. + - - Not allowed to remove, restoring - + Upload of %1 exceeds %2 of space left in folder %3. + - - Error while reading the database - + Upload of %1 exceeds %2 of space left in personal files. + - + OCC::PropagateDirectory - Could not delete file %1 from local DB - + - Error updating metadata due to invalid modification time - + - - - - - - - The folder %1 cannot be made read-only: %2 - + Error updating metadata: %1 + - - - unknown exception - + File is currently in use + - - - Error updating metadata: %1 - + + The folder %1 cannot be made read-only: %2 + - - File is currently in use - + unknown exception + - + OCC::PropagateDownloadFile - - Could not get file %1 from local DB - + Could not delete file record %1 from local DB + - - File %1 cannot be downloaded because encryption information is missing. - + Could not get file %1 from local DB + - - - Could not delete file record %1 from local DB - + Error updating metadata: %1 + - - The download would reduce free local disk space below the limit - + File %1 cannot be downloaded because encryption information is missing. + - - Free space on disk is less than %1 - + File %1 downloaded but it resulted in a local file name clash! + - - File was deleted from server - + File %1 has invalid modified time reported by server. Do not save it. + - - The file could not be downloaded completely. - + File has changed since discovery + - - - The downloaded file is empty, but the server said it should have been %1. - + + File was deleted from server + - - - File %1 has invalid modified time reported by server. Do not save it. - + Free space on disk is less than %1 + - - File %1 downloaded but it resulted in a local file name clash! - + The download would reduce free local disk space below the limit + - - Error updating metadata: %1 - + The downloaded file is empty, but the server said it should have been %1. + - The file %1 is currently in use - + - - - File has changed since discovery - + The file could not be downloaded completely. + - + OCC::PropagateItemJob - ; Restoration Failed: %1 - + - A file or folder was removed from a read only share, but restoring failed: %1 - + OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - + Could not create folder %1 + - - Folder %1 cannot be created because of a local file or folder name clash! - + Error updating metadata: %1 + - - Could not create folder %1 - + Folder %1 cannot be created because of a local file or folder name clash! + - - - - The folder %1 cannot be made read-only: %2 - + The file %1 is currently in use + - - - unknown exception - + + The folder %1 cannot be made read-only: %2 + - - Error updating metadata: %1 - + could not delete file %1, error: %2 + - - The file %1 is currently in use - + unknown exception + - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + + + Could not remove %1 because of a local file name clash - + - - - Temporary error when removing local item removed from server. - + - - - Could not delete file record %1 from local DB - - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - - - - - File %1 downloaded but it resulted in a local file name clash! - + Could not delete file record %1 from local DB + - - - + Could not get file %1 from local DB - + - - Error setting pin state - + - Error updating metadata: %1 - - - - - The file %1 is currently in use - + - Failed to propagate directory rename in hierarchy - + - Failed to rename file - + - - Could not delete file record %1 from local DB - + File %1 downloaded but it resulted in a local file name clash! + - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - + Folder %1 cannot be renamed because of a local file or folder name clash! + - + The file %1 is currently in use + + + + + OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB - + - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - + OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + Error writing metadata to the database: %1 + - Failed to encrypt a folder %1 - - - - - Error writing metadata to the database: %1 - + - The file %1 is currently in use - + - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + + + OCC::PropagateRemoteMove - - Could not rename %1 to %2, error: %3 - + Could not delete file record %1 from local DB + - - - Error updating metadata: %1 - + Could not get file %1 from local DB + - - - The file %1 is currently in use - + Could not rename %1 to %2, error: %3 + - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + Error setting pin state + - - Could not get file %1 from local DB - + Error updating metadata: %1 + - - Could not delete file record %1 from local DB - + Error writing metadata to the database + - - - Error setting pin state - + + The file %1 is currently in use + - - Error writing metadata to the database - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + - + OCC::PropagateUploadFileCommon - - File %1 cannot be uploaded because another file with the same name, differing only in case, exists - + Error updating metadata: %1 + - - - - File %1 has invalid modification time. Do not upload to the server. - + Failed to unlock encrypted folder. + - - Local file changed during syncing. It will be resumed. - + Failed to upload encrypted file. + - - Local file changed during sync. - + File %1 cannot be uploaded because another file with the same name, differing only in case, exists + - - Failed to unlock encrypted folder. - + File %1 has invalid modification time. Do not upload to the server. + - - Unable to upload an item with invalid characters - + File Removed (start upload) %1 + - - - Error updating metadata: %1 - + + Local file changed during sync. + - - The file %1 is currently in use - + Local file changed during syncing. It will be resumed. + - - - Upload of %1 exceeds the quota for the folder - + The file %1 is currently in use + - - Failed to upload encrypted file. - + Unable to upload an item with invalid characters + - - File Removed (start upload) %1 - + Upload of %1 exceeds the quota for the folder + - + OCC::PropagateUploadFileNG - - The local file was removed during sync. - + File is not accessible on the server. + server error + - - - Local file changed during sync. - + + Folder is not accessible on the server. + server error + - - Poll URL missing - + Local file changed during sync. + - - Unexpected return code from server (%1) - + Missing File ID from server + - - Missing File ID from server - + Poll URL missing + - - Folder is not accessible on the server. - server error - + The local file was removed during sync. + - - File is not accessible on the server. - server error - + Unexpected return code from server (%1) + - + OCC::PropagateUploadFileV1 - - Poll URL missing - + Local file changed during sync. + - - The local file was removed during sync. - + Poll URL missing + - - Local file changed during sync. - + The local file was removed during sync. + - The server did not acknowledge the last chunk. (No e-tag was present) - + OCC::ProxyAuthDialog - - Proxy authentication required - + Password: + - - - Username: - + + Proxy authentication required + - Proxy: - + - The proxy server needs a username and password. - + - - Password: - + Username: + - + OCC::SelectiveSyncDialog - Choose What to Sync - + OCC::SelectiveSyncWidget - - Loading … - + An error occurred while loading the list of sub folders. + - - + Deselect remote folders you do not wish to synchronize. - + - - Name - + Loading … + - - Size - + Name + - - No subfolders currently on the server. - + - - An error occurred while loading the list of sub folders. - + Size + - + OCC::ServerNotificationHandler - + Dismiss + + + Reply - + + + + OCC::sesSnackBar - - Dismiss - + Error + - - - OCC::SettingsDialog - - Settings - + Success + + + + Warning + + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud - + - + Account + + + General - + - - Account - + New account + - + + Settings + + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + + + + Global search results + + + + No results found + + + + Search globally + + + OCC::ShareManager - Error - + OCC::ShareModel - %1 days - + - 1 day - + - - Today - + Could not find local folder for %1 + - - - Secure file drop link - + + Internal link + - - Share link - + Link share + - - Link share - + Secure file drop + - - Internal link - + Secure file drop link + - - Secure file drop - + Share link + - - Could not find local folder for %1 - + Today + - + - OCC::ShareeModel + OCC::SocketApi - - - Search globally - + Activity + - - No results found - + Context menu share + - - Global search results - + Copy internal link + - - %1 (%2) - sharee (shareWithAdditionalInfo) - + Copy private link to clipboard + - - - OCC::SocketApi - - Context menu share - + Could not encrypt the following folder: "%1". + +Server replied with error: %2 + - - I shared something with you - + Delete + - - - Share options - + Delete local changes + - - Send private link by email … - + Encrypt + + + + Expires in %1 minutes + remaining time before lock expires + + Expires in %1 minute + Expires in %1 minutes + - - Copy private link to clipboard - + Failed to encrypt folder + - Failed to encrypt folder at "%1" - + - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - + Folder encrypted successfully + - - Failed to encrypt folder - + I shared something with you + - - Could not encrypt the following folder: "%1". - -Server replied with error: %2 - + Leave this share + - - Folder encrypted successfully - + Lock file + - - The following folder was encrypted successfully: "%1" - + Locked by %1 + - - Select new location … - + Move and rename … + - - - Activity - + Move and upload … + - - Leave this share - + Move, rename and upload … + - + Open in browser + + + Resharing this file is not allowed - + - Resharing this folder is not allowed - + - - Encrypt - + Resolve conflict … + - - Lock file - + Select new location … + - - Unlock file - + Send private link by email … + - - Locked by %1 - - - - - Expires in %1 minutes - remaining time before lock expires - - Expires in %1 minute - Expires in %1 minutes - + Share options + - - Resolve conflict … - + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + - - Move and rename … - + The following folder was encrypted successfully: "%1" + - - Move, rename and upload … - + Unlock file + + + + OCC::SslButton - - Delete local changes - + %1 + - - Move and upload … - + %1 (self-signed) + - - Delete - + <h3>Certificate Details</h3> + - - Copy internal link - + <h3>Fingerprints</h3> + - - - Open in browser - - - - - OCC::SslButton - - - <h3>Certificate Details</h3> - - - - - Common Name (CN): - - - - - Subject Alternative Names: - + <h3>Issuer</h3> + - - Organization (O): - + <p><b>Note:</b> This certificate was manually approved</p> + - - Organizational Unit (OU): - + Certificate information: + - - State/Province: - + Common Name (CN): + - Country: - + - - Serial: - + Expires on: + - - <h3>Issuer</h3> - + Issued on: + - Issuer: - - - - - Issued on: - + - - Expires on: - + No support for SSL session tickets/identifiers + - - <h3>Fingerprints</h3> - + Organization (O): + - - SHA-256: - + Organizational Unit (OU): + - SHA-1: - - - - - <p><b>Note:</b> This certificate was manually approved</p> - - - - - %1 (self-signed) - + - - %1 - + SHA-256: + - - This connection is encrypted using %1 bit %2. - - + Serial: + - Server version: %1 - + - - No support for SSL session tickets/identifiers - + State/Province: + - - Certificate information: - + Subject Alternative Names: + - The connection is not secure - + + + + This connection is NOT secure as it is not encrypted. + - - This connection is NOT secure as it is not encrypted. - - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - + &lt;not specified&gt; + - - Untrusted Certificate - + Additional errors: + - Cannot connect securely to <i>%1</i>: - + - - Additional errors: - - - - - with Certificate %1 - + Country: %1 + - - - - &lt;not specified&gt; - + Effective Date: %1 + - - - Organization: %1 - + Expiration Date: %1 + - - - Unit: %1 - + Fingerprint (SHA-256): <tt>%1</tt> + - - - Country: %1 - + Fingerprint (SHA-512): <tt>%1</tt> + - Fingerprint (SHA1): <tt>%1</tt> - + - - Fingerprint (SHA-256): <tt>%1</tt> - + Issuer: %1 + + + + Organization: %1 + - - Fingerprint (SHA-512): <tt>%1</tt> - + Trust this certificate anyway + - - Effective Date: %1 - + Unit: %1 + - - Expiration Date: %1 - + Untrusted Certificate + - - Issuer: %1 - + with Certificate %1 + - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) - + - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - + Cannot open the sync journal + - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - + + Could not set file record to local DB: %1 + - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - + Could not update file metadata: %1 + - - There is insufficient space available on the server for some uploads. - + Could not update file: %1 + - - Unresolved conflict. - + Could not update virtual file metadata: %1 + - - Could not update file: %1 - + Disk space is low: Downloads that would reduce free space below %1 were skipped. + - - Could not update virtual file metadata: %1 - + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + - - Could not update file metadata: %1 - + There is insufficient space available on the server for some uploads. + - - Could not set file record to local DB: %1 - + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + - - Using virtual files with suffix, but suffix is not set - + Unable to read from the sync journal. + - Unable to read the blacklist from the local database - + - - Unable to read from the sync journal. - + Unresolved conflict. + - - Cannot open the sync journal - + Using virtual files with suffix, but suffix is not set + - + OCC::SyncStatusSummary - - - - Offline - + %1 of %2 + - - You need to accept the terms of service - + %1 of %2 · %3 left + - - - All synced! - - - - - Some files couldn't be synced! - + - - See below for errors - + Checking folder changes + - - Checking folder changes - + Offline + - - Syncing changes - + See below for errors + - - Sync paused - + See below for warnings + - Some files could not be synced! - + - - See below for warnings - + Some files couldn't be synced! + - - Syncing - + Sync paused + - - %1 of %2 · %3 left - + Syncing + - - %1 of %2 - + Syncing changes + - Syncing file %1 of %2 - + - + + You need to accept the terms of service + + + OCC::Systray - - Download - - - - Add account - + - - Open %1 Desktop - Open Nextcloud main window. Placeholer will be the application name. Please keep it. - + Download + - - - Pause sync - + Exit %1 + - - - Resume sync - + Help + - - Settings - + Open %1 Desktop + Open Nextcloud main window. Placeholer will be the application name. Please keep it. + - - Help - + Pause sync + - - Exit %1 - + Pause sync for all + - - Pause sync for all - + Resume sync + - Resume sync for all - + - + + Settings + + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - - - - - Polling - + Copy Link + - - + Link copied to clipboard. - + - Open Browser - + - - Copy Link - + Polling + - + + Waiting for terms to be accepted + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. - + - <p><small>Using virtual files plugin: %1</small></p> - + - <p>This release was supplied by %1.</p> - + - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. - + - Failed to fetch search providers for '%1'. Error: %2 - - - - - Search has failed for '%2'. - + - Search has failed for '%1'. Error: %2 - + - + + Search has failed for '%2'. + + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - + Failed to finalize item. + - - + Failed to unlock encrypted folder. - + - - Failed to finalize item. - + Failed to update folder metadata. + - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - + Could not add or remove user %1 to access folder %2 + - Could not fetch public key for user %1 - + - Could not find root encrypted folder for folder %1 - + - - Could not add or remove user %1 to access folder %2 - + Error updating metadata for a folder %1 + - Failed to unlock a folder. - + OCC::User - - - End-to-end certificate needs to be migrated to a new one - - - - - Trigger the migration - - - %n notification(s) %n notification @@ -5583,590 +4803,496 @@ Server replied with error: %2 - - Retry all uploads - + End-to-end certificate needs to be migrated to a new one + - - - Resolve conflict - + Open %1 Assistant in browser + The placeholder will be the application name. Please keep it + - - Rename file - + Open %1 Talk in browser + The placeholder will be the application name. Please keep it + - Public Share Link - + - - Open %1 Assistant in browser - The placeholder will be the application name. Please keep it - + Quota Warning - %1 percent or more storage in use + + + + Quota is updated; %1 percent of the total space is used. + - - Open %1 Talk in browser - The placeholder will be the application name. Please keep it - + Rename file + - - Quota is updated; %1 percent of the total space is used. - + Resolve conflict + - - Quota Warning - %1 percent or more storage in use - + Retry all uploads + - - - OCC::UserModel - - Confirm Account Removal - + Trigger the migration + + + + OCC::UserModel - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - + - - Remove connection - + Cancel + - - Cancel - + Confirm Account Removal + - Leave share - + - Remove account - + - + + Remove connection + + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - - - - - Could not fetch status. Make sure you are connected to the server. - - - - - Status feature is not supported. You will not be able to set your status. - + + %n day(s) + + %n day + %n days + + + + %n hour(s) + + %n hour + %n hours + + + + %n minute(s) + + %n minute + %n minutes + - - Emojis are not supported. Some status functionality may not work. - + 1 hour + - - Could not set status. Make sure you are connected to the server. - + 30 minutes + - - Could not clear status message. Make sure you are connected to the server. - + 4 hours + - - - Don't clear - + Could not clear status message. Make sure you are connected to the server. + - - 30 minutes - + Could not fetch predefined statuses. Make sure you are connected to the server. + - - 1 hour - + Could not fetch status. Make sure you are connected to the server. + - - 4 hours - + Could not set status. Make sure you are connected to the server. + - - - Today - + Don't clear + - - - This week - + Emojis are not supported. Some status functionality may not work. + - Less than a minute - + - - - %n minute(s) - - %n minute - %n minutes - + + Status feature is not supported. You will not be able to set your status. + - - - %n hour(s) - - %n hour - %n hours - + + This week + - - - %n day(s) - - %n day - %n days - + + Today + - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. - + - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + + + OCC::VfsDownloadErrorDialog - - Download error - + %1 could not be downloaded. + - - - Error downloading - + + > More details + - Could not be downloaded - + - - > More details - + Download error + - - More details - + Error downloading + - Error downloading %1 - + - - %1 could not be downloaded. - + More details + - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time - + OCC::VfsXAttr - - Error updating metadata due to invalid modification time - + OCC::WebEnginePage - Invalid certificate detected - + - The host "%1" provided an invalid certificate. Continue? - + OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form - + - - Log in - + Host your own server + - - - Sign up with provider - + + Keep your data secure and under your control + - - Keep your data secure and under your control - + Log in + - - Secure collaboration & file exchange - + Sign up with provider + + + + OCC::WizardProxySettingsDialog - - Easy-to-use web mail, calendaring & contacts - + HTTP(S) proxy + - - Screensharing, online meetings & web conferences - + Hostname of proxy server + - - Host your own server - + Password for proxy server + - - - OCC::WizardProxySettingsDialog - Proxy Settings Dialog window title for proxy settings - + - - Hostname of proxy server - + SOCKS5 proxy + - - + Username for proxy server - + + + + OwncloudAdvancedSetupPage - - Password for proxy server - + &Local Folder + - - - HTTP(S) proxy - + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + - - SOCKS5 proxy - + Ask before syncing folders larger than + - - - OCC::ownCloudGui - - Please sign in - + Choose different folder + - - There are no sync folders configured. - + Choose what to sync + - - Disconnected from %1 - + Erase local folder and start a clean sync + - - Unsupported Server Version - + Keep local data + - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - + Local Folder + - - Terms of service - + MB + Trailing part of "Ask confirmation before syncing folder larger than" + - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - + Server address + - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - + Sync Logo + - - macOS VFS for %1: Sync is running. - + Synchronize everything from server + - - macOS VFS for %1: Last sync was successful. - + Username + + + + OwncloudHttpCredsPage - - macOS VFS for %1: A problem was encountered. - + &Password + - - - Checking for changes in remote "%1" - + + &Username + + + + OwncloudSetupPage - - Checking for changes in local "%1" - + Server address + - - Disconnected from accounts: - + This is the link to your %1 web interface when you open it in the browser. + + + + progress - - Account %1: %2 - + Deleted + - - Account synchronization is disabled - + Deleting + - - %1 (%2, %3) - + Downloaded + - - - OwncloudAdvancedSetupPage - - Username - + Downloading + - - Local Folder - + Error + - - Choose different folder - + Filesystem access error + - - Server address - + Ignored + - - Sync Logo - + Ignoring + - - Synchronize everything from server - + Moved to %1 + - - Ask before syncing folders larger than - + Moving + - - Ask before syncing external storages - + Replaced by virtual file + - - Keep local data - + Server version downloaded, copied changed local file into case conflict conflict file + - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - + Server version downloaded, copied changed local file into conflict file + - - Erase local folder and start a clean sync - + Unknown + - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - + Updated end-to-end encryption metadata + - - Choose what to sync - + Updated local metadata + - - &Local Folder - + Updated local virtual files metadata + - - - OwncloudHttpCredsPage - - &Username - + Updating end-to-end encryption metadata + + + + Updating local metadata + - - &Password - + Updating local virtual files metadata + - - - OwncloudSetupPage - - Logo - + Uploaded + - - Server address - + Uploading + - - This is the link to your %1 web interface when you open it in the browser. - + Virtual file created + - + ProxySettings - Form - + - - Proxy Settings - + Host + - Manually specify proxy - + - - Host - + No proxy + - - - Proxy server requires authentication - + + Note: proxy settings have no effects for accounts on localhost + - - Note: proxy settings have no effects for accounts on localhost - + Proxy Settings + - - Use system proxy - + Proxy server requires authentication + - - No proxy - + Use system proxy + - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + + - %nd delay in days after an activity @@ -6174,13 +5300,7 @@ Server replied with error: %2 %nd - - - in the future - - - %nh delay in hours after an activity @@ -6188,227 +5308,183 @@ Server replied with error: %2 %nh - - - now - - - - - 1min - one minute after activity date and time - - - %nmin delay in minutes after an activity - - + + - - Some time ago - + 1min + one minute after activity date and time + - - %1: %2 - this displays an error string (%2) for a file %1 - + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + - - New folder - + Could not create debug archive in selected location! + - - Failed to create debug archive - + Error deleting the file + - - Could not create debug archive in selected location! - + Failed to create debug archive + - - You renamed %1 - + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + - - You deleted %1 - + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + - - You created %1 - + New folder + - - You changed %1 - + Paths beginning with '#' character are not supported in VFS mode. + - - Synced %1 - + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + - - Error deleting the file - + Some time ago + - - Paths beginning with '#' character are not supported in VFS mode. - + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - + Synced %1 + - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - + - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - + The server does not recognize the request method. Please contact your server administrator for help. + - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - + The server does not support the version of the connection being used. Contact your server administrator for help. + - - This file type isn’t supported. Please contact your server administrator for assistance. - + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - + This file type isn’t supported. Please contact your server administrator for assistance. + - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - + - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + - - The server does not recognize the request method. Please contact your server administrator for help. - + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - + You changed %1 + - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - + You created %1 + - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - + You deleted %1 + - - The server does not support the version of the connection being used. Contact your server administrator for help. - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + + + + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + + + + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + + + + You renamed %1 + - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - + - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - + in the future + - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + now + - + ResolveConflictsDialog - - - Solve sync conflicts - - - %1 files in conflict indicate the number of conflicts to resolve @@ -6417,507 +5493,536 @@ Server replied with error: %2 - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - - - - All local versions - + - All server versions - + + + + Cancel + + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + - Resolve conflicts - + - - Cancel - + Solve sync conflicts + + + + + SesErrorBox + + Error + + + SesTrayHeader + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + ShareDelegate - Copied! - + + + + Share options + ShareDetailsPage - - An error occurred setting the share password. - + Add another link + - - Edit share - + Allow resharing + - - Share label - + Allow upload and editing + - - - Allow upload and editing - + An error occurred setting the share password. + - - View only - + Copy share link + + + + Custom Permissions + - - File drop (upload only) - + Enter a note for the recipient + - - Allow resharing - + File drop (upload only) + - Hide download - + - - Password protection - + Note to recipient + - - Set expiration date - + Password protection + - - Note to recipient - + Set expiration date + - - Enter a note for the recipient - + Share link copied! + - Unshare - + - - Add another link - + View only + + + + ShareeSearchField - - Share link copied! - + Search for users or groups… + - - Copy share link - + Sharing is not available for this folder + ShareView - + Expires in %1 + + + Password required for new share - + - Share password - + - Shared with you by %1 - + - - Expires in %1 - - - - Sharing is disabled - - - - - This item cannot be shared. - + - Sharing is disabled. - + - - - ShareeSearchField - - - Search for users or groups… - - - - - Sharing is not available for this folder - + + This item cannot be shared. + - + SyncJournalDb - Failed to connect database. - + SyncStatus - - Sync now - + Open browser + - - + Resolve conflicts - + - - Open browser - + Sync now + - + TalkReplyTextField - Reply to … - + - Send reply to chat message - + TermsOfServiceCheckWidget - + Logo + + + + Switch to your browser to accept the terms of service + + + Terms of Service - + + + + theme - - Logo - + Error occurred during setup + - - Switch to your browser to accept the terms of service - + Error occurred during sync + - + + Preparing to sync + + + + Stopping sync + + + + Sync is paused + + + + Sync is running + + + + Sync status is unknown + + + + Sync was successful + + + + Sync was successful but some files were ignored + + + + Waiting to start syncing + + + TrayFoldersMenuButton - - Open local folder - + Files + - - Open local or team folders - + Open %1 in file explorer + + + + Open local folder + - Open local folder "%1" - + - - Open team folder "%1" - + Open local or team folders + - - Open %1 in file explorer - + Open team folder "%1" + - User group and local folders menu - + + + TrayWindowAccountMenu + + Account switcher and settings menu + + + + Add account + + + + Current account + + + + Current account avatar + + + + Current account status is do not disturb + + + + Current account status is online + + + + Exit + + + + Pause sync for all + + + + Resume sync for all + + + + Settings + + + TrayWindowHeader - + More apps + + + + Open %1 in browser + + + Open local or team folders - + + + + TrayWindowHeaderBar - More apps - + - Open %1 in browser - + - + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … - + UnifiedSearchPlaceholderView - Start typing to search - + UnifiedSearchResultFetchMoreTrigger - Load more results - + UnifiedSearchResultItemSkeleton - Search result skeleton. - + UnifiedSearchResultListItem - Load more results - + UnifiedSearchResultNothingFound - No results for - + UnifiedSearchResultSectionItem - Search results section %1 - + UserLine - - Switch to account - - - - - Current account status is online - - - - - Current account status is do not disturb - - - - Account actions - - - - - Set status - + - - Status message - + Log in + - Log out - + - - Log in - + Remove account + - + + Switch to account + + + UserStatusMessageView - - Status message - + Apply + - - - What is your status? - + + Cancel + - - Clear status message after - + Clear + - - Cancel - + Clear status message after + - - Clear - + Status message + - - Apply - + What is your status? + - + UserStatusSetStatusView - - Online status - - - - - Online - + Appear offline + - Away - + - Busy - + - Do not disturb - + + + + Invisible + - Mute all notifications - + - - Invisible - + Online + - - Appear offline - + Online status + - Status message - + Utility - - %L1 GB - + %1 %2 + + + + %L1 B + - - %L1 MB - + %L1 GB + - %L1 KB - + - - %L1 B - + %L1 MB + - %L1 TB - + - - %n year(s) - - %n year - %n years - - - - - %n month(s) - - %n month - %n months - - - - %n day(s) %n day @@ -6925,7 +6030,6 @@ Server replied with error: %2 - %n hour(s) %n hour @@ -6933,7 +6037,6 @@ Server replied with error: %2 - %n minute(s) %n minute @@ -6941,282 +6044,83 @@ Server replied with error: %2 - + %n month(s) + + %n month + %n months + + + %n second(s) %n second %n seconds - - - %1 %2 - - - - - ValidateChecksumHeader - - - The checksum header is malformed. - - - - - The checksum header contained an unknown checksum type "%1" - - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - - - - - main.cpp - - - System Tray not available - - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - - - - - progress - - - Virtual file created - - - - - Replaced by virtual file - - - - - Downloaded - - - - - Uploaded - - - - - Server version downloaded, copied changed local file into conflict file - - - - - Server version downloaded, copied changed local file into case conflict conflict file - - - - - Deleted - - - - - Moved to %1 - - - - - Ignored - - - - - Filesystem access error - - - - - - Error - - - - - Updated local metadata - - - - - Updated local virtual files metadata - - - - - Updated end-to-end encryption metadata - - - - - - Unknown - - - - - Downloading - - - - - Uploading - - - - - Deleting - - - - - Moving - - - - - Ignoring - - - - - Updating local metadata - - - - - Updating local virtual files metadata - - - - - Updating end-to-end encryption metadata - + + %n year(s) + + %n year + %n years + - + - theme - - - Sync status is unknown - - - - - Waiting to start syncing - - - - - Sync is running - - + utility - - Sync was successful - + Always available locally + - - Sync was successful but some files were ignored - + Available online only + - - Error occurred during sync - + Could not open browser + - - Error occurred during setup - + Could not open email client + - - Stopping sync - + Currently available locally + - - Preparing to sync - + Free up local space + - - - Sync is paused - + + Make always available locally + - - - utility - - Could not open browser - + Some available online only + - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - - - - - Could not open email client - + - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - - - - - Always available locally - - - - - Currently available locally - - - - - Some available online only - + + + + ValidateChecksumHeader - - Available online only - + The checksum header contained an unknown checksum type "%1" + - - Make always available locally - + The checksum header is malformed. + - - Free up local space - + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + - + \ No newline at end of file diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index 6f3ac811e6ae1..e88e551e97dca 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Open %1 locally - - - In %1 In %1 - + + Open %1 locally + Open %1 locally + + ActivityItemContent - - Open file details - Open file details - - - - File details - File details - - - - File actions - File actions - - - Dismiss Dismiss - + + Open file details + Open file details + + ActivityList - Activity list Activity list - - Scroll to top - Scroll to top - - - No activities yet No activities yet - + + Scroll to top + Scroll to top + + CallNotificationDialog - - Talk notification caller avatar - Talk notification caller avatar - - - Answer Talk call notification Answer Talk call notification - Decline Decline - Decline Talk call notification Decline Talk call notification - + + Talk notification caller avatar + Talk notification caller avatar + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Checking for changes in "%1" - - Syncing %1 of %2 (%3 left) - Syncing %1 of %2 (%3 left) - - - - Syncing %1 of %2 - Syncing %1 of %2 - - - - Syncing %1 (%2 left) - Syncing %1 (%2 left) + Help + Help - - Syncing %1 - Syncing %1 + Log out + Log out - - No recently changed files No recently changed files - - Sync paused - Sync paused - - - - Syncing - Syncing - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop - Open in browser Open in browser - - Recently changed - Recently changed - - - Pause synchronization Pause synchronization - - Help - Help + Quit sync client + Quit sync client + + + Recently changed + Recently changed - Settings Settings - - Log out - Log out + Sync paused + Sync paused - - Quit sync client - Quit sync client + Syncing + Syncing - + + Syncing %1 + Syncing %1 + + + Syncing %1 (%2 left) + Syncing %1 (%2 left) + + + Syncing %1 of %2 + Syncing %1 of %2 + + + Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (%3 left) + + ConflictDelegate - Local version Local version - Server version Server version @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Current account - - - - - Resume sync for all - Resume sync for all - - - - - Pause sync for all - Pause sync for all + Account switcher and settings menu + Account switcher and settings menu - - + Add account Add account - Add new account Add new account - - Settings - Settings - - - - Exit - Exit + Current account + Current account - Current account avatar Current account avatar - + Current account status is do not disturb + Current account status is do not disturb + + Current account status is online Current account status is online - - Current account status is do not disturb - Current account status is do not disturb + Exit + Exit - - Account switcher and settings menu - Account switcher and settings menu + Pause sync for all + Pause sync for all - + + Resume sync for all + Resume sync for all + + + Settings + Settings + + EditFileLocallyLoadingDialog - Opening file for local editing Opening file for local editing @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis No recent emojis @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Discovering the certificates stored on your USB token @@ -266,44 +210,42 @@ ErrorBox - Error Error - - FileActionsWindow - - - File actions for %1 - File actions for %1 - - FileDetailsPage - - Activity - Activity - - - - Sharing - Sharing + Dismiss + Dismiss FileDetailsWindow - File details of %1 · %2 File details of %1 · %2 + + FileProviderEvictionDialog + + Local copies + Local copies + + + Reload + Reload + + + Remove local copies + Remove local copies + + FileProviderFileDelegate - Delete Delete @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Virtual files settings + Enable virtual files + Enable virtual files - General settings General settings - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. + Reset virtual files environment + Reset virtual files environment + + + Virtual files settings + Virtual files settings + + + FileProviderStorageInfo - - Enable virtual files - Enable virtual files + %1 GB of %2 GB remote files synced + %1 GB of %2 GB remote files synced - - Reset virtual files environment - Reset virtual files environment + Free up space … + Free up space … - + + Local storage use + Local storage use + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Error removing "%1": %2 + All synced! + All synced! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + + Request sync + Request sync + + + Syncing + Syncing + + + + FileSystem - Could not remove folder "%1" Could not remove folder "%1" - + + Error removing "%1": %2 + Error removing "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + An error occurred while connecting. Please try again. + + Browser Authentication Browser Authentication - + Copy Link + Copy Link + + Logo Logo - Switch to your browser to connect your account Switch to your browser to connect your account + + + FolderWizardSelectiveSync + + Add Folder Sync + + - - An error occurred while connecting. Please try again. - An error occurred while connecting. Please try again. + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Pick a local folder on your computer to sync + &Choose + + + + Add Folder Sync + - - &Choose … - &Choose … + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Select a remote destination folder + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Create folder - + Folders + Folders + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Refresh - - Folders - Folders + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Main content - - Issue with account %1 - Issue with account %1 + New activities + New activities - - - Issues with several accounts - Issues with several accounts + + Unified search results list + Unified search results list + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Start new conversation? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - New conversation + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - - Cancel - Cancel + The server enforces strict transport security and does not accept untrusted certificates. + The server enforces strict transport security and does not accept untrusted certificates. - - - This will clear the existing conversation. - This will clear the existing conversation. + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + + + OCC::Account - - Ask Assistant … - + File %1 is already locked by %2. + File %1 is already locked by %2. - - Ask Assistant… - Ask Assistant… - - - - Send assistant question - Send assistant question - - - - Start a new assistant chat - Start a new assistant chat - - - - Unified search results list - Unified search results list - - - - New activities - New activities - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - - - - The server enforces strict transport security and does not accept untrusted certificates. - The server enforces strict transport security and does not accept untrusted certificates. + Lock operation on %1 failed with error %2 + Lock operation on %1 failed with error %2 - - - OCC::Account - Public Share Link Public Share Link - - File %1 is already locked by %2. - File %1 is already locked by %2. - - - - Lock operation on %1 failed with error %2 - Lock operation on %1 failed with error %2 - - - Unlock operation on %1 failed with error %2 Unlock operation on %1 failed with error %2 @@ -520,549 +459,396 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? An account was detected from a legacy desktop client. Should the account be imported? - - - Legacy import - Legacy import + Could not import accounts from legacy client configuration. + Could not import accounts from legacy client configuration. - - + Import Import - - Skip - Skip + Legacy import + Legacy import - - Could not import accounts from legacy client configuration. - Could not import accounts from legacy client configuration. + Skip + Skip - + OCC::AccountSettings - - Virtual files - Virtual files + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - - Classic sync - Classic sync + %1 as %2 + %1 as %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronised to this computer any more + %1 in use + %1 in use - - Storage space: … - Storage space: … + %1 of %2 in use + %1 of %2 in use - - Synchronize all - Synchronise all + (experimental) + (experimental) - - Synchronize none - Synchronize none + <p>Could not create local folder <i>%1</i>.</p> + <p>Could not create local folder <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + + + Apply + Apply - Apply manual changes Apply manual changes - - Standard file sync - Standard file sync + Availability + Availability - - Virtual file sync - Virtual file sync + Cancel + Cancel - - Connection settings - Connection settings + Choose what to sync + Choose what to sync - - Apply - Apply + Confirm Folder Sync Connection Removal + Confirm Folder Sync Connection Removal - - - - Cancel - Cancel + Connected to %1. + Connected to %1. - Connected with <server> as <user> Connected with <server> as <user> - - No account configured. - No account configured. - - - - End-to-end Encryption with Virtual Files - End-to-end Encryption with Virtual Files + Connecting to %1 … + Connecting to %1 … - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Connection settings + Connection settings - - - Do not encrypt folder - Do not encrypt folder + Could not encrypt folder because the folder does not exist anymore + Could not encrypt folder because the folder does not exist anymore - - - Encrypt folder - Encrypt folder + Create new folder + Create new folder - - End-to-end Encryption - End-to-end Encryption + Currently there is no storage usage information available. + Currently there is no storage usage information available. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> + Disable support + Disable support - - End-to-end encryption has not been initialized on this account. - End-to-end encryption has not been initialized on this account. + Disable virtual file support … + Disable virtual file support … - - Forget encryption setup - Forget encryption setup + Disable virtual file support? + Disable virtual file support? - Display mnemonic Display mnemonic - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - - - - Warning - Warning + Do not encrypt folder + Do not encrypt folder - - Please wait for the folder to sync before trying to encrypt it. - Please wait for the folder to sync before trying to encrypt it. + Do you want to forget the end-to-end encryption settings for %1 on this device? + Do you want to forget the end-to-end encryption settings for %1 on this device? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + Edit Ignored Files + Edit Ignored Files - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + Enable virtual file support %1 … + Enable virtual file support %1 … - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? + Encrypt + Encrypt - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. + Encrypt folder + Encrypt folder - Encryption failed Encryption failed - - Could not encrypt folder because the folder does not exist anymore - Could not encrypt folder because the folder does not exist anymore + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - - Encrypt - Encrypt + End-to-end Encryption + End-to-end Encryption - - - Edit Ignored Files - Edit Ignored Files + End-to-end Encryption with Virtual Files + End-to-end Encryption with Virtual Files - - - Create new folder - Create new folder + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - - - Availability - Availability + End-to-end encryption has not been initialized on this account. + End-to-end encryption has not been initialized on this account. - - Choose what to sync - Choose what to sync + End-to-end encryption mnemonic + End-to-end encryption mnemonic + + + Expand Memory + + + + Folder creation failed + Folder creation failed - Force sync now Force sync now - - Restart sync - Restart sync + Forget encryption setup + Forget encryption setup - - Remove folder sync connection - Remove folder sync connection + Forget the end-to-end encryption on this device + Forget the end-to-end encryption on this device - - Disable virtual file support … - Disable virtual file support … + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - - Enable virtual file support %1 … - Enable virtual file support %1 … + Migrate certificate to a new one + Migrate certificate to a new one - - (experimental) - (experimental) + No %1 connection configured. + No %1 connection configured. - - Folder creation failed - Folder creation failed + No account configured. + No account configured. - - Confirm Folder Sync Connection Removal - Confirm Folder Sync Connection Removal + Open folder + Open folder + + + Pause sync + Pause sync + + + Please wait for the folder to sync before trying to encrypt it. + Please wait for the folder to sync before trying to encrypt it. - Remove Folder Sync Connection Remove Folder Sync Connection - - Grant access to sync folder - Grant access to sync folder + Remove folder sync connection + Remove folder sync connection - - Access Error - Access Error + Restart sync + Restart sync - - Could not acquire access to the selected folder. Please try again. - Could not acquire access to the selected folder. Please try again. + Resume sync + Resume sync - - Wrong Folder - Wrong Folder + Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 is currently being redirected, or your connection is behind a captive portal. - - Please select the original sync folder: %1 - Please select the original sync folder: %1 + Server %1 is currently in maintenance mode. + Server %1 is currently in maintenance mode. - - - Bookmark Error - Bookmark Error + Server %1 is temporarily unavailable. + Server %1 is temporarily unavailable. - - Could not create a security bookmark for the folder. Please try again. - Could not create a security bookmark for the folder. Please try again. + Server configuration error: %1 at %2. + Server configuration error: %1 at %2. - - Could not resolve the security bookmark. Please try again. - Could not resolve the security bookmark. Please try again. + Set up encryption + Set up encryption - - Disable virtual file support? - Disable virtual file support? + Signed out from %1. + Signed out from %1. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - - - - Disable support - Disable support - - - - End-to-end encryption mnemonic - End-to-end encryption mnemonic - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - - - - Forget the end-to-end encryption on this device - Forget the end-to-end encryption on this device + Standard file sync + Standard file sync - - Do you want to forget the end-to-end encryption settings for %1 on this device? - Do you want to forget the end-to-end encryption settings for %1 on this device? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Storage space: … + Storage space: … - Sync Running Sync Running - - The syncing operation is running.<br/>Do you want to terminate it? - The syncing operation is running.<br/>Do you want to terminate it? + Synchronize all + Synchronise all - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + Synchronize none + Synchronize none - - Currently there is no storage usage information available. - Currently there is no storage usage information available. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - - %1 in use - %1 in use + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - - Connected to %1 (%2). - Connected to %1 (%2). + The server version %1 is unsupported! Proceed at your own risk. + The server version %1 is unsupported! Proceed at your own risk. - - Migrate certificate to a new one - Migrate certificate to a new one + The syncing operation is running.<br/>Do you want to terminate it? + The syncing operation is running.<br/>Do you want to terminate it? - There are folders that have grown in size beyond %1MB: %2 There are folders that have grown in size beyond %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - - - - This account supports end-to-end encryption, but it needs to be set up first. - This account supports end-to-end encryption, but it needs to be set up first. - - - - The virtual files integration does not support end-to-end encryption yet. - The virtual files integration does not support end-to-end encryption yet. + There are folders that were not synchronized because they are external storages: + - - Set up encryption - Set up encryption - - - - Connected to %1. - Connected to %1. - - - - Server %1 is temporarily unavailable. - Server %1 is temporarily unavailable. - - - - Server %1 is currently in maintenance mode. - Server %1 is currently in maintenance mode. - - - - Signed out from %1. - Signed out from %1. - - - - There are folders that were not synchronized because they are too big: - There are folders that were not synchronised because they are too big: - - - - There are folders that were not synchronized because they are external storages: - There are folders that were not synchronised because they are external storages: - - - - There are folders that were not synchronized because they are too big or external storages: - There are folders that were not synchronised because they are too big or external storages: + There are folders that were not synchronized because they are too big or external storages: + - - - Open folder - Open folder - - - - Resume sync - Resume sync + There are folders that were not synchronized because they are too big: + - - Pause sync - Pause sync + This account supports end-to-end encryption, but it needs to be set up first. + This account supports end-to-end encryption, but it needs to be set up first. - - <p>Could not create local folder <i>%1</i>.</p> - <p>Could not create local folder <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> - - %1 of %2 in use - %1 of %2 in use + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - - %1 as %2 - %1 as %2 + Unable to connect to %1. + Unable to connect to %1. - - The server version %1 is unsupported! Proceed at your own risk. - The server version %1 is unsupported! Proceed at your own risk. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronised to this computer any more - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Server %1 is currently being redirected, or your connection is behind a captive portal. + Virtual file sync + Virtual file sync - - Connecting to %1 … - Connecting to %1 … + Warning + Warning - - Unable to connect to %1. - Unable to connect to %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. - - Server configuration error: %1 at %2. - Server configuration error: %1 at %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? - You need to accept the terms of service at %1. You need to accept the terms of service at %1. - - No %1 connection configured. - No %1 connection configured. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + + There was an invalid response to an authenticated WebDAV request There was an invalid response to an authenticated WebDAV request @@ -1070,57 +856,46 @@ This action will abort any currently running synchronization. OCC::AccountState - - Signed out - Signed out + Asking Credentials + Asking Credentials - - Disconnected - Disconnected + Configuration error + Configuration error - Connected Connected - - Service unavailable - Service unavailable + Disconnected + Disconnected - Maintenance mode Maintenance mode - - Redirect detected - Redirect detected + Need the user to accept the terms of service + Need the user to accept the terms of service - Network error Network error - - Configuration error - Configuration error + Redirect detected + Redirect detected - - Asking Credentials - Asking Credentials + Service unavailable + Service unavailable - - Need the user to accept the terms of service - Need the user to accept the terms of service + Signed out + Signed out - Unknown account state Unknown account state @@ -1128,17 +903,14 @@ This action will abort any currently running synchronization. OCC::ActivityListModel - - For more activities please open the Activity app. - For more activities please open the Activity app. - - - Fetching activities … Fetching activities … - + For more activities please open the Activity app. + For more activities please open the Activity app. + + Network error occurred: client will retry syncing. Network error occurred: client will retry syncing. @@ -1146,168 +918,134 @@ This action will abort any currently running synchronization. OCC::AddCertificateDialog - - SSL client certificate authentication - SSL client certificate authentication + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - - This server probably requires a SSL client certificate. - This server probably requires a SSL client certificate. + Browse … + Browse … - Certificate & Key (pkcs12): Certificate & Key (pkcs12): - + Certificate files (*.p12 *.pfx) + Certificate files (*.p12 *.pfx) + + Certificate password: Certificate password: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - - - - Browse … - Browse … + SSL client certificate authentication + SSL client certificate authentication - Select a certificate Select a certificate - - Certificate files (*.p12 *.pfx) - Certificate files (*.p12 *.pfx) - - - - Could not access the selected certificate file. - Could not access the selected certificate file. + This server probably requires a SSL client certificate. + This server probably requires a SSL client certificate. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - - - - newer - newer software version - newer - - - - older - older software version - older + %1 accounts + number of accounts imported + %1 accounts - - ignoring - ignoring + %1 folders + number of folders imported + %1 folders - - deleting - deleting + 1 account + 1 account - - Quit - Quit + 1 folder + 1 folder - Continue Continue - - %1 accounts - number of accounts imported - %1 accounts + Error accessing the configuration file + Error accessing the configuration file - - 1 account - 1 account - - - - %1 folders - number of folders imported - %1 folders - - - - 1 folder - 1 folder + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + Imported %1 and %2 from a legacy desktop client. +%3 - Legacy import Legacy import - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - Imported %1 and %2 from a legacy desktop client. -%3 + Quit + Quit - - Error accessing the configuration file - Error accessing the configuration file + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. - - - OCC::AuthenticationDialog + + deleting + deleting + - - Authentication Required - Authentication Required + ignoring + ignoring - - Enter username and password for "%1" at %2. - Enter username and password for "%1" at %2. + newer + newer software version + newer - - &Username: - &Username: + older + older software version + older + + + OCC::AuthenticationDialog - &Password: &Password: - + + &Username: + &Username: + + + Authentication Required + Authentication Required + + + Enter username and password for "%1" at %2. + Enter username and password for "%1" at %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 Failed to unlock encrypted folder %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -1315,245 +1053,195 @@ This action will abort any currently running synchronization. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Error updating metadata: %1 + + File %1 can not be downloaded because of a local file name clash! File %1 can not be downloaded because of a local file name clash! - + The file %1 is currently in use + The file %1 is currently in use + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Unable to update metadata of new file %1. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 Error updating metadata: %1 - - The file %1 is currently in use - The file %1 is currently in use - - - - OCC::BulkPropagatorJob - - File %1 cannot be uploaded because another file with the same name, differing only in case, exists File %1 cannot be uploaded because another file with the same name, differing only in case, exists - - File contains leading or trailing spaces and couldn't be renamed - File contains leading or trailing spaces and couldn't be renamed + File %1 has invalid modification time. Do not upload to the server. + File %1 has invalid modification time. Do not upload to the server. - File %1 has invalid modified time. Do not upload to the server. File %1 has invalid modified time. Do not upload to the server. - File Removed (start upload) %1 File Removed (start upload) %1 - - File %1 has invalid modification time. Do not upload to the server. - File %1 has invalid modification time. Do not upload to the server. - - - - Local file changed during syncing. It will be resumed. - Local file changed during syncing. It will be resumed. + File contains leading or trailing spaces and couldn't be renamed + File contains leading or trailing spaces and couldn't be renamed - - Local file changed during sync. Local file changed during sync. - + Local file changed during syncing. It will be resumed. + Local file changed during syncing. It will be resumed. + + Network error: %1 Network error: %1 - - Error updating metadata: %1 - Error updating metadata: %1 + Restoration failed: %1 + Restoration failed: %1 - - + The file %1 is currently in use The file %1 is currently in use - The local file was removed during sync. The local file was removed during sync. - - - Restoration failed: %1 - Restoration failed: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Cannot rename file because a file with the same name already exists on the server. Please pick another name. - Could not rename file. Please make sure you are connected to the server. Could not rename file. Please make sure you are connected to the server. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - You don't have the permission to rename this file. Please ask the author of the file to rename it. - - - Failed to fetch permissions with error %1 Failed to fetch permissions with error %1 - Filename contains leading and trailing spaces. Filename contains leading and trailing spaces. - Filename contains leading spaces. Filename contains leading spaces. - Filename contains trailing spaces. Filename contains trailing spaces. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + You don't have the permission to rename this file. Please ask the author of the file to rename it. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 does not support equal file names with only letter casing differences. + + + 0 byte + 0 byte + + Case Clash Conflict Case Clash Conflict - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - The file could not be synced because it generates a case clash conflict with an existing file on this system. + Case clashing file + Case clashing file - Error Error - Existing file Existing file - - file A - file A - - - - - today - today + Filename contains illegal characters: %1 + Filename contains illegal characters: %1 - - - - 0 byte - 0 byte + + Filename contains leading and trailing spaces. + Filename contains leading and trailing spaces. - - - Open existing file - Open existing file + Filename contains leading spaces. + Filename contains leading spaces. - - Case clashing file - Case clashing file + Filename contains trailing spaces. + Filename contains trailing spaces. - - file B - file B + New filename + New filename - - Open clashing file Open clashing file - - Please enter a new name for the clashing file: - Please enter a new name for the clashing file: + Open existing file + Open existing file - - New filename - New filename + Please enter a new name for the clashing file: + Please enter a new name for the clashing file: - Rename file Rename file - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - - %1 does not support equal file names with only letter casing differences. - %1 does not support equal file names with only letter casing differences. - - - - Filename contains leading and trailing spaces. - Filename contains leading and trailing spaces. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + The file could not be synced because it generates a case clash conflict with an existing file on this system. - - Filename contains leading spaces. - Filename contains leading spaces. + Use invalid name + Use invalid name - - Filename contains trailing spaces. - Filename contains trailing spaces. + file A + file A - - Use invalid name - Use invalid name + file B + file B - - Filename contains illegal characters: %1 - Filename contains illegal characters: %1 + today + today - + OCC::CleanupPollsJob - Error writing metadata to the database Error writing metadata to the database @@ -1561,136 +1249,117 @@ This action will abort any currently running synchronization. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - Input PIN code - - - Enter Certificate USB Token PIN: Enter Certificate USB Token PIN: - + Enter E2E passphrase + Enter E2E passphrase + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Input PIN code + + Invalid PIN. Login failed Invalid PIN. Login failed - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> - - - Enter E2E passphrase - Enter E2E passphrase - - + OCC::ConflictDialog - - Sync Conflict - Sync Conflict - - - - - Conflicting versions of %1. - Conflicting versions of %1. + 0 byte + 0 byte - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + <a href="%1">Open local version</a> + <a href="%1">Open local version</a> - - Local version - Local version + <a href="%1">Open server version</a> + <a href="%1">Open server version</a> - - Click to open the file Click to open the file - - - today - today + Conflicting versions of %1. + Conflicting versions of %1. - - - 0 byte - 0 byte + Keep both versions + Keep both versions - - <a href="%1">Open local version</a> - <a href="%1">Open local version</a> + Keep local version + Keep local version - - Server version - Server version + Keep selected version + Keep selected version - - <a href="%1">Open server version</a> - <a href="%1">Open server version</a> + Keep server version + Keep server version - - - - Keep selected version - Keep selected version + + Local version + Local version - Open local version Open local version - Open server version Open server version - - Keep both versions - Keep both versions + Server version + Server version - - Keep local version - Keep local version + Sync Conflict + Sync Conflict - - Keep server version - Keep server version + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - + + today + today + + OCC::ConflictSolver - - - Error + Confirm deletion + Confirm deletion + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + Do you want to delete the directory <i>%1</i> and all its contents permanently? + + + Do you want to delete the file <i>%1</i> permanently? + Do you want to delete the file <i>%1</i> permanently? + + + Error Error - - Moving file failed: %1 @@ -1698,224 +1367,212 @@ This action will abort any currently running synchronization. %1 + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - Do you want to delete the directory <i>%1</i> and all its contents permanently? + Authentication error: Either username or password are wrong. + Authentication error: Either username or password are wrong. - - Do you want to delete the file <i>%1</i> permanently? - Do you want to delete the file <i>%1</i> permanently? + No %1 account configured + The placeholder will be the application name. Please keep it + No %1 account configured - - Confirm deletion - Confirm deletion + Please update to the latest server and restart the client. + Please update to the latest server and restart the client. - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - No %1 account configured + The configured server for this client is too old + The configured server for this client is too old - + The provided credentials are not correct + The provided credentials are not correct + + Timeout Timeout + + + OCC::DataProtectionPage - - The configured server for this client is too old - The configured server for this client is too old + Agree + - - Please update to the latest server and restart the client. - Please update to the latest server and restart the client. + Form + Form - - Authentication error: Either username or password are wrong. - Authentication error: Either username or password are wrong. + Settings + Settings - - The provided credentials are not correct - The provided credentials are not correct + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Error while canceling deletion of a file + Back + Back - - Error while canceling deletion of %1 - Error while canceling deletion of %1 + Form + Form + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Server error: PROPFIND reply is not XML formatted! + Error while canceling deletion of %1 + Error while canceling deletion of %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + + Error while canceling deletion of a file + Error while canceling deletion of a file + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Encrypted metadata setup error! - Encrypted metadata setup error: initial signature from server is empty. Encrypted metadata setup error: initial signature from server is empty. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Server error: PROPFIND reply is not XML formatted! + - - Error while opening directory %1 - Error while opening directory %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Directory not accessible on client, permission denied - Directory not found: %1 Directory not found: %1 - - Filename encoding is not valid - Filename encoding is not valid + Error while opening directory %1 + Error while opening directory %1 - Error while reading directory %1 Error while reading directory %1 - + + Filename encoding is not valid + Filename encoding is not valid + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Could not start editing locally. + An error occurred during data retrieval. + An error occurred during data retrieval. - - An error occurred during setup. An error occurred during setup. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. + An error occurred trying to synchronise the file to edit locally. + An error occurred trying to synchronise the file to edit locally. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Could not find a file for local editing. Make sure it is not excluded via selective sync. - - - - An error occurred during data retrieval. - An error occurred during data retrieval. - - - - - An error occurred trying to synchronise the file to edit locally. - An error occurred trying to synchronise the file to edit locally. - - - - Server error: PROPFIND reply is not XML formatted! - Server error: PROPFIND reply is not XML formatted! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Could not find a remote file info for local editing. Make sure its path is valid. Could not find a remote file info for local editing. Make sure its path is valid. - - Invalid local file path. - Invalid local file path. - - - Could not open %1 Could not open %1 - - Please try again. - Please try again. + Could not start editing locally. + Could not start editing locally. - File %1 already locked. File %1 already locked. - - + File %1 could not be locked. + File %1 could not be locked. + + + File %1 now locked. + File %1 now locked. + + + Invalid local file path. + Invalid local file path. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. - - File %1 now locked. - File %1 now locked. + Please try again. + Please try again. - - File %1 could not be locked. - File %1 could not be locked. + Server error: PROPFIND reply is not XML formatted! + Server error: PROPFIND reply is not XML formatted! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Could not validate the request to open a file from server. - Please try again. Please try again. @@ -1923,404 +1580,308 @@ This action will abort any currently running synchronization. OCC::EditLocallyVerificationJob - - Invalid token received. - Invalid token received. - - - - - - Please try again. - Please try again. - - - - Invalid file path was provided. - Invalid file path was provided. + An error occurred trying to verify the request to edit locally. + An error occurred trying to verify the request to edit locally. - - + Could not find an account for local editing. Could not find an account for local editing. - Could not start editing locally. Could not start editing locally. - - An error occurred trying to verify the request to edit locally. - An error occurred trying to verify the request to edit locally. + Invalid file path was provided. + Invalid file path was provided. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. + Invalid token received. + Invalid token received. - + + Please try again. + Please try again. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Error fetching encrypted folder ID. + + Error fetching metadata. Error fetching metadata. - - - Error locking folder. Error locking folder. - - Error fetching encrypted folder ID. - Error fetching encrypted folder ID. - - - Error parsing or decrypting metadata. Error parsing or decrypting metadata. - Failed to upload metadata Failed to upload metadata - OCC::FileActionsModel - - - Your account is offline %1. - account url - Your account is offline %1. - - - - The file ID is empty for %1. - file name - The file ID is empty for %1. - - - - The file type for %1 is not valid. - file name - The file type for %1 is not valid. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - No file actions were returned by the server for %1 files. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - %1 did not succeed, please try again later. If you need help, contact your server administrator. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 done. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - %1 second(s) ago%1 second(s) ago - - - - %1 minute(s) ago - minutes elapsed since file last modified - %1 minute(s) ago%1 minute(s) ago + %1 day(s) ago + days elapsed since file last modified + + %1 day(s) ago + %1 day(s) ago + - %1 hour(s) ago hours elapsed since file last modified - %1 hour(s) ago%1 hour(s) ago + + %1 hour(s) ago + %1 hour(s) ago + - - %1 day(s) ago - days elapsed since file last modified - %1 day(s) ago%1 day(s) ago + %1 minute(s) ago + minutes elapsed since file last modified + + %1 minute(s) ago + %1 minute(s) ago + - %1 month(s) ago months elapsed since file last modified - %1 month ago%1 months ago + + %1 month ago + %1 months ago + + + + %1 second(s) ago + seconds elapsed since file last modified + + %1 second(s) ago + %1 second(s) ago + - %1 year(s) ago years elapsed since file last modified - %1 year ago%1 years ago + + %1 year ago + %1 years ago + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Locked by %1 - Expires in %2 minuteLocked by %1 - Expires in %2 minutes + + Locked by %1 - Expires in %2 minute + Locked by %1 - Expires in %2 minutes + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - - + OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Unable to open the Browser, please copy the link to your Browser. + Copy Link + Copy Link - - Waiting for authorization - Waiting for authorization + Error + Error + + + Link copied to clipboard. + Link copied to clipboard. + + + Open Browser + Open Browser - Polling for authorization Polling for authorization - Starting authorization Starting authorization - - Link copied to clipboard. - Link copied to clipboard. + Switch to your browser to connect your account + Switch to your browser to connect your account + + + Unable to open the Browser, please copy the link to your Browser. + Unable to open the Browser, please copy the link to your Browser. - - Open Browser - Open Browser - - - - Copy Link - Copy Link + Waiting for authorization + Waiting for authorization - + OCC::Folder - - - %1 has been removed. - %1 names a file. - %1 has been removed. - - - - %1 has been updated. - %1 names a file. - %1 has been updated. + + %1 and %n other file(s) are currently locked. + + %1 and %n other file(s) are currently locked. + %1 and %n other file(s) are currently locked. + - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 has been renamed to %2. + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 and %n other file could not be synced due to errors. See the log for details. + %1 and %n other files could not be synced due to errors. See the log for details. + - - - %1 has been moved to %2. - %1 has been moved to %2. + + %1 and %n other file(s) have been added. + + %1 and %n other file(s) have been added. + %1 and %n other file(s) have been added. + - %1 and %n other file(s) have been removed. - %1 and %n other file have been removed.%1 and %n other files have been removed. + + %1 and %n other file have been removed. + %1 and %n other files have been removed. + - - - Please choose a different location. The folder %1 doesn't exist. - Please choose a different location. The folder %1 doesn't exist. + + %1 and %n other file(s) have been updated. + + %1 and %n other file have been updated. + %1 and %n other files have been updated. + - - Please choose a different location. %1 isn't a valid folder. - Please choose a different location. %1 isn't a valid folder. + %1 could not be synced due to an error. See the log for details. + %1 could not be synced due to an error. See the log for details. - - Please choose a different location. %1 isn't a readable folder. - Please choose a different location. %1 isn't a readable folder. + %1 has a sync conflict. Please check the conflict file! + %1 has a sync conflict. Please check the conflict file! - - %1 and %n other file(s) have been added. - %1 and %n other file(s) have been added.%1 and %n other file(s) have been added. + %1 has and %n other file(s) have sync conflicts. + + %1 has and %n other file have sync conflicts. + %1 has and %n other files have sync conflicts. + - %1 has been added. %1 names a file. %1 has been added. - - %1 and %n other file(s) have been updated. - %1 and %n other file have been updated.%1 and %n other files have been updated. - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 has been renamed to %2 and %n other file have been renamed.%1 has been renamed to %2 and %n other files have been renamed. - - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 has been moved to %2 and %n other file have been moved.%1 has been moved to %2 and %n other files have been moved. - - - - %1 has and %n other file(s) have sync conflicts. - %1 has and %n other file have sync conflicts.%1 has and %n other files have sync conflicts. + + %1 has been moved to %2 and %n other file have been moved. + %1 has been moved to %2 and %n other files have been moved. + - - %1 has a sync conflict. Please check the conflict file! - %1 has a sync conflict. Please check the conflict file! - - - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 and %n other file could not be synced due to errors. See the log for details.%1 and %n other files could not be synced due to errors. See the log for details. + %1 has been moved to %2. + %1 has been moved to %2. - - %1 could not be synced due to an error. See the log for details. - %1 could not be synced due to an error. See the log for details. + %1 has been removed. + %1 names a file. + %1 has been removed. - - %1 and %n other file(s) are currently locked. - %1 and %n other file(s) are currently locked.%1 and %n other file(s) are currently locked. - - - - %1 is currently locked. - %1 is currently locked. - - - - Sync Activity - Sync Activity + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 has been renamed to %2 and %n other file have been renamed. + %1 has been renamed to %2 and %n other files have been renamed. + - - Could not read system exclude file - Could not read system exclude file + %1 has been renamed to %2. + %1 and %2 name files. + %1 has been renamed to %2. - - A new folder larger than %1 MB has been added: %2. - - A new folder larger than %1 MB has been added: %2. - + %1 has been updated. + %1 names a file. + %1 has been updated. - - A folder from an external storage has been added. - - A folder from an external storage has been added. - + %1 is currently locked. + %1 is currently locked. - - Please go in the settings to select it if you wish to download it. - Please go in the settings to select it if you wish to download it. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 A folder has surpassed the set folder size limit of %1MB: %2. %3 - - Keep syncing - Keep syncing - - - - Stop syncing - Stop syncing - - - - The folder %1 has surpassed the set folder size limit of %2MB. - The folder %1 has surpassed the set folder size limit of %2MB. - - - - Would you like to stop syncing this folder? - Would you like to stop syncing this folder? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2333,210 +1894,206 @@ This means that the synchronization client might not upload local changes immedi %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - Virtual file download failed with code "%1", status "%2" and error message "%3" + Could not read system exclude file + Could not read system exclude file - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Keep syncing + Keep syncing - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. + Please choose a different location. %1 isn't a readable folder. + Please choose a different location. %1 isn't a readable folder. - - Remove all files? - Remove all files? + Please choose a different location. %1 isn't a valid folder. + Please choose a different location. %1 isn't a valid folder. + + + Please choose a different location. The folder %1 doesn't exist. + Please choose a different location. The folder %1 doesn't exist. + + + Please go in the settings to select it if you wish to download it. + Please go in the settings to select it if you wish to download it. - Proceed with Deletion Proceed with Deletion - - Restore Files to Server - Restore Files to Server + Remove all files? + Remove all files? - Restore Files from Server Restore Files from Server - - - OCC::FolderCreationDialog - - - Create new folder - Create new folder - - - - Enter folder name - Enter folder name + + Restore Files to Server + Restore Files to Server - - Folder already exists - Folder already exists + Stop syncing + Stop syncing - - Error - Error + Sync Activity + Sync Activity - - Could not create a folder! Check your write permissions. - Could not create a folder! Check your write permissions. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - - - OCC::FolderMan - - Could not reset folder state - Could not reset folder state + The folder %1 has surpassed the set folder size limit of %2MB. + The folder %1 has surpassed the set folder size limit of %2MB. - - (backup) - (backup) + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - - (backup %1) - (backup %1) + Virtual file download failed with code "%1", status "%2" and error message "%3" + Virtual file download failed with code "%1", status "%2" and error message "%3" - - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + Would you like to stop syncing this folder? + Would you like to stop syncing this folder? + + + OCC::FolderCreationDialog - - Undefined state. - Undefined state. + %1 Create new folder + - - Waiting to start syncing. - Waiting to start syncing. + Could not create a folder! Check your write permissions. + Could not create a folder! Check your write permissions. - - - Preparing for sync. - Preparing for sync. + + Create new folder + Create new folder - - Syncing %1 of %2 (A few seconds left) - Syncing %1 of %2 (A few seconds left) + Enter folder name + Enter folder name - - Syncing %1 of %2 (%3 left) - Syncing %1 of %2 (%3 left) + Error + Error - - Syncing %1 of %2 - Syncing %1 of %2 + Folder already exists + Folder already exists + + + OCC::FolderMan - - Syncing %1 (A few seconds left) - Syncing %1 (A few seconds left) + %1 (Sync is paused) + %1 (Sync is paused) - - - Syncing %1 (%2 left) - Syncing %1 (%2 left) + + (backup %1) + - - Syncing %1 - Syncing %1 + (backup) + - - Sync is running. - Sync is running. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - - Sync finished with unresolved conflicts. - Sync finished with unresolved conflicts. + Could not reset folder state + Could not reset folder state - Last sync was successful. Last sync was successful. - - Setup error. - Setup error. - - - - Sync request was cancelled. - Sync request was cancelled. - - - - Please choose a different location. The selected folder isn't valid. - Please choose a different location. The selected folder isn't valid. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Please choose a different location. %1 is already being used as a sync folder for %2. - - Please choose a different location. %1 is already being used as a sync folder. Please choose a different location. %1 is already being used as a sync folder. - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Please choose a different location. %1 is already contained in a folder used as a sync folder. + + Please choose a different location. The path %1 doesn't exist. Please choose a different location. The path %1 doesn't exist. - Please choose a different location. The path %1 isn't a folder. Please choose a different location. The path %1 isn't a folder. - - - Please choose a different location. You don't have enough permissions to write to %1. + Please choose a different location. The selected folder isn't valid. + Please choose a different location. The selected folder isn't valid. + + + Please choose a different location. You don't have enough permissions to write to %1. folder location Please choose a different location. You don't have enough permissions to write to %1. - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Please choose a different location. %1 is already contained in a folder used as a sync folder. + Preparing for sync. + Preparing for sync. - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Please choose a different location. %1 is already being used as a sync folder for %2. + Setup error. + Setup error. + + + Sync finished with unresolved conflicts. + Sync finished with unresolved conflicts. + + + Sync is paused. + Sync is paused. + + + Sync is running. + Sync is running. + + + Sync request was cancelled. + Sync request was cancelled. + + + Syncing %1 + Syncing %1 + + + Syncing %1 (%2 left) + Syncing %1 (%2 left) + + + Syncing %1 (A few seconds left) + Syncing %1 (A few seconds left) + + + Syncing %1 of %2 + Syncing %1 of %2 + + + Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (%3 left) + + + Syncing %1 of %2 (A few seconds left) + Syncing %1 of %2 (A few seconds left) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2547,207 +2104,161 @@ To resolve this issue: please remove %1 from one of the accounts and create a ne For advanced users: this issue might be related to multiple sync database files found in one folder. Please check %1 for outdated and unused .sync_*.db files and remove them. - - Sync is paused. - Sync is paused. - - - - Please open the app settings to grant access to the sync folders. - Please open the app settings to grant access to the sync folders. + Undefined state. + Undefined state. - - %1 (Sync is paused) - %1 (Sync is paused) + Waiting to start syncing. + Waiting to start syncing. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Add Folder Sync Connection - - - - - - Grant access - Grant access + Add Folder Sync + - File File - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - You need to be connected to add a folder + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Click this button to add a folder to synchronise. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 of %4) - - Could not decrypt! - Could not decrypt! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Error while loading the list of folders from the server. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 of %2, file %3 of %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. + %5 left, %1 of %2, file %3 of %4 + %5 left, %1 of %2, file %3 of %4 - - Virtual file support is enabled. - Virtual file support is enabled. + , + , - - Signed out - Signed out + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + A few seconds left, %1 of %2, file %3 of %4 - - Synchronizing virtual files in local folder - Synchronizing virtual files in local folder + About to start syncing + About to start syncing - - Synchronizing files in local folder - Synchronizing files in local folder + Checking for changes in local "%1" + Checking for changes in local "%1" - Checking for changes in remote "%1" Checking for changes in remote "%1" - - Checking for changes in local "%1" - Checking for changes in local "%1" - - - - Syncing local and remote changes - Syncing local and remote changes + Click this button to add a folder to synchronize. + Click this button to add a folder to synchronise. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + Could not decrypt! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s - - File %1 of %2 - File %1 of %2 - - - - There are unresolved conflicts. Click for details. - There are unresolved conflicts. Click for details. - - - - - , - , + Error while loading the list of folders from the server. + Error while loading the list of folders from the server. - Fetching folder list from server … Fetching folder list from server … - - ↓ %1/s - ↓ %1/s + File %1 of %2 + File %1 of %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Upload %1/s + Preparing to sync … + Preparing to sync … + + + Signed out + Signed out - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Synchronizing files in local folder - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 of %4) + Synchronizing virtual files in local folder + Synchronizing virtual files in local folder - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Syncing local and remote changes - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - A few seconds left, %1 of %2, file %3 of %4 + There are unresolved conflicts. Click for details. + There are unresolved conflicts. Click for details. - - %5 left, %1 of %2, file %3 of %4 - %5 left, %1 of %2, file %3 of %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Upload %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 of %2, file %3 of %4 + Virtual file support is enabled. + Virtual file support is enabled. - Waiting for %n other folder(s) … - Waiting for %n other folder …Waiting for %n other folders … + + Waiting for %n other folder … + Waiting for %n other folders … + - - About to start syncing - About to start syncing + You need to be connected to add a folder + You need to be connected to add a folder - - Preparing to sync … - Preparing to sync … + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. The watcher did not receive a test notification. @@ -2755,7 +2266,6 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. @@ -2763,12 +2273,10 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard - Add Folder Sync Connection Add Folder Sync Connection - Add Sync Connection Add Sync Connection @@ -2776,362 +2284,312 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Click to select a local folder to sync. - Enter the path to the local folder. Enter the path to the local folder. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Select the source folder - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Create Remote Folder + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Enter the name of the new folder to be created below "%1": + Authentication failed accessing %1 + Authentication failed accessing %1 - - Folder was successfully created on %1. - Folder was successfully created on %1. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Authentication failed accessing %1 + Choose this to sync the entire account + Choose this to sync the entire account + + + Create Remote Folder + Create Remote Folder + + + Create folder + Create folder + + + Enter the name of the new folder to be created below "%1": + Enter the name of the new folder to be created below "%1": - Failed to create the folder on %1. Please check manually. Failed to create the folder on %1. Please check manually. - Failed to list a folder. Error: %1 Failed to list a folder. Error: %1 - - Choose this to sync the entire account - Choose this to sync the entire account + Folder was successfully created on %1. + Folder was successfully created on %1. - - Please choose a different location. %1 is already being synced to %2. Please choose a different location. %1 is already being synced to %2. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Refresh + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. You are already syncing the subfolder %1 at %2. - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Use virtual files instead of downloading content immediately %1 - - - - (experimental) (experimental) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + + + + Use virtual files instead of downloading content immediately %1 + Use virtual files instead of downloading content immediately %1 - Virtual files are not supported at the selected location Virtual files are not supported at the selected location - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + + - OCC::GETFileJob + OCC::GeneralSettings - - No E-Tag received from server, check Proxy/Gateway - No E-Tag received from server, check Proxy/Gateway + &Automatically check for updates + &Automatically check for updates - - We received a different E-Tag for resuming. Retrying next time. - We received a different E-Tag for resuming. Retrying next time. + &Launch on System Startup + &Launch on System Startup - - We received an unexpected download Content-Length. - We received an unexpected download Content-Length. - - - - Server returned wrong content-range - Server returned wrong content-range - - - - Connection Timeout - Connection Timeout - - - - OCC::GeneralSettings - - - Show Call Notifications - Show Call Notifications - - - - For System Tray - For System Tray + &Restart && Update + &Restart && Update - - Show Chat Notifications - Show Chat Notifications + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - - Show Server &Notifications - Show Server &Notifications + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - Advanced Advanced - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB - - - Ask for confirmation before synchronizing external storages Ask for confirmation before synchronising external storages - - &Launch on System Startup - &Launch on System Startup - - - - General Settings - General Settings - - - - General settings - General settings + Ask for confirmation before synchronizing new folders larger than + Ask for confirmation before synchronizing new folders larger than - - Use &Monochrome Icons - Use &Monochrome Icons + Automatically disable synchronisation of folders that overcome limit + Automatically disable synchronisation of folders that overcome limit - - Show &Quota Warning Notifications - Show &Quota Warning Notifications + Cancel + Cancel - - Ask for confirmation before synchronizing new folders larger than - Ask for confirmation before synchronizing new folders larger than + Change update channel + Change update channel - - Notify when synchronised folders grow larger than specified limit - Notify when synchronised folders grow larger than specified limit + Changing update channel? + Changing update channel? - - Automatically disable synchronisation of folders that overcome limit - Automatically disable synchronisation of folders that overcome limit + Check Now + Check Now - - Move removed files to trash - Move removed files to trash + Create Debug Archive + Create Debug Archive - - Show sync folders in &Explorer's navigation pane - Show sync folders in &Explorer's navigation pane + Data Protection + - - Server poll interval - Server poll interval + Debug Archive Created + Debug Archive Created - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + Desktop client x.x.x + Desktop client x.x.x - Edit &Ignored Files Edit &Ignored Files - - - Create Debug Archive - Create Debug Archive + For System Tray + For System Tray - - Info - Info + General Settings + General Settings - - Desktop client x.x.x - Desktop client x.x.x + Legal Notice + Legal Notice - - Update channel - Update channel + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - &Automatically check for updates + More Information + + + + Move removed files to trash + Move removed files to trash - - Check Now - Check Now + Necessary data + - - Usage Documentation - Usage Documentation + Notify when synchronised folders grow larger than specified limit + Notify when synchronised folders grow larger than specified limit - - Legal Notice - Legal Notice + Open Source Software + - - Restore &Default - Restore &Default + Privacy Policy + - - &Restart && Update - &Restart && Update + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redact information deemed sensitive before sharing! Debug archive created at %1 - - Server notifications that require attention. - Server notifications that require attention. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - Show chat notification dialogs. + Restore &Default + Restore &Default - - Show call notification dialogs. - Show call notification dialogues. + Restore to &%1 + Restore to &%1 - - Show notification when quota usage exceeds 80%. - Show notification when quota usage exceeds 80%. + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - You cannot disable autostart because system-wide autostart is enabled. + Server notifications that require attention. + Server notifications that require attention. - - Restore to &%1 - Restore to &%1 + Server poll interval + Server poll interval - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - Connected to an enterprise system. Update channel (%1) cannot be changed. + Show &Quota Warning Notifications + Show &Quota Warning Notifications - - stable - stable + Show Call Notifications + Show Call Notifications - - beta - beta + Show Chat Notifications + Show Chat Notifications - - daily - daily + Show Server &Notifications + Show Server &Notifications - - enterprise - enterprise + Show call notification dialogs. + Show call notification dialogues. - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + Show chat notification dialogs. + Show chat notification dialogs. - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + Show notification when quota usage exceeds 80%. + Show notification when quota usage exceeds 80%. - - Changing update channel? - Changing update channel? + Show sync folders in &Explorer's navigation pane + Show sync folders in &Explorer's navigation pane - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable @@ -3141,70 +2599,80 @@ Downgrading versions is not possible immediately: changing from stable to enterp - - Change update channel - Change update channel + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Cancel + Update channel + Update channel + + + Updates + + + + Usage Documentation + Usage Documentation - - Login Item Requires Approval - Login Item Requires Approval + Use &Monochrome Icons + Use &Monochrome Icons - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. + You cannot disable autostart because system-wide autostart is enabled. + You cannot disable autostart because system-wide autostart is enabled. - Zip Archives Zip Archives - - Failed to Access File - Failed to Access File + beta + beta + + + daily + daily - - Could not access the selected location. Please try again or choose a different location. - Could not access the selected location. Please try again or choose a different location. + enterprise + enterprise - - Debug Archive Created - Debug Archive Created + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redact information deemed sensitive before sharing! Debug archive created at %1 + stable + stable - + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Password for share required + Connection Timeout + Connection Timeout + + + No E-Tag received from server, check Proxy/Gateway + No E-Tag received from server, check Proxy/Gateway - - Please enter a password for your link share: - Please enter a password for your link share: + Server returned wrong content-range + Server returned wrong content-range - - Sharing error - Sharing error + We received a different E-Tag for resuming. Retrying next time. + We received a different E-Tag for resuming. Retrying next time. + + + We received an unexpected download Content-Length. + We received an unexpected download Content-Length. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3212,54 +2680,57 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - - - OCC::HttpCredentialsGui + + Password for share required + Password for share required + - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Please enter a password for your link share: + Please enter a password for your link share: - - Reading from keychain failed with error: "%1" - Reading from keychain failed with error: "%1" + Sharing error + Sharing error + + + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + <a href="%1">Click here</a> to request an app password from the web interface. + + Enter Password Enter Password - - <a href="%1">Click here</a> to request an app password from the web interface. - <a href="%1">Click here</a> to request an app password from the web interface. + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - + + Reading from keychain failed with error: "%1" + Reading from keychain failed with error: "%1" + + OCC::IgnoreListEditor - - Ignored Files Editor - Ignored Files Editor + Files Ignored by Patterns + Files Ignored by Patterns - Global Ignore Settings Global Ignore Settings - - Sync hidden files - Sync hidden files + Ignored Files Editor + Ignored Files Editor - - Files Ignored by Patterns - Files Ignored by Patterns + Sync hidden files + Sync hidden files - This entry is provided by the system at "%1" and cannot be modified in this view. This entry is provided by the system at "%1" and cannot be modified in this view. @@ -3267,32 +2738,26 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListTableWidget - - Pattern - Pattern + Add + Add - + Add a new ignore pattern: + Add a new ignore pattern: + + Allow Deletion Allow Deletion - - Add - Add - - - - Remove - Remove + Cannot write changes to "%1". + Cannot write changes to "%1". - - Remove all - Remove all + Could not open file + Could not open file - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3301,158 +2766,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - - Could not open file - Could not open file + Ignore Pattern + - - Cannot write changes to "%1". - Cannot write changes to "%1". + Pattern + Pattern - - Add Ignore Pattern - Add Ignore Pattern + Remove + Remove - - Add a new ignore pattern: - Add a new ignore pattern: + Remove all + Remove all - + OCC::InvalidFilenameDialog - - Invalid filename - Invalid filename + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - - The file could not be synced because it contains characters which are not allowed on this system. - The file could not be synced because its name contains characters which are not allowed on this system. + Checking rename permissions … + Checking rename permissions … - - Error - Error + Could not rename file. Please make sure you are connected to the server. + Could not rename file. Please make sure you are connected to the server. - - Please enter a new name for the file: - Please enter a new name for the file: + Could not rename local file. %1 + Could not rename local file. %1 - - - New filename - New filename + + Error + Error - - Rename file - Rename file + Failed to fetch permissions with error %1 + Failed to fetch permissions with error %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - The file "%1" could not be synced because the name contains characters which are not allowed on this system. + Filename contains illegal characters: %1 + Filename contains illegal characters: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + Filename contains leading and trailing spaces. + Filename contains leading and trailing spaces. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - The file "%1" could not be synced because the name contains characters which are not allowed on the server. + Filename contains leading spaces. + Filename contains leading spaces. - - The following characters are not allowed: %1 - The following characters are not allowed: %1 + Filename contains trailing spaces. + Filename contains trailing spaces. - - The following basenames are not allowed: %1 - The following basenames are not allowed: %1 + Invalid filename + Invalid filename - - The following filenames are not allowed: %1 - The following filenames are not allowed: %1 + New filename + New filename - - The following file extensions are not allowed: %1 - The following file extensions are not allowed: %1 + Please enter a new name for the file: + Please enter a new name for the file: - - Checking rename permissions … - Checking rename permissions … + Rename file + Rename file - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - You don't have the permission to rename this file. Please ask the author of the file to rename it. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. - - Failed to fetch permissions with error %1 - Failed to fetch permissions with error %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. - - Filename contains leading and trailing spaces. - Filename contains leading and trailing spaces. + The file could not be synced because it contains characters which are not allowed on this system. + The file could not be synced because its name contains characters which are not allowed on this system. - - Filename contains leading spaces. - Filename contains leading spaces. + The following basenames are not allowed: %1 + The following basenames are not allowed: %1 - - Filename contains trailing spaces. - Filename contains trailing spaces. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - - Use invalid name - Use invalid name + The following characters are not allowed: %1 + The following characters are not allowed: %1 - - Filename contains illegal characters: %1 - Filename contains illegal characters: %1 + The following file extensions are not allowed: %1 + The following file extensions are not allowed: %1 - - Could not rename file. Please make sure you are connected to the server. - Could not rename file. Please make sure you are connected to the server. + The following filenames are not allowed: %1 + The following filenames are not allowed: %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Use invalid name + Use invalid name - - Could not rename local file. %1 - Could not rename local file. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + You don't have the permission to rename this file. Please ask the author of the file to rename it. - + OCC::LegacyAccountSelectionDialog - Legacy import Legacy import - Select the accounts to import from the legacy configuration: Select the accounts to import from the legacy configuration: @@ -3460,36 +2895,37 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LegalNotice - - - Legal notice - Legal notice - - - - Close - Close - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - + + Close + Close + + + Legal notice + Legal notice + + OCC::LogBrowser - + Enable logging to temporary folder + Enable logging to temporary folder + + Log Output Log Output - + Open folder + Open folder + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3498,415 +2934,393 @@ Since log files can get large, the client will start a new one for each sync run If enabled, logs will be written to %1 - - Enable logging to temporary folder - Enable logging to temporary folder - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. This setting persists across client restarts. Note that using any logging command line options will override this setting. - - - Open folder - Open folder - - + OCC::Logger - - - Error - Error - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> - + + Error + Error + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Could not start editing locally. - - - An error occurred during setup. An error occurred during setup. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Could not get file ID. Could not get file ID. - Could not get file identifier. Could not get file identifier. - + Could not start editing locally. + Could not start editing locally. + + The file identifier is empty. The file identifier is empty. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - New Version Available + Download Bandwidth + Download Bandwidth - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + HTTP(S) proxy + HTTP(S) proxy - - Update Failed - Update Failed + Host + Host - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + Hostname of proxy server + Hostname of proxy server - - Ask again later - Ask again later + KBytes/s + KBytes/s - - Restart and update - Restart and update + Limit automatically + Limit automatically - - Update manually - Update manually + Limit to + Limit to - - Skip this time - Skip this time + Limit to 3/4 of estimated bandwidth + Limit to 3/4 of estimated bandwidth - - Get update - Get update + Manually specify proxy + Manually specify proxy - - - OCC::NetworkSettings - - Proxy Settings - Proxy Settings + No limit + No limit - - Use system proxy - Use system proxy + No proxy + No proxy - - Host - Host + Note: proxy settings have no effects for accounts on localhost + Note: proxy settings have no effects for accounts on localhost - - Proxy server requires authentication - Proxy server requires authentication + Password for proxy server + Password for proxy server - - Download Bandwidth - Download Bandwidth + Proxy Settings + Proxy Settings - - - Limit to - Limit to + Proxy server requires authentication + Proxy server requires authentication - - - Limit to 3/4 of estimated bandwidth - Limit to 3/4 of estimated bandwidth + SOCKS5 proxy + SOCKS5 proxy - - - - Limit automatically - Limit automatically + + Upload Bandwidth + Upload Bandwidth - - - KBytes/s - KBytes/s + Use system proxy + Use system proxy - - Note: proxy settings have no effects for accounts on localhost - Note: proxy settings have no effects for accounts on localhost + Username for proxy server + Username for proxy server + + + OCC::NSISUpdater - - Manually specify proxy - Manually specify proxy + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - - No proxy - No proxy + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - - - No limit - No limit + Ask again later + Ask again later - - Upload Bandwidth - Upload Bandwidth + Get update + Get update - - - Hostname of proxy server - Hostname of proxy server + + New Version Available + New Version Available - - Username for proxy server - Username for proxy server + Restart and update + Restart and update - - Password for proxy server - Password for proxy server + Skip this time + Skip this time - - HTTP(S) proxy - HTTP(S) proxy + Update Failed + Update Failed - - SOCKS5 proxy - SOCKS5 proxy + Update manually + Update manually - + OCC::OCUpdater - - Could not check for new updates. - Could not check for new updates. + %1 available. Restart application to start the update. + %1 available. Restart application to start the update. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Checking update server … Checking update server … - - New %1 update ready - New %1 update ready + Could not check for new updates. + Could not check for new updates. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Could not download update. Please open %1 to download the update manually. + Could not download update. Please open %1 to download the update manually. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Downloading %1 … Downloading %1 … - - %1 available. Restart application to start the update. - %1 available. Restart application to start the update. + New %1 is available. Please open %2 to download the update. + New %1 is available. Please open %2 to download the update. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. - - Could not download update. Please open %1 to download the update manually. - Could not download update. Please open %1 to download the update manually. + New %1 update ready + New %1 update ready - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - New %1 is available. Please open <a href='%2'>%2</a> to download the update. + No updates available. Your installation is the latest version. + No updates available. Your installation is the latest version. - - New %1 is available. Please open %2 to download the update. - New %1 is available. Please open %2 to download the update. + Update Check + Update Check - - + Update status is unknown: Did not check for new updates. Update status is unknown: Did not check for new updates. - You are using the %1 update channel. Your installation is the latest version. You are using the %1 update channel. Your installation is the latest version. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - No updates available. Your installation is the latest version. + %1 folder "%2" is synced to local folder "%3" + %1 folder "%2" is synced to local folder "%3" - - Update Check - Update Check + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 free space - - - OCC::OwncloudAdvancedSetupPage - - Connect - Connect + (%1) + (%1) - - (experimental) (experimental) - - - Use &virtual files instead of downloading content immediately %1 - Use &virtual files instead of downloading content immediately %1 + Connect + Connect - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + In Finder's "Locations" sidebar section + In Finder's "Locations" sidebar section - - - %1 folder "%2" is synced to local folder "%3" - %1 folder "%2" is synced to local folder "%3" + + Local Sync Folder + Local Sync Folder - Sync the folder "%1" Sync the folder "%1" - - Warning: The local folder is not empty. Pick a resolution! - Warning: The local folder is not empty. Pick a resolution! + There isn't enough free space in the local folder! + There isn't enough free space in the local folder! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 free space + Use &virtual files instead of downloading content immediately %1 + Use &virtual files instead of downloading content immediately %1 - Virtual files are not supported at the selected location Virtual files are not supported at the selected location - - Local Sync Folder - Local Sync Folder + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Warning: The local folder is not empty. Pick a resolution! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - There isn't enough free space in the local folder! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - - In Finder's "Locations" sidebar section - In Finder's "Locations" sidebar section + Configure client-side TLS certificate + Configure client-side TLS certificate - - - OCC::OwncloudConnectionMethodDialog - Connection failed Connection failed - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + Retry unencrypted over HTTP (insecure) + Retry unencrypted over HTTP (insecure) - Select a different URL Select a different URL + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Retry unencrypted over HTTP (insecure) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Configure client-side TLS certificate + Account %1: %2 + Account %1: %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + Account synchronization is disabled + Account synchronisation is disabled - + + Checking for changes in local "%1" + Checking for changes in local "%1" + + + Checking for changes in remote "%1" + Checking for changes in remote "%1" + + + Disconnected from %1 + Disconnected from %1 + + + Disconnected from accounts: + Disconnected from accounts: + + + Please sign in + Please sign in + + + Terms of service + Terms of service + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + + + There are no sync folders configured. + There are no sync folders configured. + + + Unsupported Server Version + Unsupported Server Version + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + + + macOS VFS for %1: A problem was encountered. + macOS VFS for %1: A problem was encountered. + + + macOS VFS for %1: Last sync was successful. + macOS VFS for %1: Last sync was successful. + + + macOS VFS for %1: Sync is running. + macOS VFS for %1: Sync is running. + + OCC::OwncloudHttpCredsPage - &Email &Email - Connect to %1 Connect to %1 - Enter user credentials Enter user credentials @@ -3914,8 +3328,6 @@ Note that using any logging command line options will override this setting. OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Impossible to get modification time for file in conflict %1 @@ -3923,220 +3335,184 @@ Note that using any logging command line options will override this setting. OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - The link to your %1 web interface when you open it in the browser. - - - &Next > &Next > - + Could not load certificate. Maybe wrong password? + Could not load certificate. Maybe wrong password? + + Server address does not seem to be valid Server address does not seem to be valid - - Could not load certificate. Maybe wrong password? - Could not load certificate. Maybe wrong password? + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + The link to your %1 web interface when you open it in the browser. - + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font colour="green"><b>Local sync folder %1 successfully created!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font colour="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Failed to connect to %1 at %2:<br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font colour="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - - Timeout while trying to connect to %1 at %2. - Timeout while trying to connect to %1 at %2. + A sync connection from %1 to remote directory %2 was set up. + A sync connection from %1 to remote directory %2 was set up. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - - Invalid URL - Invalid URL + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - - - Trying to connect to %1 at %2 … - Trying to connect to %1 at %2 … + Connection to %1 could not be established. Please check again. + Connection to %1 could not be established. Please check again. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + Could not create local folder %1 + Could not create local folder %1 - - There was an invalid response to an authenticated WebDAV request - There was an invalid response to an authenticated WebDAV request + Creating local sync folder %1 … + Creating local sync folder %1 … - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Error: %1 + Error: %1 - - Creating local sync folder %1 … - Creating local sync folder %1 … + Failed to connect to %1 at %2:<br/>%3 + Failed to connect to %1 at %2:<br/>%3 - - OK - OK + Folder rename failed + Folder rename failed - - failed. - failed. + Invalid URL + Invalid URL - - Could not create local folder %1 - Could not create local folder %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Local sync folder %1 already exists, setting it up for sync.<br/><br/> - No remote folder specified! No remote folder specified! - - Error: %1 - Error: %1 - - - - creating folder on Nextcloud: %1 - creating folder on Nextcloud: %1 + OK + OK - Remote folder %1 created successfully. Remote folder %1 created successfully. - - The remote folder %1 already exists. Connecting it for syncing. - The remote folder %1 already exists. Connecting it for syncing. - - - - - The folder creation resulted in HTTP error code %1 - The folder creation resulted in HTTP error code %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + Remote folder %1 creation failed with error <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + Successfully connected to %1! + Successfully connected to %1! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font colour="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Remote folder %1 creation failed with error <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + The folder creation resulted in HTTP error code %1 - - A sync connection from %1 to remote directory %2 was set up. - A sync connection from %1 to remote directory %2 was set up. + The remote folder %1 already exists. Connecting it for syncing. + The remote folder %1 already exists. Connecting it for syncing. - - Successfully connected to %1! - Successfully connected to %1! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - - Connection to %1 could not be established. Please check again. - Connection to %1 could not be established. Please check again. + There was an invalid response to an authenticated WebDAV request + There was an invalid response to an authenticated WebDAV request - - Folder rename failed - Folder rename failed + Timeout while trying to connect to %1 at %2. + Timeout while trying to connect to %1 at %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Trying to connect to %1 at %2 … + Trying to connect to %1 at %2 … - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + creating folder on Nextcloud: %1 + creating folder on Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font colour="green"><b>Local sync folder %1 successfully created!</b></font> + failed. + failed. - + OCC::OwncloudWizard - Add %1 account Add %1 account - - Skip folders configuration - Skip folders configuration + Back + Next button text in new account wizard + Back - Cancel Cancel - - Proxy Settings - Proxy Settings button text in new account wizard - Proxy Settings + Enable experimental feature? + Enable experimental feature? + + + Enable experimental placeholder mode + Enable experimental placeholder mode - Next Next button text in new account wizard Next - - Back - Next button text in new account wizard - Back + Proxy Settings + Proxy Settings button text in new account wizard + Proxy Settings - - Enable experimental feature? - Enable experimental feature? + Skip folders configuration + Skip folders configuration - + Stay safe + Stay safe + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4152,26 +3528,14 @@ Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. - - - Enable experimental placeholder mode - Enable experimental placeholder mode - - - - Stay safe - Stay safe - - + OCC::PasswordInputDialog - Password for share required Password for share required - Please enter a password for your share: Please enter a password for your share: @@ -4179,7 +3543,6 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PollJob - Invalid JSON reply from the poll URL Invalid JSON reply from the poll URL @@ -4187,344 +3550,259 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Symbolic links are not supported in syncing. + Cannot be renamed or uploaded. + Cannot be renamed or uploaded. - - File is locked by another application. - + Cannot modify encrypted item because the selected certificate is not valid. + Cannot modify encrypted item because the selected certificate is not valid. - - File is listed on the ignore list. - File is listed on the ignore list. + Cannot sync due to invalid modification time + Cannot sync due to invalid modification time - - File names ending with a period are not supported on this file system. - File names ending with a period are not supported on this file system. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Folder names containing the character "%1" are not supported on this file system. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Conflict: Server version downloaded, local copy renamed and not uploaded. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - File names containing the character "%1" are not supported on this file system. + Could not upload file, because it is open in "%1". + Could not upload file, because it is open in "%1". - - Folder name contains at least one invalid character - Folder name contains at least one invalid character + Error while deleting file record %1 from the database + Error while deleting file record %1 from the database - - File name contains at least one invalid character - File name contains at least one invalid character + Error while reading the database + Error while reading the database - - - Folder name is a reserved name on this file system. - Folder name is a reserved name on this file system. + + File has extension reserved for virtual files. + File has extension reserved for virtual files. - - File name is a reserved name on this file system. - File name is a reserved name on this file system. + File is listed on the ignore list. + File is listed on the ignore list. - - Filename contains trailing spaces. - Filename contains trailing spaces. + File is not accessible on the server. + server error + File is not accessible on the server. - - - - - Cannot be renamed or uploaded. - Cannot be renamed or uploaded. + File name contains at least one invalid character + File name contains at least one invalid character - - Filename contains leading spaces. - Filename contains leading spaces. + File name is a reserved name on this file system. + File name is a reserved name on this file system. - - Filename contains leading and trailing spaces. - Filename contains leading and trailing spaces. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + File names containing the character "%1" are not supported on this file system. - - Filename is too long. - Filename is too long. + File names ending with a period are not supported on this file system. + File names ending with a period are not supported on this file system. - File/Folder is ignored because it's hidden. File/Folder is ignored because it's hidden. - - Stat failed. - Stat failed. + Filename contains leading and trailing spaces. + Filename contains leading and trailing spaces. - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Conflict: Server version downloaded, local copy renamed and not uploaded. + Filename contains leading spaces. + Filename contains leading spaces. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Filename contains trailing spaces. + Filename contains trailing spaces. - - The filename cannot be encoded on your file system. - The filename cannot be encoded on your file system. + Filename is too long. + Filename is too long. - - The filename is blacklisted on the server. - The filename is blacklisted on the server. + Folder is not accessible on the server. + server error + Folder is not accessible on the server. - - Reason: the entire filename is forbidden. - Reason: the entire filename is forbidden. + Folder name contains at least one invalid character + Folder name contains at least one invalid character - - Reason: the filename has a forbidden base name (filename start). - Reason: the filename has a forbidden base name (filename start). + Folder name is a reserved name on this file system. + Folder name is a reserved name on this file system. - - Reason: the file has a forbidden extension (.%1). - Reason: the file has a forbidden extension (.%1). + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Folder names containing the character "%1" are not supported on this file system. - - Reason: the filename contains a forbidden character (%1). - Reason: the filename contains a forbidden character (%1). + Ignored because of the "choose what to sync" blacklist + Ignored because of the "choose what to sync" blacklist - - File has extension reserved for virtual files. - File has extension reserved for virtual files. - - - - Folder is not accessible on the server. - server error - Folder is not accessible on the server. + Moved to invalid target, restoring + Moved to invalid target, restoring - - File is not accessible on the server. - server error - File is not accessible on the server. + Not allowed because you don't have permission to add files in that folder + Not allowed because you don't have permission to add files in that folder - - Cannot sync due to invalid modification time - Cannot sync due to invalid modification time + Not allowed because you don't have permission to add subfolders to that folder + Not allowed because you don't have permission to add subfolders to that folder - - Upload of %1 exceeds %2 of space left in personal files. - Upload of %1 exceeds %2 of space left in personal files. + Not allowed to remove, restoring + Not allowed to remove, restoring - - Upload of %1 exceeds %2 of space left in folder %3. - Upload of %1 exceeds %2 of space left in folder %3. + Not allowed to upload this file because it is read-only on the server, restoring + Not allowed to upload this file because it is read-only on the server, restoring - - Could not upload file, because it is open in "%1". - Could not upload file, because it is open in "%1". + Reason: the entire filename is forbidden. + Reason: the entire filename is forbidden. - - Error while deleting file record %1 from the database - Error while deleting file record %1 from the database + Reason: the file has a forbidden extension (.%1). + Reason: the file has a forbidden extension (.%1). - - - Moved to invalid target, restoring - Moved to invalid target, restoring + Reason: the filename contains a forbidden character (%1). + Reason: the filename contains a forbidden character (%1). - - Cannot modify encrypted item because the selected certificate is not valid. - Cannot modify encrypted item because the selected certificate is not valid. + Reason: the filename has a forbidden base name (filename start). + Reason: the filename has a forbidden base name (filename start). - - Ignored because of the "choose what to sync" blacklist - Ignored because of the "choose what to sync" blacklist + Stat failed. + Stat failed. - - Not allowed because you don't have permission to add subfolders to that folder - Not allowed because you don't have permission to add subfolders to that folder + Symbolic links are not supported in syncing. + Symbolic links are not supported in syncing. - - Not allowed because you don't have permission to add files in that folder - Not allowed because you don't have permission to add files in that folder + The filename cannot be encoded on your file system. + The filename cannot be encoded on your file system. - - Not allowed to upload this file because it is read-only on the server, restoring - Not allowed to upload this file because it is read-only on the server, restoring + The filename is blacklisted on the server. + The filename is blacklisted on the server. - - Not allowed to remove, restoring - Not allowed to remove, restoring + Upload of %1 exceeds %2 of space left in folder %3. + Upload of %1 exceeds %2 of space left in folder %3. - - Error while reading the database - Error while reading the database + Upload of %1 exceeds %2 of space left in personal files. + Upload of %1 exceeds %2 of space left in personal files. - + OCC::PropagateDirectory - Could not delete file %1 from local DB Could not delete file %1 from local DB - Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time - - - - - - - The folder %1 cannot be made read-only: %2 - The folder %1 cannot be made read-only: %2 - - - - - unknown exception - unknown exception - - - Error updating metadata: %1 Error updating metadata: %1 - File is currently in use File is currently in use - + + The folder %1 cannot be made read-only: %2 + The folder %1 cannot be made read-only: %2 + + + unknown exception + unknown exception + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Could not delete file record %1 from local DB + + Could not get file %1 from local DB Could not get file %1 from local DB - + Error updating metadata: %1 + Error updating metadata: %1 + + File %1 cannot be downloaded because encryption information is missing. File %1 cannot be downloaded because encryption information is missing. - - - Could not delete file record %1 from local DB - Could not delete file record %1 from local DB + File %1 downloaded but it resulted in a local file name clash! + File %1 downloaded but it resulted in a local file name clash! - - The download would reduce free local disk space below the limit - The download would reduce free local disk space below the limit + File %1 has invalid modified time reported by server. Do not save it. + File %1 has invalid modified time reported by server. Do not save it. - - Free space on disk is less than %1 - Free space on disk is less than %1 + File has changed since discovery + File has changed since discovery - - + File was deleted from server File was deleted from server - - The file could not be downloaded completely. - The file could not be downloaded completely. - - - - The downloaded file is empty, but the server said it should have been %1. - The downloaded file is empty, but the server said it should have been %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - File %1 has invalid modified time reported by server. Do not save it. + Free space on disk is less than %1 + Free space on disk is less than %1 - - File %1 downloaded but it resulted in a local file name clash! - File %1 downloaded but it resulted in a local file name clash! + The download would reduce free local disk space below the limit + The download would reduce free local disk space below the limit - - Error updating metadata: %1 - Error updating metadata: %1 + The downloaded file is empty, but the server said it should have been %1. + The downloaded file is empty, but the server said it should have been %1. - The file %1 is currently in use The file %1 is currently in use - - - File has changed since discovery - File has changed since discovery + The file could not be downloaded completely. + The file could not be downloaded completely. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. Restoration failed: %2 - - - ; Restoration Failed: %1 ; Restoration Failed: %1 - A file or folder was removed from a read only share, but restoring failed: %1 A file or folder was removed from a read only share, but restoring failed: %1 @@ -4532,130 +3810,102 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - could not delete file %1, error: %2 + Could not create folder %1 + Could not create folder %1 + + + Error updating metadata: %1 + Error updating metadata: %1 - Folder %1 cannot be created because of a local file or folder name clash! Folder %1 cannot be created because of a local file or folder name clash! - - Could not create folder %1 - Could not create folder %1 + The file %1 is currently in use + The file %1 is currently in use - - - - + The folder %1 cannot be made read-only: %2 The folder %1 cannot be made read-only: %2 - - unknown exception - unknown exception - - - - Error updating metadata: %1 - Error updating metadata: %1 + could not delete file %1, error: %2 + could not delete file %1, error: %2 - - The file %1 is currently in use - The file %1 is currently in use + unknown exception + unknown exception - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Could not delete file record %1 from local DB + + Could not remove %1 because of a local file name clash Could not remove %1 because of a local file name clash - - - Temporary error when removing local item removed from server. Temporary error when removing local item removed from server. - - - Could not delete file record %1 from local DB - Could not delete file record %1 from local DB - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - Folder %1 cannot be renamed because of a local file or folder name clash! - - - - File %1 downloaded but it resulted in a local file name clash! - File %1 downloaded but it resulted in a local file name clash! + Could not delete file record %1 from local DB + Could not delete file record %1 from local DB - - - + Could not get file %1 from local DB Could not get file %1 from local DB - - Error setting pin state Error setting pin state - Error updating metadata: %1 Error updating metadata: %1 - - The file %1 is currently in use - The file %1 is currently in use - - - Failed to propagate directory rename in hierarchy Failed to propagate directory rename in hierarchy - Failed to rename file Failed to rename file - - Could not delete file record %1 from local DB - Could not delete file record %1 from local DB + File %1 downloaded but it resulted in a local file name clash! + File %1 downloaded but it resulted in a local file name clash! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + Folder %1 cannot be renamed because of a local file or folder name clash! + + + The file %1 is currently in use + The file %1 is currently in use + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB Could not delete file record %1 from local DB - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -4663,203 +3913,152 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Error writing metadata to the database: %1 + Error writing metadata to the database: %1 - Failed to encrypt a folder %1 Failed to encrypt a folder %1 - - Error writing metadata to the database: %1 - Error writing metadata to the database: %1 - - - The file %1 is currently in use The file %1 is currently in use - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Could not delete file record %1 from local DB + + + Could not get file %1 from local DB + Could not get file %1 from local DB + + Could not rename %1 to %2, error: %3 Could not rename %1 to %2, error: %3 - - + Error setting pin state + Error setting pin state + + Error updating metadata: %1 Error updating metadata: %1 - - + Error writing metadata to the database + Error writing metadata to the database + + The file %1 is currently in use The file %1 is currently in use - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - Could not get file %1 from local DB - - - - Could not delete file record %1 from local DB - Could not delete file record %1 from local DB + Error updating metadata: %1 + Error updating metadata: %1 - - Error setting pin state - Error setting pin state + Failed to unlock encrypted folder. + Failed to unlock encrypted folder. - - Error writing metadata to the database - Error writing metadata to the database + Failed to upload encrypted file. + Failed to upload encrypted file. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists File %1 cannot be uploaded because another file with the same name, differing only in case, exists - - - File %1 has invalid modification time. Do not upload to the server. File %1 has invalid modification time. Do not upload to the server. - - Local file changed during syncing. It will be resumed. - Local file changed during syncing. It will be resumed. + File Removed (start upload) %1 + File Removed (start upload) %1 - - + Local file changed during sync. Local file changed during sync. - - Failed to unlock encrypted folder. - Failed to unlock encrypted folder. + Local file changed during syncing. It will be resumed. + Local file changed during syncing. It will be resumed. - - Unable to upload an item with invalid characters - Unable to upload an item with invalid characters - - - - Error updating metadata: %1 - Error updating metadata: %1 - - - The file %1 is currently in use The file %1 is currently in use - - - Upload of %1 exceeds the quota for the folder - Upload of %1 exceeds the quota for the folder - - - - Failed to upload encrypted file. - Failed to upload encrypted file. + Unable to upload an item with invalid characters + Unable to upload an item with invalid characters - - File Removed (start upload) %1 - File Removed (start upload) %1 + Upload of %1 exceeds the quota for the folder + Upload of %1 exceeds the quota for the folder - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + File is not accessible on the server. + server error + File is not accessible on the server. - - - The local file was removed during sync. - The local file was removed during sync. + + Folder is not accessible on the server. + server error + Folder is not accessible on the server. - Local file changed during sync. Local file changed during sync. - - Poll URL missing - Poll URL missing - - - - Unexpected return code from server (%1) - Unexpected return code from server (%1) - - - Missing File ID from server Missing File ID from server - - Folder is not accessible on the server. - server error - Folder is not accessible on the server. + Poll URL missing + Poll URL missing - - File is not accessible on the server. - server error - File is not accessible on the server. + The local file was removed during sync. + The local file was removed during sync. - + + Unexpected return code from server (%1) + Unexpected return code from server (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + Local file changed during sync. + Local file changed during sync. - Poll URL missing Poll URL missing - The local file was removed during sync. The local file was removed during sync. - - Local file changed during sync. - Local file changed during sync. - - - The server did not acknowledge the last chunk. (No e-tag was present) The server did not acknowledge the last chunk. (No e-tag was present) @@ -4867,35 +4066,29 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProxyAuthDialog - + Password: + Password: + + Proxy authentication required Proxy authentication required - - Username: - Username: - - - Proxy: Proxy: - The proxy server needs a username and password. The proxy server needs a username and password. - - Password: - Password: + Username: + Username: - + OCC::SelectiveSyncDialog - Choose What to Sync Choose What to Sync @@ -4903,78 +4096,103 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncWidget - - Loading … - Loading … + An error occurred while loading the list of sub folders. + An error occurred while loading the list of sub folders. - - + Deselect remote folders you do not wish to synchronize. Deselect remote folders you do not wish to synchronise. - - Name - Name + Loading … + Loading … - - Size - Size + Name + Name - - No subfolders currently on the server. No subfolders currently on the server. - - An error occurred while loading the list of sub folders. - An error occurred while loading the list of sub folders. + Size + Size - + OCC::ServerNotificationHandler - + Dismiss + Dismiss + + Reply Reply + + + OCC::sesSnackBar - - Dismiss - Dismiss + Error + Error - - - OCC::SettingsDialog - - Settings - Settings + Success + + + + Warning + Warning + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud %1 Settings - + Account + Account + + General General - - Account - Account + New account + - + + Settings + Settings + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Global search results + + + No results found + No results found + + + Search globally + Search globally + + OCC::ShareManager - Error Error @@ -4982,126 +4200,61 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareModel - %1 days %1 days - - %1 day - - - - 1 day 1 day - - Today - Today - - - - Secure file drop link - Secure file drop link + Could not find local folder for %1 + Could not find local folder for %1 - - - Share link - Share link + + Internal link + Internal link - Link share Link share - - Internal link - Internal link - - - Secure file drop Secure file drop - - Could not find local folder for %1 - Could not find local folder for %1 - - - - OCC::ShareeModel - - - - Search globally - Search globally - - - - No results found - No results found + Secure file drop link + Secure file drop link - - Global search results - Global search results + Share link + Share link - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Today - + OCC::SocketApi - - Context menu share - Context menu share - - - - I shared something with you - I shared something with you + Activity + Activity - - - Share options - Share options + Context menu share + Context menu share - - Send private link by email … - Send private link by email … + Copy internal link + Copy internal link - Copy private link to clipboard Copy private link to clipboard - - Failed to encrypt folder at "%1" - Failed to encrypt folder at "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - - - - Failed to encrypt folder - Failed to encrypt folder - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5110,990 +4263,787 @@ Server replied with error: %2 Server replied with error: %2 - - Folder encrypted successfully - Folder encrypted successfully + Delete + Delete - - The following folder was encrypted successfully: "%1" - The following folder was encrypted successfully: "%1" + Delete local changes + Delete local changes - - Select new location … - Select new location … + Encrypt + Encrypt - - - - File actions - File actions + + Expires in %1 minutes + remaining time before lock expires + + Expires in %1 minute + Expires in %1 minutes + - - - Activity - Activity + Failed to encrypt folder + Failed to encrypt folder - - Leave this share - Leave this share + Failed to encrypt folder at "%1" + Failed to encrypt folder at "%1" - - Resharing this file is not allowed - Resharing this file is not allowed + Folder encrypted successfully + Folder encrypted successfully - - Resharing this folder is not allowed - Resharing this folder is not allowed + I shared something with you + I shared something with you - - Encrypt - Encrypt + Leave this share + Leave this share - Lock file Lock file - - Unlock file - Unlock file - - - Locked by %1 Locked by %1 - - - Expires in %1 minutes - remaining time before lock expires - Expires in %1 minuteExpires in %1 minutes - - - - Resolve conflict … - Resolve conflict … - - Move and rename … Move and rename … - - Move, rename and upload … - Move, rename and upload … - + Move and upload … + Move and upload … + - - Delete local changes - Delete local changes + Move, rename and upload … + Move, rename and upload … - - Move and upload … - Move and upload … + Open in browser + Open in browser + + + Resharing this file is not allowed + Resharing this file is not allowed - - Delete - Delete + Resharing this folder is not allowed + Resharing this folder is not allowed - - Copy internal link - Copy internal link + Resolve conflict … + Resolve conflict … - - - Open in browser - Open in browser + Select new location … + Select new location … - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Certificate Details</h3> + Send private link by email … + Send private link by email … - - Common Name (CN): - Common Name (CN): + Share options + Share options - - Subject Alternative Names: - Subject Alternative Names: + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - - Organization (O): - Organisation (O): + The following folder was encrypted successfully: "%1" + The following folder was encrypted successfully: "%1" - - Organizational Unit (OU): - Organisational Unit (OU): + Unlock file + Unlock file + + + OCC::SslButton - - State/Province: - State/Province: + %1 + %1 - - Country: - Country: + %1 (self-signed) + %1 (self-signed) - - Serial: - Serial: + <h3>Certificate Details</h3> + <h3>Certificate Details</h3> + + + <h3>Fingerprints</h3> + <h3>Fingerprints</h3> - <h3>Issuer</h3> <h3>Issuer</h3> - - Issuer: - Issuer: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Note:</b> This certificate was manually approved</p> - - Issued on: - Issued on: + Certificate information: + Certificate information: + + + Common Name (CN): + Common Name (CN): + + + Country: + Country: - Expires on: Expires on: - - <h3>Fingerprints</h3> - <h3>Fingerprints</h3> + Issued on: + Issued on: - - SHA-256: - SHA-256: + Issuer: + Issuer: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + No support for SSL session tickets/identifiers - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Note:</b> This certificate was manually approved</p> + Organization (O): + Organisation (O): - - %1 (self-signed) - %1 (self-signed) + Organizational Unit (OU): + Organisational Unit (OU): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - This connection is encrypted using %1 bit %2. - + SHA-256: + SHA-256: + + + Serial: + Serial: - Server version: %1 Server version: %1 - - No support for SSL session tickets/identifiers - No support for SSL session tickets/identifiers + State/Province: + State/Province: - - Certificate information: - Certificate information: + Subject Alternative Names: + Subject Alternative Names: - The connection is not secure The connection is not secure + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - This connection is NOT secure as it is not encrypted. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Trust this certificate anyway + &lt;not specified&gt; + &lt;not specified&gt; - - Untrusted Certificate - Untrusted Certificate + Additional errors: + Additional errors: - Cannot connect securely to <i>%1</i>: Cannot connect securely to <i>%1</i>: - - Additional errors: - Additional errors: - - - - with Certificate %1 - with Certificate %1 + Country: %1 + Country: %1 - - - - &lt;not specified&gt; - &lt;not specified&gt; + Effective Date: %1 + Effective Date: %1 - - - Organization: %1 - Organisation: %1 + Expiration Date: %1 + Expiration Date: %1 - - - Unit: %1 - Unit: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Fingerprint (SHA-256): <tt>%1</tt> - - - Country: %1 - Country: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Fingerprint (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Fingerprint (SHA-256): <tt>%1</tt> + Issuer: %1 + Issuer: %1 + + + Organization: %1 + Organisation: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Fingerprint (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Trust this certificate anyway - - Effective Date: %1 - Effective Date: %1 + Unit: %1 + Unit: %1 - - Expiration Date: %1 - Expiration Date: %1 + Untrusted Certificate + Untrusted Certificate - - Issuer: %1 - Issuer: %1 + with Certificate %1 + with Certificate %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (skipped due to earlier error, trying again in %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Only %1 are available, need at least %2 to start - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Disk space is low: Downloads that would reduce free space below %1 were skipped. + Cannot open the sync journal + Cannot open the sync journal - - - There is insufficient space available on the server for some uploads. - There is insufficient space available on the server for some uploads. + + Could not set file record to local DB: %1 + Could not set file record to local DB: %1 - - Unresolved conflict. - Unresolved conflict. + Could not update file metadata: %1 + Could not update file metadata: %1 - Could not update file: %1 Could not update file: %1 - Could not update virtual file metadata: %1 Could not update virtual file metadata: %1 - - Could not update file metadata: %1 - Could not update file metadata: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Disk space is low: Downloads that would reduce free space below %1 were skipped. - - Could not set file record to local DB: %1 - Could not set file record to local DB: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Only %1 are available, need at least %2 to start - - Using virtual files with suffix, but suffix is not set - Using virtual files with suffix, but suffix is not set + There is insufficient space available on the server for some uploads. + There is insufficient space available on the server for some uploads. - - Unable to read the blacklist from the local database - Unable to read the blacklist from the local database + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Unable to read from the sync journal. Unable to read from the sync journal. - - Cannot open the sync journal - Cannot open the sync journal + Unable to read the blacklist from the local database + Unable to read the blacklist from the local database - - - OCC::SyncStatusSummary - - - - Offline - Offline + Unresolved conflict. + Unresolved conflict. - - You need to accept the terms of service - You need to accept the terms of service + Using virtual files with suffix, but suffix is not set + Using virtual files with suffix, but suffix is not set + + + OCC::SyncStatusSummary - - Reauthorization required - Reauthorisation required + %1 of %2 + %1 of %2 - - Please grant access to your sync folders - Please grant access to your sync folders + %1 of %2 · %3 left + %1 of %2 · %3 left - - - All synced! All synced! - - Some files couldn't be synced! - Some files couldn't be synced! + Checking folder changes + Checking folder changes + + + Offline + Offline - See below for errors See below for errors - - Checking folder changes - Checking folder changes + See below for warnings + See below for warnings - - Syncing changes - Syncing changes - - - - Sync paused - Sync paused - - - Some files could not be synced! Some files could not be synced! - - See below for warnings - See below for warnings + Some files couldn't be synced! + Some files couldn't be synced! - - Syncing - Syncing + Sync paused + Sync paused - - %1 of %2 · %3 left - %1 of %2 · %3 left + Syncing + Syncing - - %1 of %2 - %1 of %2 + Syncing changes + Syncing changes - Syncing file %1 of %2 Syncing file %1 of %2 - - - No synchronisation configured - No synchronisation configured + + You need to accept the terms of service + You need to accept the terms of service - + OCC::Systray - + Add account + Add account + + Download Download - - Add account - Add account + Exit %1 + Exit %1 + + + Help + Help - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop - - Pause sync Pause sync - - - Resume sync - Resume sync - - - - Settings - Settings - - - - Help - Help - - - - Exit %1 - Exit %1 - - - Pause sync for all Pause sync for all - + Resume sync + Resume sync + + Resume sync for all Resume sync for all - + + Settings + Settings + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - Waiting for terms to be accepted - - - - Polling - Polling + Copy Link + Copy Link - - + Link copied to clipboard. Link copied to clipboard. - Open Browser Open Browser - - Copy Link - Copy Link + Polling + Polling - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - %1 Desktop Client Version %2 (%3 running on %4) + Waiting for terms to be accepted + Waiting for terms to be accepted + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Desktop Client Version %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Using virtual files plugin: %1</small></p> - <p>This release was supplied by %1.</p> <p>This release was supplied by %1.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Failed to fetch providers. - Failed to fetch search providers for '%1'. Error: %2 Failed to fetch search providers for '%1'. Error: %2 - - Search has failed for '%2'. - Search has failed for '%2'. - - - Search has failed for '%1'. Error: %2 Search has failed for '%1'. Error: %2 - + + Search has failed for '%2'. + Search has failed for '%2'. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Failed to update folder metadata. + Failed to finalize item. + Failed to finalize item. - - + Failed to unlock encrypted folder. Failed to unlock encrypted folder. - - Failed to finalize item. - Failed to finalize item. + Failed to update folder metadata. + Failed to update folder metadata. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Error updating metadata for a folder %1 + Could not add or remove user %1 to access folder %2 + Unable to add or remove user %1 from accessing folder %2. - Could not fetch public key for user %1 Could not fetch public key for user %1 - Could not find root encrypted folder for folder %1 Could not find root encrypted folder for folder %1 - - Could not add or remove user %1 to access folder %2 - Unable to add or remove user %1 from accessing folder %2. + Error updating metadata for a folder %1 + Error updating metadata for a folder %1 - Failed to unlock a folder. Failed to unlock a folder. OCC::User - - - End-to-end certificate needs to be migrated to a new one - End-to-end certificate needs to be migrated to a new one - - - - Trigger the migration - Trigger the migration - - %n notification(s) - %n notification%n notifications - - - - - “%1” was not synchronized - - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - - - - - Insufficient storage on the server. The file requires %1. - - - - - Insufficient storage on the server. - - - - - There is insufficient space available on the server for some uploads. - - - - - Retry all uploads - Retry all uploads + + %n notification + %n notifications + - - - Resolve conflict - Resolve conflict - - - - Rename file - Rename file - - - - Public Share Link - Public Share Link + End-to-end certificate needs to be migrated to a new one + End-to-end certificate needs to be migrated to a new one - Open %1 Assistant in browser The placeholder will be the application name. Please keep it Open %1 Assistant in browser - Open %1 Talk in browser The placeholder will be the application name. Please keep it Open %1 Talk in browser - - Open %1 Assistant - The placeholder will be the application name. Please keep it - Open %1 Assistant - - - - Assistant is not available for this account. - Assistant is not available for this account. - - - - Assistant is already processing a request. - Assistant is already processing a request. - - - - Sending your request… - Sending your request… - - - - Sending your request … - + Public Share Link + Public Share Link - - No response yet. Please try again later. - No response yet. Please try again later. + Quota Warning - %1 percent or more storage in use + Quota Warning - %1 percent or more storage in use - - - No supported assistant task types were returned. - No supported assistant task types were returned. + + Quota is updated; %1 percent of the total space is used. + Quota is updated; %1 percent of the total space is used. - - Waiting for the assistant response… - Waiting for the assistant response… + Rename file + Rename file - - Assistant request failed (%1). - Assistant request failed (%1). + Resolve conflict + Resolve conflict - - Quota is updated; %1 percent of the total space is used. - Quota is updated; %1 percent of the total space is used. + Retry all uploads + Retry all uploads - - Quota Warning - %1 percent or more storage in use - Quota Warning - %1 percent or more storage in use + Trigger the migration + Trigger the migration - + OCC::UserModel - - Confirm Account Removal - Confirm Account Removal - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - - Remove connection - Remove connection - - - Cancel Cancel - + Confirm Account Removal + Confirm Account Removal + + Leave share Leave share - Remove account Remove account - + + Remove connection + Remove connection + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - Could not fetch predefined statuses. Make sure you are connected to the server. + + %n day(s) + + %n day + %n days + - - - Could not fetch status. Make sure you are connected to the server. - Could not fetch status. Make sure you are connected to the server. + + %n hour(s) + + %n hour + %n hours + + + + %n minute(s) + + %n minute + %n minutes + - - Status feature is not supported. You will not be able to set your status. - Status feature is not supported. You will not be able to set your status. + 1 hour + 1 hour - - Emojis are not supported. Some status functionality may not work. - Emojis are not supported. Some status functionality may not work. + 30 minutes + 30 minutes - - Could not set status. Make sure you are connected to the server. - Could not set status. Make sure you are connected to the server. + 4 hours + 4 hours - Could not clear status message. Make sure you are connected to the server. Could not clear status message. Make sure you are connected to the server. - - - Don't clear - Don't clear + Could not fetch predefined statuses. Make sure you are connected to the server. + Could not fetch predefined statuses. Make sure you are connected to the server. - - 30 minutes - 30 minutes + Could not fetch status. Make sure you are connected to the server. + Could not fetch status. Make sure you are connected to the server. - - 1 hour - 1 hour + Could not set status. Make sure you are connected to the server. + Could not set status. Make sure you are connected to the server. - - 4 hours - 4 hours - - - - - Today - Today + Don't clear + Don't clear - - - This week - This week + Emojis are not supported. Some status functionality may not work. + Emojis are not supported. Some status functionality may not work. - Less than a minute Less than a minute - - - %n minute(s) - %n minute%n minutes + + Status feature is not supported. You will not be able to set your status. + Status feature is not supported. You will not be able to set your status. - - - %n hour(s) - %n hour%n hours + + This week + This week - - - %n day(s) - %n day%n days + + Today + Today - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Please choose a different location. %1 is a drive. It doesn't support virtual files. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + + OCC::VfsDownloadErrorDialog - - Download error - Download error + %1 could not be downloaded. + %1 could not be downloaded. - - - Error downloading - Error downloading + + > More details + > More details - Could not be downloaded Could not be downloaded - - > More details - > More details + Download error + Download error - - More details - More details + Error downloading + Error downloading - Error downloading %1 Error downloading %1 - - %1 could not be downloaded. - %1 could not be downloaded. + More details + More details - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time @@ -6101,8 +5051,6 @@ Server replied with error: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time @@ -6110,12 +5058,10 @@ Server replied with error: %2 OCC::WebEnginePage - Invalid certificate detected Invalid certificate detected - The host "%1" provided an invalid certificate. Continue? The host "%1" provided an invalid certificate. Continue? @@ -6123,769 +5069,642 @@ Server replied with error: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - You have been logged out of your account %1 at %2. Please login again. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Form - - Log in - Log in - - - - Sign up with provider - Sign up with provider + Host your own server + Host your own server - - + Keep your data secure and under your control Keep your data secure and under your control - - Secure collaboration & file exchange - Secure collaboration & file exchange - - - - Easy-to-use web mail, calendaring & contacts - Easy-to-use web mail, calendaring & contacts - - - - Screensharing, online meetings & web conferences - Screensharing, online meetings & web conferences + Log in + Log in - - Host your own server - Host your own server + Sign up with provider + Sign up with provider - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - Proxy Settings + HTTP(S) proxy + HTTP(S) proxy - Hostname of proxy server Hostname of proxy server - - Username for proxy server - Username for proxy server - - - Password for proxy server Password for proxy server - - HTTP(S) proxy - HTTP(S) proxy + Proxy Settings + Dialog window title for proxy settings + Proxy Settings - SOCKS5 proxy SOCKS5 proxy - + + Username for proxy server + Username for proxy server + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Please sign in + &Local Folder + &Local Folder + + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - - There are no sync folders configured. - There are no sync folders configured. + Ask before syncing folders larger than + Ask before syncing folders larger than - - Disconnected from %1 - Disconnected from %1 + Choose different folder + Choose different folder - - Unsupported Server Version - Unsupported Server Version + Choose what to sync + Choose what to sync - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + Erase local folder and start a clean sync + Erase local folder and start a clean sync - - Terms of service - Terms of service + Keep local data + Keep local data - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Local Folder + Local Folder - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1: %2 + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Sync is running. - macOS VFS for %1: Sync is running. + Server address + Server address - - macOS VFS for %1: Last sync was successful. - macOS VFS for %1: Last sync was successful. + Sync Logo + Sync Logo - - macOS VFS for %1: A problem was encountered. - macOS VFS for %1: A problem was encountered. + Synchronize everything from server + Synchronize everything from server - - macOS VFS for %1: An error was encountered. - + Username + Username + + + OwncloudHttpCredsPage - - Checking for changes in remote "%1" - Checking for changes in remote "%1" + &Password + &Password + + &Username + &Username + + + + OwncloudSetupPage - - Checking for changes in local "%1" - Checking for changes in local "%1" + Server address + Server address - - Internal link copied - + This is the link to your %1 web interface when you open it in the browser. + This is the link to your %1 web interface when you open it in the browser. + + + progress - - The internal link has been copied to the clipboard. - + Deleted + Deleted - - Disconnected from accounts: - Disconnected from accounts: + Deleting + Deleting - - Account %1: %2 - Account %1: %2 + Downloaded + Downloaded - - Account synchronization is disabled - Account synchronisation is disabled + Downloading + Downloading - - %1 (%2, %3) - %1 (%2, %3) + Error + Error - - - OwncloudAdvancedSetupPage - - Username - Username + Filesystem access error + Filesystem access error - - Local Folder - Local Folder + Ignored + Ignored - - Choose different folder - Choose different folder + Ignoring + Ignoring - - Server address - Server address + Moved to %1 + Moved to %1 - - Sync Logo - Sync Logo + Moving + Moving - - Synchronize everything from server - Synchronize everything from server + Replaced by virtual file + Replaced by virtual file - - Ask before syncing folders larger than - Ask before syncing folders larger than + Server version downloaded, copied changed local file into case conflict conflict file + Server version downloaded, copied changed local file into case conflict conflict file - - Ask before syncing external storages - Ask before syncing external storages + Server version downloaded, copied changed local file into conflict file + Server version downloaded, copied changed local file into conflict file - - Keep local data - Keep local data + Unknown + Unknown - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + Updated end-to-end encryption metadata + Updated end-to-end encryption metadata - - Erase local folder and start a clean sync - Erase local folder and start a clean sync + Updated local metadata + Updated local metadata - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated local virtual files metadata + Updated local virtual files metadata - - Choose what to sync - Choose what to sync + Updating end-to-end encryption metadata + Updating end-to-end encryption metadata + + + Updating local metadata + Updating local metadata - - &Local Folder - &Local Folder + Updating local virtual files metadata + Updating local virtual files metadata - - - OwncloudHttpCredsPage - - &Username - &Username + Uploaded + Uploaded - - &Password - &Password - - - - OwncloudSetupPage - - - Logo - Logo - - - - Server address - Server address + Uploading + Uploading - - This is the link to your %1 web interface when you open it in the browser. - This is the link to your %1 web interface when you open it in the browser. + Virtual file created + Virtual file created - + ProxySettings - Form Form - - Proxy Settings - Proxy Settings + Host + Host - Manually specify proxy Manually specify proxy - - Host - Host + No proxy + No proxy + + + Note: proxy settings have no effects for accounts on localhost + Note: proxy settings have no effects for accounts on localhost - - Proxy server requires authentication - Proxy server requires authentication + Proxy Settings + Proxy Settings - - Note: proxy settings have no effects for accounts on localhost - Note: proxy settings have no effects for accounts on localhost + Proxy server requires authentication + Proxy server requires authentication - Use system proxy Use system proxy - - - No proxy - No proxy - - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %nd%nd - - - - in the future - in the future + + %nd + %nd + - %nh delay in hours after an activity - %nh%nh + + %nh + %nh + - - - now - now + + %nmin + delay in minutes after an activity + + %nmin + %nmin + - 1min one minute after activity date and time 1min - - - %nmin - delay in minutes after an activity - %nmin%nmin - - - Some time ago - Some time ago + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + Could not create debug archive in selected location! - - New folder - New folder + Error deleting the file + Error deleting the file - Failed to create debug archive Failed to create debug archive - - Could not create debug archive in selected location! - Could not create debug archive in selected location! - - - - Could not create debug archive in temporary location! - Could not create debug archive in temporary location! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - - Could not remove existing file at destination! - Could not remove existing file at destination! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - - Could not move debug archive to selected location! - Could not move debug archive to selected location! + New folder + New folder - - You renamed %1 - You renamed %1 + Paths beginning with '#' character are not supported in VFS mode. + Paths beginning with '#' character are not supported in VFS mode. - - You deleted %1 - You deleted %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - - You created %1 - You created %1 + Some time ago + Some time ago - - You changed %1 - You changed %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Synced %1 Synced %1 - - Error deleting the file - Error deleting the file + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - - Paths beginning with '#' character are not supported in VFS mode. - Paths beginning with '#' character are not supported in VFS mode. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + The server does not recognize the request method. Please contact your server administrator for help. + The server does not recognize the request method. Please contact your server administrator for help. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + The server does not support the version of the connection being used. Contact your server administrator for help. + The server does not support the version of the connection being used. Contact your server administrator for help. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + This file type isn’t supported. Please contact your server administrator for assistance. + This file type isn’t supported. Please contact your server administrator for assistance. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - - This file type isn’t supported. Please contact your server administrator for assistance. - This file type isn’t supported. Please contact your server administrator for assistance. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You changed %1 + You changed %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + You created %1 + You created %1 - - The server does not recognize the request method. Please contact your server administrator for help. - The server does not recognize the request method. Please contact your server administrator for help. + You deleted %1 + You deleted %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - - The server does not support the version of the connection being used. Contact your server administrator for help. - The server does not support the version of the connection being used. Contact your server administrator for help. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + You renamed %1 + You renamed %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + in the future + in the future - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + now + now - + ResolveConflictsDialog - - - Solve sync conflicts - Solve sync conflicts - - %1 files in conflict indicate the number of conflicts to resolve - %1 file in conflict%1 files in conflict - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + + %1 file in conflict + %1 files in conflict + - All local versions All local versions - All server versions All server versions - + Cancel + Cancel + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + + Resolve conflicts Resolve conflicts - - Cancel - Cancel + Solve sync conflicts + Solve sync conflicts - + - ShareDelegate + SesErrorBox - - Copied! - Copied! + Error + Error - ShareDetailsPage + SesTrayHeader - - An error occurred setting the share password. - An error occurred setting the share password. + Open Nextcloud in browser + - - Edit share - Edit share + Open local or team folders + Open local or team folders - - - Share label - Share label + + Website + + + + ShareDelegate - - - Allow upload and editing - Allow upload and editing + Copied! + Copied! - - View only - View only + Share options + Share options + + + ShareDetailsPage - - File drop (upload only) - File drop (upload only) + Add another link + Add another link - Allow resharing Allow resharing - - Hide download - Hide download + Allow upload and editing + Allow upload and editing - - Password protection - Password protection + An error occurred setting the share password. + An error occurred setting the share password. - - Set expiration date - Set expiration date + Copy share link + Copy share link + + + Custom Permissions + + + + Enter a note for the recipient + Enter a note for the recipient + + + File drop (upload only) + File drop (upload only) + + + Hide download + Hide download - Note to recipient Note to recipient - - Enter a note for the recipient - Enter a note for the recipient + Password protection + Password protection + + + Set expiration date + Set expiration date + + + Share link copied! + Share link copied! - Unshare Unshare - - Add another link - Add another link + View only + View only + + + ShareeSearchField - - Share link copied! - Share link copied! + Search for users or groups… + Search for users or groups… - - Copy share link - Copy share link + Sharing is not available for this folder + Sharing is not available for this folder ShareView - + Expires in %1 + Expires in %1 + + Password required for new share Password required for new share - Share password Share password - Shared with you by %1 Shared with you by %1 - - Expires in %1 - Expires in %1 - - - Sharing is disabled Sharing is disabled - - This item cannot be shared. - This item cannot be shared. - - - Sharing is disabled. Sharing is disabled. - - - ShareeSearchField - - - Search for users or groups… - Search for users or groups… - - - - Sharing is not available for this folder - Sharing is not available for this folder + + This item cannot be shared. + This item cannot be shared. - + SyncJournalDb - Failed to connect database. Failed to connect database. @@ -6893,35 +5712,25 @@ Server replied with error: %2 SyncStatus - - Sync now - Sync now + Open browser + Open browser - - + Resolve conflicts Resolve conflicts - - Open browser - Open browser - - - - Open settings - Open settings + Sync now + Sync now - + TalkReplyTextField - Reply to … Reply to … - Send reply to chat message Send reply to chat message @@ -6929,76 +5738,176 @@ Server replied with error: %2 TermsOfServiceCheckWidget - - Terms of Service - Terms of Service - - - Logo Logo - Switch to your browser to accept the terms of service Switch to your browser to accept the terms of service - + + Terms of Service + Terms of Service + + + + theme + + Error occurred during setup + Error occurred during setup + + + Error occurred during sync + Error occurred during sync + + + Preparing to sync + Preparing to sync + + + Stopping sync + Stopping sync + + + Sync is paused + Sync is paused + + + Sync is running + Sync is running + + + Sync status is unknown + Sync status is unknown + + + Sync was successful + Sync was successful + + + Sync was successful but some files were ignored + Sync was successful but some files were ignored + + + Waiting to start syncing + Waiting to start syncing + + TrayFoldersMenuButton - - Open local folder - Open local folder + Files + - - Open local or team folders - Open local or team folders + Open %1 in file explorer + Open %1 in file explorer + + + Open local folder + Open local folder - Open local folder "%1" Open local folder "%1" - - Open team folder "%1" - Open team folder "%1" + Open local or team folders + Open local or team folders - - Open %1 in file explorer - Open %1 in file explorer + Open team folder "%1" + Open team folder "%1" - User group and local folders menu User group and local folders menu + + TrayWindowAccountMenu + + Account switcher and settings menu + Account switcher and settings menu + + + Add account + Add account + + + Current account + Current account + + + Current account avatar + Current account avatar + + + Current account status is do not disturb + Current account status is do not disturb + + + Current account status is online + Current account status is online + + + Exit + Exit + + + Pause sync for all + Pause sync for all + + + Resume sync for all + Resume sync for all + + + Settings + Settings + + TrayWindowHeader - + More apps + More apps + + + Open %1 in browser + Open %1 in browser + + Open local or team folders Open local or team folders + + + TrayWindowHeaderBar - More apps - More apps + More apps - Open %1 in browser - Open %1 in browser + Open %1 in browser - + + Open Nextcloud in browser + + + + Open local or team folders + Open local or team folders + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Search files, messages, events … @@ -7006,7 +5915,6 @@ Server replied with error: %2 UnifiedSearchPlaceholderView - Start typing to search Start typing to search @@ -7014,7 +5922,6 @@ Server replied with error: %2 UnifiedSearchResultFetchMoreTrigger - Load more results Load more results @@ -7022,7 +5929,6 @@ Server replied with error: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Search result skeleton. @@ -7030,7 +5936,6 @@ Server replied with error: %2 UnifiedSearchResultListItem - Load more results Load more results @@ -7038,7 +5943,6 @@ Server replied with error: %2 UnifiedSearchResultNothingFound - No results for No results for @@ -7046,7 +5950,6 @@ Server replied with error: %2 UnifiedSearchResultSectionItem - Search results section %1 Search results section %1 @@ -7054,128 +5957,88 @@ Server replied with error: %2 UserLine - - Switch to account - Switch to account - - - - Current account status is online - Current account status is online - - - - Current account status is do not disturb - Current account status is do not disturb - - - - Account sync status requires attention - Account sync status requires attention - - - Account actions Account actions - - Set status - Set status - - - - Status message - Status message + Log in + Log in - Log out Log out - - Log in - Log in + Remove account + Remove account - + + Switch to account + Switch to account + + UserStatusMessageView - - Status message - Status message + Apply + Apply + + + Cancel + Cancel - - What is your status? - What is your status? + Clear + Clear - Clear status message after Clear status message after - - Cancel - Cancel - - - - Clear - Clear + Status message + Status message - - Apply - Apply + What is your status? + What is your status? - + UserStatusSetStatusView - - Online status - Online status - - - - Online - Online + Appear offline + Appear offline - Away Away - Busy Busy - Do not disturb Do not disturb - + Invisible + Invisible + + Mute all notifications Mute all notifications - - Invisible - Invisible + Online + Online - - Appear offline - Appear offline + Online status + Online status - Status message Status message @@ -7183,390 +6046,128 @@ Server replied with error: %2 Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - %n year%n years - - - - %n month(s) - %n month%n months - - - %n day(s) - %n day%n days + + %n day + %n days + - %n hour(s) - %n hour%n hours + + %n hour + %n hours + - %n minute(s) - %n minute%n minutes + + %n minute + %n minutes + - - %n second(s) - %n second%n seconds - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - The checksum header is malformed. - - - - The checksum header contained an unknown checksum type "%1" - The checksum header contained an unknown checksum type "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - - - - main.cpp - - - System Tray not available - System Tray not available - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Virtual file created - - - - Replaced by virtual file - Replaced by virtual file - - - - Downloaded - Downloaded - - - - Uploaded - Uploaded - - - - Server version downloaded, copied changed local file into conflict file - Server version downloaded, copied changed local file into conflict file - - - - Server version downloaded, copied changed local file into case conflict conflict file - Server version downloaded, copied changed local file into case conflict conflict file - - - - Deleted - Deleted - - - - Moved to %1 - Moved to %1 - - - - Ignored - Ignored - - - - Filesystem access error - Filesystem access error - - - - - Error - Error - - - - Updated local metadata - Updated local metadata - - - - Updated local virtual files metadata - Updated local virtual files metadata - - - - Updated end-to-end encryption metadata - Updated end-to-end encryption metadata - - - - - Unknown - Unknown - - - - Downloading - Downloading - - - - Uploading - Uploading - - - - Deleting - Deleting - - - - Moving - Moving - - - - Ignoring - Ignoring - - - - Updating local metadata - Updating local metadata + %n month(s) + + %n month + %n months + - - - Updating local virtual files metadata - Updating local virtual files metadata + + %n second(s) + + %n second + %n seconds + - - - Updating end-to-end encryption metadata - Updating end-to-end encryption metadata + + %n year(s) + + %n year + %n years + - + - theme - - - Sync status is unknown - Sync status is unknown - - - - Waiting to start syncing - Waiting to start syncing - - - - Sync is running - Sync is running - - - - Sync was successful - Sync was successful - - - - Sync was successful but some files were ignored - Sync was successful but some files were ignored - - - - Error occurred during sync - Error occurred during sync - - - - Error occurred during setup - Error occurred during setup - - - - Stopping sync - Stopping sync - + utility - - Preparing to sync - Preparing to sync + Always available locally + Always available locally - - Sync is paused - Sync is paused + Available online only + Available online only - - - utility - Could not open browser Could not open browser - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - - - Could not open email client Could not open email client - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - - - - Always available locally - Always available locally - - - Currently available locally Currently available locally - - Some available online only - Some available online only - - - - Available online only - Available online only - - - - Make always available locally - Make always available locally - - - Free up local space Free up local space - - - FileProviderEvictionDialog - - - Remove local copies - Remove local copies - - - - Local copies - Local copies + + Make always available locally + Make always available locally - - Reload - Reload - - - - FileProviderStorageInfo - - - Local storage use - Local storage use + Some available online only + Some available online only - - %1 GB of %2 GB remote files synced - %1 GB of %2 GB remote files synced + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - - Free up space … - Free up space … + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? - + - FileProviderSyncStatus - - - Syncing - Syncing - + ValidateChecksumHeader - - All synced! - All synced! + The checksum header contained an unknown checksum type "%1" + The checksum header contained an unknown checksum type "%1" - - Request sync - Request sync + The checksum header is malformed. + The checksum header is malformed. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_es.ts b/translations/client_es.ts index 1c448cdca2b41..b46dbfb934887 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Abrir %1 localmente - - - In %1 En %1 - + + Open %1 locally + Abrir %1 localmente + + ActivityItemContent - - Open file details - Abrir detalles del archivo - - - - File details - Detalles del archivo - - - - File actions - Acciones del archivo - - - Dismiss Descartar - + + Open file details + Abrir detalles del archivo + + ActivityList - Activity list Lista de actividad - - Scroll to top - Desplazarse hasta la parte superior - - - No activities yet Aún no hay actividades - + + Scroll to top + Desplazarse hasta la parte superior + + CallNotificationDialog - - Talk notification caller avatar - Avatar de la notificación de llamada - - - Answer Talk call notification Aviso de llamada de Answer Talk - Decline Rechazar - Decline Talk call notification Rechazar la notificación de llamadas de Talk - + + Talk notification caller avatar + Avatar de la notificación de llamada + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Buscando cambios en "%1" - - Syncing %1 of %2 (%3 left) - Sincronizando %1 de %2 (%3 restantes) - - - - Syncing %1 of %2 - Sincronizando %1 de %2 - - - - Syncing %1 (%2 left) - Sincronizando %1 (quedan %2) + Help + Ayuda - - Syncing %1 - Sincronizando %1 + Log out + Cerrar sesión - - No recently changed files No hay archivos modificados recientemente - - Sync paused - Sincronización pausada - - - - Syncing - Sincronizando - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Abrir Escritorio %1 - Open in browser Abrir en el navegador - - Recently changed - Cambiado recientemente - - - Pause synchronization Pausar sincronización - - Help - Ayuda + Quit sync client + Cerrar cliente de sincronización + + + Recently changed + Cambiado recientemente - Settings Configuración - - Log out - Cerrar sesión + Sync paused + Sincronización pausada - - Quit sync client - Cerrar cliente de sincronización + Syncing + Sincronizando - + + Syncing %1 + Sincronizando %1 + + + Syncing %1 (%2 left) + Sincronizando %1 (quedan %2) + + + Syncing %1 of %2 + Sincronizando %1 de %2 + + + Syncing %1 of %2 (%3 left) + Sicronizando %1 de %2 (quedan %3) + + ConflictDelegate - Local version Versión local - Server version Versión del servidor @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Cuenta actual - - - - - Resume sync for all - Reanudar sincronización para todos - - - - - Pause sync for all - Pausar sincronización para todos + Account switcher and settings menu + Menú para cambio de cuentas y ajustes - - + Add account Añadir cuenta - Add new account Añadir cuenta nueva - - Settings - Ajustes - - - - Exit - Salir + Current account + Cuenta actual - Current account avatar Avatar de la cuenta actual - + Current account status is do not disturb + El estado actual de la cuenta es no molestar + + Current account status is online El estado actual de la cuenta es en línea - - Current account status is do not disturb - El estado actual de la cuenta es no molestar + Exit + Salir - - Account switcher and settings menu - Menú para cambio de cuentas y ajustes + Pause sync for all + Pausar sincronización para todos - + + Resume sync for all + Reanudar sincronización para todos + + + Settings + Ajustes + + EditFileLocallyLoadingDialog - Opening file for local editing Abriendo archivo para editarlo en local @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis No hay emojis recientes @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Descubriendo los certificados almacenados en su token USB @@ -266,44 +210,42 @@ ErrorBox - Error Error - - FileActionsWindow - - - File actions for %1 - Acciones del archivo para %1 - - FileDetailsPage - - Activity - Actividad - - - - Sharing - Compartir + Dismiss + Descartar FileDetailsWindow - File details of %1 · %2 Detalles del archivo de %1 · %2 + + FileProviderEvictionDialog + + Local copies + Copias locales + + + Reload + Recargar + + + Remove local copies + Quitar copias locales + + FileProviderFileDelegate - Delete Borrar @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Configuración de archivos virtuales + Enable virtual files + Activar archivos virtuales - General settings Configuración general - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - Los archivos virtuales se ven como archivos normales, pero no ocupan espacio de almacenamiento local. El contenido se descarga automáticamente al abrir el archivo. Los archivos virtuales y la sincronización clásica no se pueden usar simultáneamente. + Reset virtual files environment + Reiniciar el ambiente de archivos virtuales + + + Virtual files settings + Configuración de archivos virtuales + + + FileProviderStorageInfo - - Enable virtual files - Activar archivos virtuales + %1 GB of %2 GB remote files synced + %1 GB de %2 GB de archivos remotos sincronizados - - Reset virtual files environment - Reiniciar el ambiente de archivos virtuales + Free up space … + Liberar espacio … - + + Local storage use + Uso de almacenamiento local + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Error al eliminar "%1": %2 + All synced! + ¡Todo está sincronizado! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Solicitar una sincronización de cambios para el ambiente VFS. +macOS podría ignorar o demorar esta solicitud. + + Request sync + Solicitar sincronización + + + Syncing + Sincronizando + + + + FileSystem - Could not remove folder "%1" No se ha podido eliminar la carpeta "%1" - + + Error removing "%1": %2 + Error al eliminar "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Se ha producido un error al conectarse. Por favor, inténtelo de nuevo. + + Browser Authentication Autentificación del navegador - + Copy Link + + + Logo Logo - Switch to your browser to connect your account Cambiar al navegador para conectar con tu cuenta + + + FolderWizardSelectiveSync + + Add Folder Sync + + - - An error occurred while connecting. Please try again. - Se ha producido un error al conectarse. Por favor, inténtelo de nuevo. + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Seleccione una carpeta local en su equipo para sincronizar + &Choose + + + + Add Folder Sync + - - &Choose … - &Seleccionar … + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Seleccionar una carpeta remota de destino + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Crear carpeta - + Folders + Carpetas + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Actualizar - - Folders - Carpetas + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Contenido principal - - Issue with account %1 - Problemas con la cuenta %1 + New activities + Nuevas actividades - - - Issues with several accounts - Problemas con varias cuentas + + Unified search results list + Lista de resultados de la búsqueda unificada + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Iniciar nueva conversación? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Creado desde la revisión Git <a href="%1">%2</a> en %3, %4 utilizando Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - Nueva conversación + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema continua. - - Cancel - Cancelar + The server enforces strict transport security and does not accept untrusted certificates. + El servidor hace obligatoria la seguridad estricta en el transporte y no acepta certificados sin confianza. - - - This will clear the existing conversation. - Esto borrará la conversación existente. + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + El servidor tardó demasiado en responder. Revise su conexión e intente sincronizar de nuevo. Si sigue sin funcionar, contacte con el administrador de su servidor. + + + OCC::Account - - Ask Assistant … - Pregunta al Asistente … + File %1 is already locked by %2. + El archivo %1 ya está bloqueado por %2. - - Ask Assistant… - Pregunta al asistente ... - - - - Send assistant question - Enviar pregunta al asistente - - - - Start a new assistant chat - Iniciar un nuevo chat de asistente - - - - Unified search results list - Lista de resultados de la búsqueda unificada - - - - New activities - Nuevas actividades - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - El servidor tardó demasiado en responder. Revise su conexión e intente sincronizar de nuevo. Si sigue sin funcionar, contacte con el administrador de su servidor. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema continua. - - - - The server enforces strict transport security and does not accept untrusted certificates. - El servidor hace obligatoria la seguridad estricta en el transporte y no acepta certificados sin confianza. + Lock operation on %1 failed with error %2 + La operación de bloqueo en %1 ha fallado con el error %2. - - - OCC::Account - Public Share Link Enlace Compartido Público - - File %1 is already locked by %2. - El archivo %1 ya está bloqueado por %2. - - - - Lock operation on %1 failed with error %2 - La operación de bloqueo en %1 ha fallado con el error %2. - - - Unlock operation on %1 failed with error %2 La operación de desbloqueo en %1 ha fallado con el error %2. @@ -520,549 +459,396 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? Se detectó una cuenta desde un cliente de escritorio antiguo. ¿Debería importar la cuenta? - - - Legacy import - Importación heredada + Could not import accounts from legacy client configuration. + No se pudieron importar las cuentas desde la configuración del cliente antiguo. - - + Import Importar - - Skip - Saltar + Legacy import + Importación heredada - - Could not import accounts from legacy client configuration. - No se pudieron importar las cuentas desde la configuración del cliente antiguo. + Skip + Saltar - + OCC::AccountSettings - - Virtual files - Archivos virtuales + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. - - Classic sync - Sincronización clásica + %1 as %2 + %1 como %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Las carpetas no seleccionadas serán <b>eliminadas</b> de su carpeta local y ya no serán sincronizadas en este ordenador + %1 in use + %1 en uso - - Storage space: … - Espacio de almacenamiento: ... + %1 of %2 in use + %1 de %2 en uso - - Synchronize all - Sincronizar todo + (experimental) + (experimental) - - Synchronize none - No sincronizar nada + <p>Could not create local folder <i>%1</i>.</p> + <p>No pudo crear la carpeta local <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>¿De verdad quiere dejar de sincronizar la carpeta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> elminará los archivo.</p> + + + Apply + Aplicar - Apply manual changes Aplicar cambios manuales - - Standard file sync - Sincronización de archivos estándar + Availability + Disponibilidad - - Virtual file sync - Sincronización de archivos virtual + Cancel + Cancelar - - Connection settings - Configuración de conexión + Choose what to sync + Elija qué sincronizar - - Apply - Aplicar + Confirm Folder Sync Connection Removal + Confirme la sincronización para la eliminación de la carpeta conectada - - - - Cancel - Cancelar + Connected to %1. + Conectado a %1. - Connected with <server> as <user> Conectado a <server> como <user> - - No account configured. - No se ha configurado ninguna cuenta. - - - - End-to-end Encryption with Virtual Files - Cifrado de extremo a extremo con Archivos Virtuales + Connecting to %1 … + Conectando a %1 ... - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Parece que tiene la función de Archivos Virtuales activada en esta carpeta. Por el momento, no es posible descargar implícitamente los archivos virtuales que están cifrados de extremo a extremo. Para obtener la mejor experiencia con los archivos virtuales y el cifrado de extremo a extremo, asegúrese de que la carpeta cifrada está marcada con "Hacer que esté siempre disponible localmente". + Connection settings + Configuración de conexión - - - Do not encrypt folder - No cifrar carpeta + Could not encrypt folder because the folder does not exist anymore + No es posible cifrar la carpeta porque ya no existe - - - Encrypt folder - Cifrar carpeta + Create new folder + Crear nueva carpeta - - End-to-end Encryption - Cifrado de extremo a extremo + Currently there is no storage usage information available. + Actualmente no hay información disponible sobre el uso de almacenamiento. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado mnemónica. -<b>Este proceso no es puede deshacer. ¿Seguro que desea continuar?</b> + Disable support + Desactivar soporte - - End-to-end encryption has not been initialized on this account. - El cifrado de extremo a extremo a sido iniciado en esta cuenta + Disable virtual file support … + Desactivar soporte para archivos virtuales … - - Forget encryption setup - Olvidar la configuración de cifrado + Disable virtual file support? + ¿Desactivar soporte para archivos virtuales? - Display mnemonic Mostrar mnemónico - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - Se ha configurado el cifrado. Recuerda <b>Cifrar</b> una carpeta para tener cifrado de extremo a extremo cualquier archivo añadido a esta. - - - - Warning - Aviso + Do not encrypt folder + No cifrar carpeta - - Please wait for the folder to sync before trying to encrypt it. - Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. + Do you want to forget the end-to-end encryption settings for %1 on this device? + ¿Desea olvidar los ajustes de cifrado de extremo a extremo para %1 en este dispositivo? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - La carpeta tiene un pequeño problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + Edit Ignored Files + Editar archivos ignorados - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + Enable virtual file support %1 … + Activar soporte para archivos virtuales %1 ... - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - No puede cifrar esta carpeta debido a que el cifrado de extremo a extremo aún no está configurado en este dispositivo. -¿Desea hacerlo ahora mismo? + Encrypt + Cifrar - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. -Espere a una nueva sincronización, luego cifrala. + Encrypt folder + Cifrar carpeta - Encryption failed Ha fallado el cifrado - - Could not encrypt folder because the folder does not exist anymore - No es posible cifrar la carpeta porque ya no existe + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + Se ha configurado el cifrado. Recuerda <b>Cifrar</b> una carpeta para tener cifrado de extremo a extremo cualquier archivo añadido a esta. - - Encrypt - Cifrar + End-to-end Encryption + Cifrado de extremo a extremo - - - Edit Ignored Files - Editar archivos ignorados + End-to-end Encryption with Virtual Files + Cifrado de extremo a extremo con Archivos Virtuales - - - Create new folder - Crear nueva carpeta + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + El cifrado de extremo a extremo ha sido inicializado en esta cuenta con otro dispositivo. <br> Ingrese el mnemonico para que las carpetas cifradas se sincronicen en este dispositivo también. - - - Availability - Disponibilidad + End-to-end encryption has not been initialized on this account. + El cifrado de extremo a extremo a sido iniciado en esta cuenta - - Choose what to sync - Elija qué sincronizar + End-to-end encryption mnemonic + Mnemónico para cifrado de extremo a extremo + + + Expand Memory + + + + Folder creation failed + Ha fallado la creación de la carpeta - Force sync now Forzar la sincronización ahora - - Restart sync - Reiniciar sync + Forget encryption setup + Olvidar la configuración de cifrado - - Remove folder sync connection - Eliminar la sincronización de carpetas conectadas + Forget the end-to-end encryption on this device + Olvidar el cifrado de extremo a extremo en este dispositivo - - Disable virtual file support … - Desactivar soporte para archivos virtuales … + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Al olvidar el cifrado de extremo a extremo se eliminarán los datos sensibles y todos los archivos cifrados de este dispositivo. <br>Sin embargo, los archivos cifrados permanecerán en el servidor y en todos sus otros dispositivos, si se encuentran configurados. - - Enable virtual file support %1 … - Activar soporte para archivos virtuales %1 ... + Migrate certificate to a new one + Migrar certificado a uno nuevo - - (experimental) - (experimental) + No %1 connection configured. + No hay ninguna conexión de %1 configurada. - - Folder creation failed - Ha fallado la creación de la carpeta + No account configured. + No se ha configurado ninguna cuenta. - - Confirm Folder Sync Connection Removal - Confirme la sincronización para la eliminación de la carpeta conectada + Open folder + Abrir carpeta + + + Pause sync + Pausar sincronización + + + Please wait for the folder to sync before trying to encrypt it. + Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. - Remove Folder Sync Connection Eliminar carpeta de sincronización conectada - - Grant access to sync folder - Conceder acceso a la carpeta de sincronización + Remove folder sync connection + Eliminar la sincronización de carpetas conectadas - - Access Error - Error de acceso + Restart sync + Reiniciar sync - - Could not acquire access to the selected folder. Please try again. - No se pudo acceder a la carpeta seleccionada. Por favor, inténtelo de nuevo. + Resume sync + Continuar sincronización - - Wrong Folder - Carpeta incorrecta + Server %1 is currently being redirected, or your connection is behind a captive portal. + El servidor %1 está siendo redirigido actualmente, ó, su conexión está detrás de un portal cautivo. - - Please select the original sync folder: %1 - Por favor, seleccione la carpeta de sincronización original: %1 + Server %1 is currently in maintenance mode. + El servidor %1 se encuentra en modo mantenimiento. - - - Bookmark Error - Error de marcador + Server %1 is temporarily unavailable. + Servidor %1 no está disponible temporalmente. - - Could not create a security bookmark for the folder. Please try again. - No se pudo crear un marcador de seguridad para la carpeta. Por favor, inténtelo de nuevo. + Server configuration error: %1 at %2. + Error de configuración del servidor: %1 en %2, - - Could not resolve the security bookmark. Please try again. - No se pudo resolver el marcador de seguridad. Por favor, inténtelo de nuevo. + Set up encryption + Configurar cifrado - - Disable virtual file support? - ¿Desactivar soporte para archivos virtuales? + Signed out from %1. + Cerró sesión desde %1. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Esta acción deshabilitará el soporte de archivos virtuales. Como consecuencia, se descargará el contenido de las carpetas que estén marcadas como "disponible solo en línea". - -La única ventaja de deshabilitar el soporte de archivos virtuales es para la característica de sincronización selectiva que estará disponible de nuevo. - -Además, esta acción interrumpirá cualquier sincronización en curso. - - - - Disable support - Desactivar soporte - - - - End-to-end encryption mnemonic - Mnemónico para cifrado de extremo a extremo - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - Para proteger su Identidad Criptográfica, ciframos la misma con un mnemonico de 12 palabras de diccionario. Por favor, anótelo y consérvelo a salvo. Lo necesitará para configurar la sincronización de carpetas cifradas en sus otros dispositivos. - - - - Forget the end-to-end encryption on this device - Olvidar el cifrado de extremo a extremo en este dispositivo + Standard file sync + Sincronización de archivos estándar - - Do you want to forget the end-to-end encryption settings for %1 on this device? - ¿Desea olvidar los ajustes de cifrado de extremo a extremo para %1 en este dispositivo? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Al olvidar el cifrado de extremo a extremo se eliminarán los datos sensibles y todos los archivos cifrados de este dispositivo. <br>Sin embargo, los archivos cifrados permanecerán en el servidor y en todos sus otros dispositivos, si se encuentran configurados. + Storage space: … + Espacio de almacenamiento: ... - Sync Running Sincronización en curso - - The syncing operation is running.<br/>Do you want to terminate it? - La sincronización está en curso.<br/>¿Desea interrumpirla? + Synchronize all + Sincronizar todo - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. + Synchronize none + No sincronizar nada - - Currently there is no storage usage information available. - Actualmente no hay información disponible sobre el uso de almacenamiento. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + La carpeta tiene un pequeño problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. - - %1 in use - %1 en uso + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. - - Connected to %1 (%2). - Conectado a %1 ( %2 ). + The server version %1 is unsupported! Proceed at your own risk. + ¡La versión %1 del servidor no está soportada! Si continúas, lo haces bajo tu propio riesgo. - - Migrate certificate to a new one - Migrar certificado a uno nuevo + The syncing operation is running.<br/>Do you want to terminate it? + La sincronización está en curso.<br/>¿Desea interrumpirla? - There are folders that have grown in size beyond %1MB: %2 Existen carpetas que han aumentado de tamaño más allá de %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - El cifrado de extremo a extremo ha sido inicializado en esta cuenta con otro dispositivo. <br> Ingrese el mnemonico para que las carpetas cifradas se sincronicen en este dispositivo también. - - - - This account supports end-to-end encryption, but it needs to be set up first. - Esta cuenta soporta cifrado de extremo a extremo, pero debe ser configurado primero. - - - - The virtual files integration does not support end-to-end encryption yet. - La integración de archivos virtuales aún no admite el cifrado de extremo a extremo. + There are folders that were not synchronized because they are external storages: + - - Set up encryption - Configurar cifrado - - - - Connected to %1. - Conectado a %1. - - - - Server %1 is temporarily unavailable. - Servidor %1 no está disponible temporalmente. - - - - Server %1 is currently in maintenance mode. - El servidor %1 se encuentra en modo mantenimiento. - - - - Signed out from %1. - Cerró sesión desde %1. - - - - There are folders that were not synchronized because they are too big: - Hay carpetas que no se han sincronizado porque son demasiado grandes: - - - - There are folders that were not synchronized because they are external storages: - Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: - - - - There are folders that were not synchronized because they are too big or external storages: - Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: + There are folders that were not synchronized because they are too big or external storages: + - - - Open folder - Abrir carpeta - - - - Resume sync - Continuar sincronización + There are folders that were not synchronized because they are too big: + - - Pause sync - Pausar sincronización + This account supports end-to-end encryption, but it needs to be set up first. + Esta cuenta soporta cifrado de extremo a extremo, pero debe ser configurado primero. - - <p>Could not create local folder <i>%1</i>.</p> - <p>No pudo crear la carpeta local <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Esta acción deshabilitará el soporte de archivos virtuales. Como consecuencia, se descargará el contenido de las carpetas que estén marcadas como "disponible solo en línea". + +La única ventaja de deshabilitar el soporte de archivos virtuales es para la característica de sincronización selectiva que estará disponible de nuevo. + +Además, esta acción interrumpirá cualquier sincronización en curso. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>¿De verdad quiere dejar de sincronizar la carpeta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> elminará los archivo.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado mnemónica. +<b>Este proceso no es puede deshacer. ¿Seguro que desea continuar?</b> - - %1 of %2 in use - %1 de %2 en uso + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + Para proteger su Identidad Criptográfica, ciframos la misma con un mnemonico de 12 palabras de diccionario. Por favor, anótelo y consérvelo a salvo. Lo necesitará para configurar la sincronización de carpetas cifradas en sus otros dispositivos. - - %1 as %2 - %1 como %2 + Unable to connect to %1. + No es posible conectarse con %1. - - The server version %1 is unsupported! Proceed at your own risk. - ¡La versión %1 del servidor no está soportada! Si continúas, lo haces bajo tu propio riesgo. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Las carpetas no seleccionadas serán <b>eliminadas</b> de su carpeta local y ya no serán sincronizadas en este ordenador - - Server %1 is currently being redirected, or your connection is behind a captive portal. - El servidor %1 está siendo redirigido actualmente, ó, su conexión está detrás de un portal cautivo. + Virtual file sync + Sincronización de archivos virtual - - Connecting to %1 … - Conectando a %1 ... + Warning + Aviso - - Unable to connect to %1. - No es posible conectarse con %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. +Espere a una nueva sincronización, luego cifrala. - - Server configuration error: %1 at %2. - Error de configuración del servidor: %1 en %2, + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + No puede cifrar esta carpeta debido a que el cifrado de extremo a extremo aún no está configurado en este dispositivo. +¿Desea hacerlo ahora mismo? - You need to accept the terms of service at %1. Debe aceptar los términos de servicio en %1. - - No %1 connection configured. - No hay ninguna conexión de %1 configurada. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Parece que tiene la función de Archivos Virtuales activada en esta carpeta. Por el momento, no es posible descargar implícitamente los archivos virtuales que están cifrados de extremo a extremo. Para obtener la mejor experiencia con los archivos virtuales y el cifrado de extremo a extremo, asegúrese de que la carpeta cifrada está marcada con "Hacer que esté siempre disponible localmente". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde su navegador. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. + + There was an invalid response to an authenticated WebDAV request Ha habido una respuesta no válida a una solicitud autenticada de WebDAV @@ -1070,57 +856,46 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::AccountState - - Signed out - Cerrar sesión + Asking Credentials + Solicitando credenciales - - Disconnected - Desconectado + Configuration error + Error en la configuración - Connected Conectado - - Service unavailable - Servicio no disponible + Disconnected + Desconectado - Maintenance mode Modo mantenimiento - - Redirect detected - Redirección detectada + Need the user to accept the terms of service + Necesita el usuario aceptar los términos de servicio - Network error Error en la red - - Configuration error - Error en la configuración + Redirect detected + Redirección detectada - - Asking Credentials - Solicitando credenciales + Service unavailable + Servicio no disponible - - Need the user to accept the terms of service - Necesita el usuario aceptar los términos de servicio + Signed out + Cerrar sesión - Unknown account state Estado de cuenta desconocido @@ -1128,17 +903,14 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::ActivityListModel - - For more activities please open the Activity app. - Para más detalles, por favor, abre la app Actividades. - - - Fetching activities … Actividades de búsqueda … - + For more activities please open the Activity app. + Para más detalles, por favor, abre la app Actividades. + + Network error occurred: client will retry syncing. Ha ocurrido un error de red: el cliente reintentará la sincronización. @@ -1146,168 +918,134 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::AddCertificateDialog - - SSL client certificate authentication - Certificado de autentificación SSL del cliente + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Usar encriptación pkcs12 es muy recomendable, puesto que una copia se guardará en el archivo de configuración. - - This server probably requires a SSL client certificate. - Probablemente este servidor requiera un certificado SSL del cliente. + Browse … + Explorar ... - Certificate & Key (pkcs12): Certificado & Key (pkcs12): - + Certificate files (*.p12 *.pfx) + Archivos de certificado (*.p12 *.pfx) + + Certificate password: Contraseña del certificado: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Usar encriptación pkcs12 es muy recomendable, puesto que una copia se guardará en el archivo de configuración. - - - - Browse … - Explorar ... + SSL client certificate authentication + Certificado de autentificación SSL del cliente - Select a certificate Seleccione un certificado - - Certificate files (*.p12 *.pfx) - Archivos de certificado (*.p12 *.pfx) - - - - Could not access the selected certificate file. - No se puede acceder al archivo del certificado seleccionado. + This server probably requires a SSL client certificate. + Probablemente este servidor requiera un certificado SSL del cliente. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Algunos ajustes fueron configurados en %1 versiones de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar implica <b>%2 estos ajustes</b>.<br><br>El archivo de configuración actual ya se respaldó en <i>%3</i>. - - - - newer - newer software version - recientes - - - - older - older software version - antiguos + %1 accounts + number of accounts imported + %1 cuentas - - ignoring - ignorando + %1 folders + number of folders imported + %1 carpetas - - deleting - eliminando + 1 account + 1 cuenta - - Quit - Salir + 1 folder + 1 carpeta - Continue Continuar - - %1 accounts - number of accounts imported - %1 cuentas + Error accessing the configuration file + Error al acceder al archivo de configuración - - 1 account - 1 cuenta - - - - %1 folders - number of folders imported - %1 carpetas - - - - 1 folder - 1 carpeta + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + Se importaron %1 y %2 desde un cliente de escritorio antiguo. +%3 - Legacy import Importación heredada - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - Se importaron %1 y %2 desde un cliente de escritorio antiguo. -%3 + Quit + Salir - - Error accessing the configuration file - Error al acceder al archivo de configuración + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Algunos ajustes fueron configurados en %1 versiones de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar implica <b>%2 estos ajustes</b>.<br><br>El archivo de configuración actual ya se respaldó en <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Se ha producido un error al acceder al archivo de configuración en %1. Por favor, asegúrese de que su cuenta del sistema puede acceder al archivo. - - - OCC::AuthenticationDialog + + deleting + eliminando + - - Authentication Required - Se requiere autenticación + ignoring + ignorando - - Enter username and password for "%1" at %2. - Introduce usuario y contraseña para "%1" en %2. + newer + newer software version + recientes - - &Username: - &Usuario: + older + older software version + antiguos + + + OCC::AuthenticationDialog - &Password: &Contraseña: - + + &Username: + &Usuario: + + + Authentication Required + Se requiere autenticación + + + Enter username and password for "%1" at %2. + Introduce usuario y contraseña para "%1" en %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 Fallo al desbloquear la carpeta cifrada %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -1315,245 +1053,195 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Error al actualizar los metadatos: %1 + + File %1 can not be downloaded because of a local file name clash! ¡El archivo %1 no se puede descargar a causa de un conflicto con el nombre de un archivo local! - + The file %1 is currently in use + El archivo %1 se encuentra actualmente en uso + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file No fue posible actualizar los metadatos del archivo nuevo %1. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 Error al actualizar los metadatos: %1 - - The file %1 is currently in use - El archivo %1 se encuentra actualmente en uso - - - - OCC::BulkPropagatorJob - - File %1 cannot be uploaded because another file with the same name, differing only in case, exists El archivo %1 no se puede subir porque ya existe otro con el mismo nombre, solo difiere en las mayúsculas/minúsculas - - File contains leading or trailing spaces and couldn't be renamed - El archivo tiene espacio iniciales o finales y no pudo ser renombrado + File %1 has invalid modification time. Do not upload to the server. + El archivo %1 tiene una hora de modificación no válida. No subir al servidor. - File %1 has invalid modified time. Do not upload to the server. El archivo %1 tiene una hora de modificación no válida. No subir al servidor. - File Removed (start upload) %1 Archivo eliminado (comenzar subida) %1 - - File %1 has invalid modification time. Do not upload to the server. - El archivo %1 tiene una hora de modificación no válida. No subir al servidor. - - - - Local file changed during syncing. It will be resumed. - Un archivo local ha cambiado durante la sincronización. Será subido. + File contains leading or trailing spaces and couldn't be renamed + El archivo tiene espacio iniciales o finales y no pudo ser renombrado - - Local file changed during sync. Un archivo local ha cambiado durante la sincronización. - + Local file changed during syncing. It will be resumed. + Un archivo local ha cambiado durante la sincronización. Será subido. + + Network error: %1 Error de red: %1 - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + Restoration failed: %1 + Fallo al restaurar: %1 - - + The file %1 is currently in use El archivo %1 se encuentra en uso - The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. - - - Restoration failed: %1 - Fallo al restaurar: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. No se puede renombrar el archivo porque hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. - Could not rename file. Please make sure you are connected to the server. No se ha podido renombrar el archivo. Por favor, asegúrese de que está conectado al servidor. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - No tiene permisos para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - - - Failed to fetch permissions with error %1 Fallo al obtener permisos con error %1 - Filename contains leading and trailing spaces. El nombre del archivo contiene espacios iniciales y finales. - Filename contains leading spaces. El nombre del archivo contiene espacios al inicio. - Filename contains trailing spaces. El nombre del archivo contiene espacios al final. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + No tiene permisos para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 no soporta nombres de archivo idénticos con diferencias de capitalización de letras. + + + 0 byte + 0 bytes + + Case Clash Conflict Conflicto de capitalización - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. + Case clashing file + Archivo con conflicto de capitalización - Error Error - Existing file Archivo existente - - file A - archivo A - - - - - today - hoy + Filename contains illegal characters: %1 + El nombre del archivo contiene caracteres ilegales: %1 - - - - 0 byte - 0 bytes + + Filename contains leading and trailing spaces. + El nombre del archivo contiene espacios iniciales y finales. - - - Open existing file - Abrir archivo existente + Filename contains leading spaces. + El nombre del archivo contiene espacios al inicio. - - Case clashing file - Archivo con conflicto de capitalización + Filename contains trailing spaces. + El nombre del archivo contiene espacios al final. - - file B - archivo B + New filename + Nuevo nombre de archivo - - Open clashing file Abrir archivo con problema de capitalización - - Please enter a new name for the clashing file: - Por favor ingrese un nombre nuevo para el archivo con el problema de capitalización: + Open existing file + Abrir archivo existente - - New filename - Nuevo nombre de archivo + Please enter a new name for the clashing file: + Por favor ingrese un nombre nuevo para el archivo con el problema de capitalización: - Rename file Renombrar archivo - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. El archivo "%1" no pudo ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. - - %1 does not support equal file names with only letter casing differences. - %1 no soporta nombres de archivo idénticos con diferencias de capitalización de letras. - - - - Filename contains leading and trailing spaces. - El nombre del archivo contiene espacios iniciales y finales. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. - - Filename contains leading spaces. - El nombre del archivo contiene espacios al inicio. + Use invalid name + Usar nombre inválido - - Filename contains trailing spaces. - El nombre del archivo contiene espacios al final. + file A + archivo A - - Use invalid name - Usar nombre inválido + file B + archivo B - - Filename contains illegal characters: %1 - El nombre del archivo contiene caracteres ilegales: %1 + today + hoy - + OCC::CleanupPollsJob - Error writing metadata to the database Error al escribir los metadatos en la base de datos @@ -1561,136 +1249,117 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - Ingrese código PIN - - - Enter Certificate USB Token PIN: Ingrese el PIN del Token USB para certificados: - + Enter E2E passphrase + Introduce la frase de acceso E2E + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Ingrese código PIN + + Invalid PIN. Login failed PIN inválido, falló el inicio de sesión - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! El inicio de sesión al Token falló luego de proporcionar el PIN del usuario. Podría ser inválido o incorrecto. ¡Por favor, inténtelo de nuevo! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, introduzca su frase de cifrado de extremo a extremo:<br><br>Nombre de usuario: %2<br> Cuenta: %3<br> - - - Enter E2E passphrase - Introduce la frase de acceso E2E - - + OCC::ConflictDialog - - Sync Conflict - Conflicto de sincronización - - - - - Conflicting versions of %1. - Versiones en conflicto de %1. + 0 byte + 0 byte - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - ¿Qué versión del archivo quiere mantener?<br/>Si selecciona ambas versiones, al archivo local se le añadirá un número a su nombre + <a href="%1">Open local version</a> + <a href="%1">Abrir versión local</a> - - Local version - Versión local + <a href="%1">Open server version</a> + <a href="%1">Abrir versión en servidor</a> - - Click to open the file Clic para abrir el archivo - - - today - hoy + Conflicting versions of %1. + Versiones en conflicto de %1. - - - 0 byte - 0 byte + Keep both versions + Mantener ambas versiones - - <a href="%1">Open local version</a> - <a href="%1">Abrir versión local</a> + Keep local version + Mantener versión local - - Server version - Versión del servidor + Keep selected version + Mantener la versión seleccionada - - <a href="%1">Open server version</a> - <a href="%1">Abrir versión en servidor</a> + Keep server version + Mantener la versión del servidor - - - - Keep selected version - Mantener la versión seleccionada + + Local version + Versión local - Open local version Abrir la versión local - Open server version Abrir la versión en servidor - - Keep both versions - Mantener ambas versiones + Server version + Versión del servidor - - Keep local version - Mantener versión local + Sync Conflict + Conflicto de sincronización - - Keep server version - Mantener la versión del servidor + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + ¿Qué versión del archivo quiere mantener?<br/>Si selecciona ambas versiones, al archivo local se le añadirá un número a su nombre - + + today + hoy + + OCC::ConflictSolver - - - Error + Confirm deletion + Confirmar borrado + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + ¿Quieres eliminar la carpeta <i>%1</i> y todo su contenido permanentemente? + + + Do you want to delete the file <i>%1</i> permanently? + ¿Quieres eliminar el archivo <i>%1</i> permanentemente? + + + Error Error - - Moving file failed: %1 @@ -1698,224 +1367,212 @@ Además, esta acción interrumpirá cualquier sincronización en curso. + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - ¿Quieres eliminar la carpeta <i>%1</i> y todo su contenido permanentemente? + Authentication error: Either username or password are wrong. + Error de autenticación: El usuario o la contraseña son incorrectos - - Do you want to delete the file <i>%1</i> permanently? - ¿Quieres eliminar el archivo <i>%1</i> permanentemente? + No %1 account configured + The placeholder will be the application name. Please keep it + No hay cuenta %1 configurada - - Confirm deletion - Confirmar borrado + Please update to the latest server and restart the client. + Por favor, actualice a la última versión del servidor y reinicie el cliente. - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - No hay cuenta %1 configurada + The configured server for this client is too old + La configuración del servidor para este cliente es demasiado antigua - + The provided credentials are not correct + Las credenciales proporcionadas no son correctas + + Timeout Tiempo de espera superado + + + OCC::DataProtectionPage - - The configured server for this client is too old - La configuración del servidor para este cliente es demasiado antigua + Agree + - - Please update to the latest server and restart the client. - Por favor, actualice a la última versión del servidor y reinicie el cliente. + Form + Formulario - - Authentication error: Either username or password are wrong. - Error de autenticación: El usuario o la contraseña son incorrectos + Settings + - - The provided credentials are not correct - Las credenciales proporcionadas no son correctas + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Error al cancelar la eliminación de un archivo + Back + Atrás - - Error while canceling deletion of %1 - Error al cancelar la eliminación de %1 + Form + Formulario + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! + Error while canceling deletion of %1 + Error al cancelar la eliminación de %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - El servidor devolvió una respuesta inesperada que no se pudo leer. Por favor, contacte con el administrador de su servidor. + + Error while canceling deletion of a file + Error al cancelar la eliminación de un archivo + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! ¡Hubo un error al configurar los metadatos cifrados! - Encrypted metadata setup error: initial signature from server is empty. Error de configuración de los metadatos cifrados: la firma inicial del servidor está vacía. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! + - - Error while opening directory %1 - Error al abrir el directorio %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + El servidor devolvió una respuesta inesperada que no se pudo leer. Por favor, contacte con el administrador de su servidor. + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Directorio no accesible en el cliente, permiso denegado - Directory not found: %1 Directorio no encontrado: %1 - - Filename encoding is not valid - La codificación del nombre del archivo no es válida + Error while opening directory %1 + Error al abrir el directorio %1 - Error while reading directory %1 Error al leer el directorio %1 - + + Filename encoding is not valid + La codificación del nombre del archivo no es válida + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - No se pudo iniciar la edición local. + An error occurred during data retrieval. + Ocurrió un error mientras se recuperaban los datos. - - An error occurred during setup. Ocurrió un error mientras se hacía la configuración. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - No fue posible encontrar un archivo para edición local. Asegúrese de que la ruta es válida y que esta se encuentra sincronizada localmente. + An error occurred trying to synchronise the file to edit locally. + Ocurrió un error mientras se intentaba sincronizar el archivo para edición local. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. No fue posible encontrar un archivo para edición local. Asegúrese de que no está excluida a través de la sincronización selectiva. - - - - An error occurred during data retrieval. - Ocurrió un error mientras se recuperaban los datos. - - - - - An error occurred trying to synchronise the file to edit locally. - Ocurrió un error mientras se intentaba sincronizar el archivo para edición local. - - - - Server error: PROPFIND reply is not XML formatted! - Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + No fue posible encontrar un archivo para edición local. Asegúrese de que la ruta es válida y que esta se encuentra sincronizada localmente. - Could not find a remote file info for local editing. Make sure its path is valid. No fue posible encontrar la información del archivo remoto para edición local. Asegúrese de que la ruta es válida. - - Invalid local file path. - Ruta al archivo local inválida. - - - Could not open %1 No fue posible abrir %1 - - Please try again. - Por favor intente de nuevo. + Could not start editing locally. + No se pudo iniciar la edición local. - File %1 already locked. El archivo %1 ya está bloqueado. - - + File %1 could not be locked. + El archivo %1 no pudo ser bloqueado. + + + File %1 now locked. + El archivo %1 ahora está bloqueado. + + + Invalid local file path. + Ruta al archivo local inválida. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. El bloqueo se mantendrá por %1 minutos. Puede también desbloquear este archivo manualmente una vez que termine de editarlo. - - File %1 now locked. - El archivo %1 ahora está bloqueado. + Please try again. + Por favor intente de nuevo. - - File %1 could not be locked. - El archivo %1 no pudo ser bloqueado. + Server error: PROPFIND reply is not XML formatted! + Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. No se pudo validar la solicitud para abrir un archivo desde el servidor. - Please try again. Por favor, inténtelo de nuevo. @@ -1923,404 +1580,308 @@ Además, esta acción interrumpirá cualquier sincronización en curso. OCC::EditLocallyVerificationJob - - Invalid token received. - Se recibió un token inválido. - - - - - - Please try again. - Por favor, inténtelo de nuevo. - - - - Invalid file path was provided. - Se ha proporcionado una ruta de archivo inválida. + An error occurred trying to verify the request to edit locally. + Ha ocurrido un error intentando verificar la petición para editar localmente. - - + Could not find an account for local editing. No se ha podido encontrar una cuenta para edición local. - Could not start editing locally. No se ha podido comenzar la edición local. - - An error occurred trying to verify the request to edit locally. - Ha ocurrido un error intentando verificar la petición para editar localmente. + Invalid file path was provided. + Se ha proporcionado una ruta de archivo inválida. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - No se pueden generar los metadatos para el cifrado, desbloquea la carpeta. -Esto podría ser un problema con tu librería OpenSSL + Invalid token received. + Se recibió un token inválido. - + + Please try again. + Por favor, inténtelo de nuevo. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Error al obtener el ID de la carpeta cifrada. + + Error fetching metadata. Error al obtener los metadatos. - - - Error locking folder. Error al bloquear la carpeta. - - Error fetching encrypted folder ID. - Error al obtener el ID de la carpeta cifrada. - - - Error parsing or decrypting metadata. Error al analizar o descifrar los metadatos. - Failed to upload metadata Fallo al subir los metadatos - OCC::FileActionsModel - - - Your account is offline %1. - account url - Tu cuenta está offline %1. - - - - The file ID is empty for %1. - file name - El ID de archivo está vacío para %1. - - - - The file type for %1 is not valid. - file name - El tipo de archivo para %1 no es válido. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - El servidor no devolvió ninguna acción de archivo para los %1 archivos. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - %1 no pudo iniciar sesión. Inténtelo de nuevo más tarde. Si necesita ayuda, contacte con el administrador. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 hecho. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + No se pueden generar los metadatos para el cifrado, desbloquea la carpeta. +Esto podría ser un problema con tu librería OpenSSL OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - Hace %1 segundoHace %1 segundo(s)Hace %1 segundo(s) - - - - %1 minute(s) ago - minutes elapsed since file last modified - Hace %1 minutoHace %1 minuto(s)Hace %1 minuto(s) + %1 day(s) ago + days elapsed since file last modified + + Hace %1 día + Hace %1 día(s) + - %1 hour(s) ago hours elapsed since file last modified - Hace %1 horaHace %1 hora(s)Hace %1 hora(s) + + Hace %1 hora + Hace %1 hora(s) + - - %1 day(s) ago - days elapsed since file last modified - Hace %1 díaHace %1 día(s)Hace %1 día(s) + %1 minute(s) ago + minutes elapsed since file last modified + + Hace %1 minuto + Hace %1 minuto(s) + - %1 month(s) ago months elapsed since file last modified - Hace %1 mesHace %1 mesesHace %1 meses + + Hace %1 mes + Hace %1 meses + + + + %1 second(s) ago + seconds elapsed since file last modified + + Hace %1 segundo + Hace %1 segundo(s) + - %1 year(s) ago years elapsed since file last modified - Hace %1 añoHace %1 añosHace %1 años + + Hace %1 año + Hace %1 años + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Bloqueado por %1 - Caduca en %2 minutoBloqueado por %1 - Caduca en %2 minutosBloqueado por %1 - Caduca en %2 minutos + + Bloqueado por %1 - Caduca en %2 minuto + Bloqueado por %1 - Caduca en %2 minutos + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + Se produjo un error inesperado al intentar acceder al servidor. Intente acceder de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. La URL de consulta no comienza con HTTPS a pesar de que la URL de inicio de sesión comenzó con HTTPS. El inicio de sesión no será posible porque esto podría ser un problema de seguridad. Por favor, póngase en contacto con su administrador. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + El servidor no respondió con los datos esperados. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. El servidor no está disponible temporalmente porque está en mantenimiento. Inténtalo de nuevo una vez finalizado el mantenimiento. - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - Se produjo un error inesperado al intentar acceder al servidor. Intente acceder de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. - - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. No pudimos analizar la respuesta del servidor. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. - - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - El servidor no respondió con los datos esperados. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. - - + OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - No se ha podido abrir el navegador, por favor copie el enlace en su navegador. + Copy Link + Copiar Link - - Waiting for authorization - Esperando autorización + Error + Error + + + Link copied to clipboard. + Enlace copiado al portapapeles. + + + Open Browser + Abrir Navegador - Polling for authorization Pidiendo autorización - Starting authorization Iniciando autorización - - Link copied to clipboard. - Enlace copiado al portapapeles. + Switch to your browser to connect your account + Cambiar al navegador para conectar con tu cuenta + + + Unable to open the Browser, please copy the link to your Browser. + No se ha podido abrir el navegador, por favor copie el enlace en su navegador. - - Open Browser - Abrir Navegador - - - - Copy Link - Copiar Link + Waiting for authorization + Esperando autorización - + OCC::Folder - - - %1 has been removed. - %1 names a file. - %1 ha sido eliminado. - - - - %1 has been updated. - %1 names a file. - %1 ha sido actualizado. + + %1 and %n other file(s) are currently locked. + + %1 y otro %n archivo está actualmente bloqueado. + %1 y otro(s) %n archivo(s) están bloqueados actualmente. + - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 ha sido renombrado a %2. + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 y otro archivo no pudieron ser sincronizados debido a errores. Para más detalles vea el registro. + %1 y otros %n archivos no se han podido sincronizar debido a errores. Para más detalles vea el registro. + - - - %1 has been moved to %2. - %1 ha sido movido a %2. + + %1 and %n other file(s) have been added. + + %1 y %n otro(s) archivo(s) ha(n) sido añadido(s). + %1 y %n otro(s) archivo(s) ha(n) sido añadido(s). + - %1 and %n other file(s) have been removed. - %1 y %n otro archivo han sido eliminados%1 y %n otros archivos han sido eliminados.%1 y %n otros archivos han sido eliminados. + + %1 y %n otro archivo han sido eliminados + %1 y %n otros archivos han sido eliminados. + - - - Please choose a different location. The folder %1 doesn't exist. - Por favor, escoja una ubicación diferente. La carpeta %1 no existe. + + %1 and %n other file(s) have been updated. + + %1 y otro archivo han sido actualizados. + %1 y otros %n archivos han sido actualizados. + - - Please choose a different location. %1 isn't a valid folder. - Por favor, escoja una ubicación diferente. La carpeta %1 no es válida. + %1 could not be synced due to an error. See the log for details. + %1 no se ha podido sincronizar debido a un error. Para más detalles, vea el registro. - - Please choose a different location. %1 isn't a readable folder. - Por favor, escoja una ubicación diferente. La carpeta %1 no se puede leer. + %1 has a sync conflict. Please check the conflict file! + Conflicto al sincronizar %1. ¡Por favor compruebe el archivo! - - %1 and %n other file(s) have been added. - %1 y %n otro(s) archivo(s) ha(n) sido añadido(s).%1 y %n otro(s) archivo(s) ha(n) sido añadido(s).%1 y %n otro(s) archivo(s) ha(n) sido añadido(s). + %1 has and %n other file(s) have sync conflicts. + + %1 y otro archivo han tenido conflictos al sincronizar. + %1 y otros %n archivos han tenido conflictos al sincronizar. + - %1 has been added. %1 names a file. %1 ha sido añadido. - - %1 and %n other file(s) have been updated. - %1 y otro archivo han sido actualizados.%1 y otros %n archivos han sido actualizados.%1 y otros %n archivos han sido actualizados. - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 ha sido renombrado a %2 y otro archivo ha sido renombrado.%1 ha sido renombrado a %2 y otros %n archivos han sido renombrado.%1 ha sido renombrado a %2 y otros %n archivos han sido renombrado. - - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 ha sido movido a %2 y otro archivo ha sido movido.%1 ha sido movido a %2 y otros %n archivos han sido movidos.%1 ha sido movido a %2 y otros %n archivos han sido movidos. - - - - %1 has and %n other file(s) have sync conflicts. - %1 y otro archivo han tenido conflictos al sincronizar.%1 y otros %n archivos han tenido conflictos al sincronizar.%1 y otros %n archivos han tenido conflictos al sincronizar. + + %1 ha sido movido a %2 y otro archivo ha sido movido. + %1 ha sido movido a %2 y otros %n archivos han sido movidos. + - - %1 has a sync conflict. Please check the conflict file! - Conflicto al sincronizar %1. ¡Por favor compruebe el archivo! - - - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 y otro archivo no pudieron ser sincronizados debido a errores. Para más detalles vea el registro.%1 y otros %n archivos no se han podido sincronizar debido a errores. Para más detalles vea el registro.%1 y otros %n archivos no se han podido sincronizar debido a errores. Para más detalles vea el registro. + %1 has been moved to %2. + %1 ha sido movido a %2. - - %1 could not be synced due to an error. See the log for details. - %1 no se ha podido sincronizar debido a un error. Para más detalles, vea el registro. + %1 has been removed. + %1 names a file. + %1 ha sido eliminado. - - %1 and %n other file(s) are currently locked. - %1 y otro %n archivo está actualmente bloqueado.%1 y otro(s) %n archivo(s) están bloqueados actualmente.%1 y otro(s) %n archivo(s) están bloqueados actualmente. - - - - %1 is currently locked. - %1 está actualmente bloqueado. - - - - Sync Activity - Actividad de la sincronización + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 ha sido renombrado a %2 y otro archivo ha sido renombrado. + %1 ha sido renombrado a %2 y otros %n archivos han sido renombrado. + - - Could not read system exclude file - No se ha podido leer el archivo de exclusión del sistema + %1 has been renamed to %2. + %1 and %2 name files. + %1 ha sido renombrado a %2. - - A new folder larger than %1 MB has been added: %2. - - Una carpeta mayor de %1 MB ha sido añadida: %2. - + %1 has been updated. + %1 names a file. + %1 ha sido actualizado. - - A folder from an external storage has been added. - - Una carpeta de almacenamiento externo ha sido añadida. - + %1 is currently locked. + %1 está actualmente bloqueado. - - Please go in the settings to select it if you wish to download it. - Por favor vaya a opciones a seleccionarlo si desea descargar esto. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Una carpeta ha sobrepasado el límite establecido de tamaño de %1MB: %2. %3 - - Keep syncing - Continuar sincronización - - - - Stop syncing - Detener sincronización - - - - The folder %1 has surpassed the set folder size limit of %2MB. - La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. - - - - Would you like to stop syncing this folder? - ¿Desea detener la sincronización de esta carpeta? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Han sido eliminados un gran número de archivos en el servidor. +Por favor, confirme si quiere proceder con estas eliminaciones. +Alternativamente, puede restaurar todos los archivos borrados subiéndolos desde la carpeta '%1' al servidor. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - Se ha creado la carpeta %1 pero se excluyó de la sincronización con anterioridad. Los datos en su interior no se sincronizarán. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Han sido eliminados un gran número de archivos en su carpeta local '%1'. +Por favor, confirma si quiere continuar con estas eliminaciones. +Alternativamente, puede restaurar todos los archivos borrados descargándolos del servidor. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Se ha creado el archivo %1 pero se excluyó de la sincronización con anterioridad. No se sincronizará. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2333,210 +1894,206 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - La descarga del archivo virtual ha fallado con código "%1" , estado "%2" y mensaje de error "%3" + Could not read system exclude file + No se ha podido leer el archivo de exclusión del sistema - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Han sido eliminados un gran número de archivos en el servidor. -Por favor, confirme si quiere proceder con estas eliminaciones. -Alternativamente, puede restaurar todos los archivos borrados subiéndolos desde la carpeta '%1' al servidor. + Keep syncing + Continuar sincronización - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - Han sido eliminados un gran número de archivos en su carpeta local '%1'. -Por favor, confirma si quiere continuar con estas eliminaciones. -Alternativamente, puede restaurar todos los archivos borrados descargándolos del servidor. + Please choose a different location. %1 isn't a readable folder. + Por favor, escoja una ubicación diferente. La carpeta %1 no se puede leer. - - Remove all files? - ¿Eliminar todos los archivos? + Please choose a different location. %1 isn't a valid folder. + Por favor, escoja una ubicación diferente. La carpeta %1 no es válida. + + + Please choose a different location. The folder %1 doesn't exist. + Por favor, escoja una ubicación diferente. La carpeta %1 no existe. + + + Please go in the settings to select it if you wish to download it. + Por favor vaya a opciones a seleccionarlo si desea descargar esto. - Proceed with Deletion Continuar con la eliminación - - Restore Files to Server - Restaurar los archivos al servidor + Remove all files? + ¿Eliminar todos los archivos? - Restore Files from Server Restaurar los archivos desde el servidor - - - OCC::FolderCreationDialog - - - Create new folder - Crear nueva carpeta - - - - Enter folder name - Escriba el nombre de la carpeta + + Restore Files to Server + Restaurar los archivos al servidor - - Folder already exists - Ya existe la carpeta + Stop syncing + Detener sincronización - - Error - Error + Sync Activity + Actividad de la sincronización - - Could not create a folder! Check your write permissions. - ¡No se pudo crear la carpeta! Comprueba los permisos de escritura. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Se ha creado el archivo %1 pero se excluyó de la sincronización con anterioridad. No se sincronizará. - - - OCC::FolderMan - - Could not reset folder state - No se ha podido restablecer el estado de la carpeta + The folder %1 has surpassed the set folder size limit of %2MB. + La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. - - (backup) - (copia de seguridad) + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Se ha creado la carpeta %1 pero se excluyó de la sincronización con anterioridad. Los datos en su interior no se sincronizarán. - - (backup %1) - (copia de seguridad %1) + Virtual file download failed with code "%1", status "%2" and error message "%3" + La descarga del archivo virtual ha fallado con código "%1" , estado "%2" y mensaje de error "%3" - - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - Se ha encontrado un registro de sincronización antiguo "%1", que no se ha podido eliminar. Por favor, asegúrese de que ninguna aplicación lo está utilizando en este momento. + Would you like to stop syncing this folder? + ¿Desea detener la sincronización de esta carpeta? + + + OCC::FolderCreationDialog - - Undefined state. - Estado no definido. + %1 Create new folder + - - Waiting to start syncing. - Esperando para comenzar la sincronización. + Could not create a folder! Check your write permissions. + ¡No se pudo crear la carpeta! Comprueba los permisos de escritura. - - - Preparing for sync. - Preparándose para sincronizar. + + Create new folder + Crear nueva carpeta - - Syncing %1 of %2 (A few seconds left) - Sincronizando %1 de %2 (quedan unos segundos) + Enter folder name + Escriba el nombre de la carpeta - - Syncing %1 of %2 (%3 left) - Sicronizando %1 de %2 (quedan %3) + Error + Error - - Syncing %1 of %2 - Sincronizando %1 de %2 + Folder already exists + Ya existe la carpeta + + + OCC::FolderMan - - Syncing %1 (A few seconds left) - Sincronizando %1 (Quedan pocos segundos) + %1 (Sync is paused) + %1 (Sincronización en pausa) - - - Syncing %1 (%2 left) - Sincronizando %1 (Quedan %2) + + (backup %1) + - - Syncing %1 - Sincronizando %1 + (backup) + - - Sync is running. - Sincronización en funcionamiento. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + Se ha encontrado un registro de sincronización antiguo "%1", que no se ha podido eliminar. Por favor, asegúrese de que ninguna aplicación lo está utilizando en este momento. - - Sync finished with unresolved conflicts. - La sincronización finalizó pero con conflictos sin resolver. + Could not reset folder state + No se ha podido restablecer el estado de la carpeta - Last sync was successful. La última sincronización se ha realizado con éxito. - - Setup error. - Error de configuración. - - - - Sync request was cancelled. - La solicitud de sincronización fue cancelada. - - - - Please choose a different location. The selected folder isn't valid. - Por favor, escoja una ubicación diferente. La carpeta seleccionada no es válida. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Por favor, escoja una ubicación diferente. %1 ya se está utilizando como una carpeta de sincronización para %2. - - Please choose a different location. %1 is already being used as a sync folder. Por favor, escoja una ubicación diferente. %1 ya se está utilizando como una carpeta de sincronización. - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Por favor, escoja una ubicación diferente. %1 ya se está dentro de una carpeta que se está utilizando como carpeta de sincronización. + + Please choose a different location. The path %1 doesn't exist. Por favor, escoja una ubicación diferente. La ruta %1 no existe. - Please choose a different location. The path %1 isn't a folder. Por favor, escoja una ubicación diferente. La ruta %1 no es una carpeta. - - - Please choose a different location. You don't have enough permissions to write to %1. - folder location - Por favor, escoja una ubicación diferente. No tiene suficientes permisos para escribir a%1. + Please choose a different location. The selected folder isn't valid. + Por favor, escoja una ubicación diferente. La carpeta seleccionada no es válida. - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Por favor, escoja una ubicación diferente. %1 ya se está dentro de una carpeta que se está utilizando como carpeta de sincronización. + Please choose a different location. You don't have enough permissions to write to %1. + folder location + Por favor, escoja una ubicación diferente. No tiene suficientes permisos para escribir a%1. - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Por favor, escoja una ubicación diferente. %1 ya se está utilizando como una carpeta de sincronización para %2. + Preparing for sync. + Preparándose para sincronizar. + + + Setup error. + Error de configuración. + + + Sync finished with unresolved conflicts. + La sincronización finalizó pero con conflictos sin resolver. + + + Sync is paused. + La sincronización está en pausa. + + + Sync is running. + Sincronización en funcionamiento. + + + Sync request was cancelled. + La solicitud de sincronización fue cancelada. + + + Syncing %1 + Sincronizando %1 + + + Syncing %1 (%2 left) + Sincronizando %1 (Quedan %2) + + + Syncing %1 (A few seconds left) + Sincronizando %1 (Quedan pocos segundos) + + + Syncing %1 of %2 + Sincronizando %1 de %2 + + + Syncing %1 of %2 (%3 left) + Sicronizando %1 de %2 (quedan %3) + + + Syncing %1 of %2 (A few seconds left) + Sincronizando %1 de %2 (quedan unos segundos) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2547,207 +2104,161 @@ Para resolver este problema: Por favor, quite %1 de alguna de las cuentas y cree Para usuarios avanzados: Este problema puede estar relacionado a múltiples archivos de base de datos de sincronización ubicados en una carpeta. Por favor, chequee en %1 la existencia de archivos .sync_*.db desactualizados o sin usar y elimínelos. - - Sync is paused. - La sincronización está en pausa. - - - - Please open the app settings to grant access to the sync folders. - Abre los ajustes de la aplicación para conceder acceso a las carpetas de sincronización. + Undefined state. + Estado no definido. - - %1 (Sync is paused) - %1 (Sincronización en pausa) + Waiting to start syncing. + Esperando para comenzar la sincronización. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Añadir conexión para el directorio de sincronización - - - - - - Grant access - Permitir acceso + Add Folder Sync + - File Archivo - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Necesita estar conectado para añadir una carpeta + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Haga clic en este botón para añadir una carpeta a sincronizar + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 de %4) - - Could not decrypt! - ¡No fue posible descifrar! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Error mientras se cargaba la lista de carpetas desde el servidor. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 de %2, archivo %3 de %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - Debido a las recientes mejoras de seguridad, el cliente ya no tiene acceso a la carpeta. Es necesario que des tu autorización una sola vez para restablecer el acceso. Selecciona la raíz de la carpeta de sincronización. + %5 left, %1 of %2, file %3 of %4 + %5 restantes, %1 de %2, archivo %3 de %4 - - Virtual file support is enabled. - El soporte para archivos virtuales está activado. + , + , - - Signed out - Cerrar sesión + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Quedan pocos segundos, %1 de %2, archivo %3 de %4 - - Synchronizing virtual files in local folder - Sincronizando archivos virtuales en carpeta local + About to start syncing + A punto de comenzar a sincronizar - - Synchronizing files in local folder - Sincronizando archivos en carpeta local + Checking for changes in local "%1" + Buscando cambios en carpeta local "%1" - Checking for changes in remote "%1" Buscando cambios en carpeta remota "%1" - - Checking for changes in local "%1" - Buscando cambios en carpeta local "%1" - - - - Syncing local and remote changes - Sincronizando cambios locales y remotos + Click this button to add a folder to synchronize. + Haga clic en este botón para añadir una carpeta a sincronizar - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + ¡No fue posible descifrar! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Descargando %1/s - - File %1 of %2 - Archivo %1 de %2 - - - - There are unresolved conflicts. Click for details. - Hay conflictos sin resolver. Haz clic para más detalles. - - - - - , - , + Error while loading the list of folders from the server. + Error mientras se cargaba la lista de carpetas desde el servidor. - Fetching folder list from server … Obteniendo la lista de carpetas del servidor ... - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Archivo %1 de %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Subiendo %1/s + Preparing to sync … + Preparando la sincronización ... + + + Signed out + Cerrar sesión - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Sincronizando archivos en carpeta local - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 de %4) + Synchronizing virtual files in local folder + Sincronizando archivos virtuales en carpeta local - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Sincronizando cambios locales y remotos - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Quedan pocos segundos, %1 de %2, archivo %3 de %4 + There are unresolved conflicts. Click for details. + Hay conflictos sin resolver. Haz clic para más detalles. - - %5 left, %1 of %2, file %3 of %4 - %5 restantes, %1 de %2, archivo %3 de %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Subiendo %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 de %2, archivo %3 de %4 + Virtual file support is enabled. + El soporte para archivos virtuales está activado. - Waiting for %n other folder(s) … - Esperando a %n carpeta …Esperando a %n carpetas …Esperando a %n carpetas … + + Esperando a %n carpeta … + Esperando a %n carpetas … + - - About to start syncing - A punto de comenzar a sincronizar + You need to be connected to add a folder + Necesita estar conectado para añadir una carpeta - - Preparing to sync … - Preparando la sincronización ... + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. El vigilante no recibió una notificación de prueba. @@ -2755,7 +2266,6 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Este problema sucede habitualmente cuando las "inotify watches" están agotadas. Comprueba el FAQ para más detalles. @@ -2763,12 +2273,10 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizard - Add Folder Sync Connection Añadir conexión para el directorio de sincronización - Add Sync Connection Añadir conexión de sincronización @@ -2776,362 +2284,312 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Haga clic para seleccionar una carpeta local que sincronizar. - Enter the path to the local folder. Introduzca la ubicación de la carpeta local. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Seleccione la carpeta de origen - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Crear carpeta remota + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Introduce el nombre de la nueva carpeta que se creará debajo de "%1": + Authentication failed accessing %1 + Fallo de autenticación al acceder a %1 - - Folder was successfully created on %1. - La carpeta ha sido creada con éxito en %1. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Fallo de autenticación al acceder a %1 + Choose this to sync the entire account + Elija esto para sincronizar la cuenta entera + + + Create Remote Folder + Crear carpeta remota + + + Create folder + Crear carpeta + + + Enter the name of the new folder to be created below "%1": + Introduce el nombre de la nueva carpeta que se creará debajo de "%1": - Failed to create the folder on %1. Please check manually. Fallo al crear la carpeta %1. Por favor, revíselo manualmente. - Failed to list a folder. Error: %1 Fallo al listar una carpeta. Error: %1 - - Choose this to sync the entire account - Elija esto para sincronizar la cuenta entera + Folder was successfully created on %1. + La carpeta ha sido creada con éxito en %1. - - Please choose a different location. %1 is already being synced to %2. Por favor, escoja una ubicación diferente. %1 ya se está sincronizando para %2. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Actualizar + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. Ya está sincronizando la subcarpeta %1 en %2 - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 - - - - (experimental) (experimental) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + + + + Use virtual files instead of downloading content immediately %1 + Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 - Virtual files are not supported at the selected location Los archivos virtuales no están soportados en la ubicación seleccionada - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + + - OCC::GETFileJob + OCC::GeneralSettings - - No E-Tag received from server, check Proxy/Gateway - No se ha recibido ninguna E-Tag del servidor, revise el proxy/puerta de enlace + &Automatically check for updates + Comprobar &actualizaciones automáticamente - - We received a different E-Tag for resuming. Retrying next time. - Se ha recibido una E-Tag distinta para reanudar. Se volverá a intentar la próxima vez. - - - - We received an unexpected download Content-Length. - Hemos recibido una longitud inesperada de contenido de la descarga. - - - - Server returned wrong content-range - El servidor ha devuelto un content-range erróneo - - - - Connection Timeout - Tiempo de espera de conexión agotado - - - - OCC::GeneralSettings - - - Show Call Notifications - Mostrar notificaciones de llamadas + &Launch on System Startup + &Ejecutar al iniciar el sistema - - For System Tray - A la bandeja del sistema + &Restart && Update + &Reiniciar && Actualizar - - Show Chat Notifications - Mostrar las notificaciones de Chat + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - beta: contiene versiones con nuevas características que pueden no haberse probado exhaustivamente. +- diaria: contiene versiones creadas diariamente solo para pruebas y desarrollo. + +Cambiar a una versión anterior no es inmediatamente posible: cambiar de beta a estable significa esperar a la siguiente version estable. - - Show Server &Notifications - Mostrar &Notificaciones del Servidor + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - empresarial: contiene versiones estables para clientes. + +Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable a empresarial significa esperar a la nueva versión empresarial. - Advanced Avanzado - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB - - - Ask for confirmation before synchronizing external storages Preguntar si se desea sincronizar carpetas de almacenamiento externo - - &Launch on System Startup - &Ejecutar al iniciar el sistema - - - - General Settings - Ajustes generales - - - - General settings - Ajustes generales + Ask for confirmation before synchronizing new folders larger than + Pedir confirmación antes de sincronizar carpetas nuevas mayores a - - Use &Monochrome Icons - Usar iconos &monocromáticos + Automatically disable synchronisation of folders that overcome limit + Deshabilitar sincronización de manera automática para las carpetas que sobrepasen el límite - - Show &Quota Warning Notifications - Mostrar Notificaciones sobre Advertencias de &Cuota + Cancel + Cancelar - - Ask for confirmation before synchronizing new folders larger than - Pedir confirmación antes de sincronizar carpetas nuevas mayores a + Change update channel + Cambiar canal de actualización - - Notify when synchronised folders grow larger than specified limit - Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado + Changing update channel? + ¿Cambiar canal de actualización? - - Automatically disable synchronisation of folders that overcome limit - Deshabilitar sincronización de manera automática para las carpetas que sobrepasen el límite + Check Now + Comprobar ahora - - Move removed files to trash - Mover archivos eliminados a la papelera + Create Debug Archive + Crear archivo de depuración - - Show sync folders in &Explorer's navigation pane - Mostrar carpetas sincronizadas en el panel de navegación del &Explorador + Data Protection + - - Server poll interval - Intervalo de sondeo del servidor + Debug Archive Created + Archivo de depuración creado - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - segundos (si <a href="https://github.com/nextcloud/notify_push">Client Push</a> no está disponible) + Desktop client x.x.x + Cliente de escritorio x.x.x - Edit &Ignored Files Editar archivos &ignorados - - - Create Debug Archive - Crear archivo de depuración + For System Tray + A la bandeja del sistema - - Info - Información + General Settings + Ajustes generales - - Desktop client x.x.x - Cliente de escritorio x.x.x + Legal Notice + Aviso Legal - - Update channel - Canal de actualización + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - Comprobar &actualizaciones automáticamente + More Information + + + + Move removed files to trash + Mover archivos eliminados a la papelera - - Check Now - Comprobar ahora + Necessary data + - - Usage Documentation - Documentación de uso + Notify when synchronised folders grow larger than specified limit + Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado - - Legal Notice - Aviso Legal + Open Source Software + - - Restore &Default - Restaurar &Default + Privacy Policy + - - &Restart && Update - &Reiniciar && Actualizar + Redact information deemed sensitive before sharing! Debug archive created at %1 + ¡Redacte la información considerada sensible antes de compartir!, se creo el archivo de depuración en %1 - - Server notifications that require attention. - Notificaciones del servidor que requieren atención. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - Mostrar diálogos de notificación de chats. + Restore &Default + Restaurar &Default - - Show call notification dialogs. - Mostrar diálogos de notificación de llamadas. + Restore to &%1 + Restaurar a &%1 - - Show notification when quota usage exceeds 80%. - Mostrar notificación cuando el uso de la cuota supere el 80% + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - No puedes desactivar el inicio automático porque el inicio automático de todo el sistema está activado. + Server notifications that require attention. + Notificaciones del servidor que requieren atención. - - Restore to &%1 - Restaurar a &%1 + Server poll interval + Intervalo de sondeo del servidor - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - Conectado a un sistema empresarial. El canal de actualización (%1) no se puede cambiar. + Show &Quota Warning Notifications + Mostrar Notificaciones sobre Advertencias de &Cuota - - stable - stable + Show Call Notifications + Mostrar notificaciones de llamadas - - beta - beta + Show Chat Notifications + Mostrar las notificaciones de Chat - - daily - diariamente + Show Server &Notifications + Mostrar &Notificaciones del Servidor - - enterprise - empresarial + Show call notification dialogs. + Mostrar diálogos de notificación de llamadas. - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - beta: contiene versiones con nuevas características que pueden no haberse probado exhaustivamente. -- diaria: contiene versiones creadas diariamente solo para pruebas y desarrollo. - -Cambiar a una versión anterior no es inmediatamente posible: cambiar de beta a estable significa esperar a la siguiente version estable. + Show chat notification dialogs. + Mostrar diálogos de notificación de chats. - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - empresarial: contiene versiones estables para clientes. - -Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable a empresarial significa esperar a la nueva versión empresarial. + Show notification when quota usage exceeds 80%. + Mostrar notificación cuando el uso de la cuota supere el 80% - - Changing update channel? - ¿Cambiar canal de actualización? + Show sync folders in &Explorer's navigation pane + Mostrar carpetas sincronizadas en el panel de navegación del &Explorador - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable @@ -3141,70 +2599,80 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable - - Change update channel - Cambiar canal de actualización + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Cancelar + Update channel + Canal de actualización + + + Updates + + + + Usage Documentation + Documentación de uso - - Login Item Requires Approval - Este elemento de inicio de sesión requiere aprobación + Use &Monochrome Icons + Usar iconos &monocromáticos - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - El elemento de inicio de sesión se ha registrado, pero necesita tu aprobación para activarse. Abre Configuración del sistema → General → Elementos de inicio de sesión y activa %1 allí. + You cannot disable autostart because system-wide autostart is enabled. + No puedes desactivar el inicio automático porque el inicio automático de todo el sistema está activado. - Zip Archives Archivos Zip - - Failed to Access File - El acceso al archivo ha fallado + beta + beta + + + daily + diariamente - - Could not access the selected location. Please try again or choose a different location. - No se pudo acceder a la ubicación seleccionada. Inténtalo de nuevo o elige una ubicación diferente. + enterprise + empresarial - - Debug Archive Created - Archivo de depuración creado + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + segundos (si <a href="https://github.com/nextcloud/notify_push">Client Push</a> no está disponible) - - Redact information deemed sensitive before sharing! Debug archive created at %1 - ¡Redacte la información considerada sensible antes de compartir!, se creo el archivo de depuración en %1 + stable + stable - + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Se requiere contraseña para compartir + Connection Timeout + Tiempo de espera de conexión agotado + + + No E-Tag received from server, check Proxy/Gateway + No se ha recibido ninguna E-Tag del servidor, revise el proxy/puerta de enlace - - Please enter a password for your link share: - Por favor, introduce una contraseña para tu enlace compartido: + Server returned wrong content-range + El servidor ha devuelto un content-range erróneo - - Sharing error - Error al compartir + We received a different E-Tag for resuming. Retrying next time. + Se ha recibido una E-Tag distinta para reanudar. Se volverá a intentar la próxima vez. + + + We received an unexpected download Content-Length. + Hemos recibido una longitud inesperada de contenido de la descarga. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3212,54 +2680,57 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable %1 - - - OCC::HttpCredentialsGui - - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Por favor, introduzca la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> + + Password for share required + Se requiere contraseña para compartir - - Reading from keychain failed with error: "%1" - La lectura del keychain falló con el error "%1" + Please enter a password for your link share: + Por favor, introduce una contraseña para tu enlace compartido: - - Enter Password - Introduzca la contraseña + Sharing error + Error al compartir + + + OCC::HttpCredentialsGui - <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Haga clic aquí</a> para solicitar una contraseña de aplicación desde la interfaz web. - + + Enter Password + Introduzca la contraseña + + + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Por favor, introduzca la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> + + + Reading from keychain failed with error: "%1" + La lectura del keychain falló con el error "%1" + + OCC::IgnoreListEditor - - Ignored Files Editor - Editor de archivos ignorados + Files Ignored by Patterns + Archivos ignorados por patrones - Global Ignore Settings Ajustes de Ignorar de modo global - - Sync hidden files - Sincronizar archivos ocultos + Ignored Files Editor + Editor de archivos ignorados - - Files Ignored by Patterns - Archivos ignorados por patrones + Sync hidden files + Sincronizar archivos ocultos - This entry is provided by the system at "%1" and cannot be modified in this view. Esta entrada la proporciona el sistema en "%1" y no se puede modificar en esta vista. @@ -3267,32 +2738,26 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable OCC::IgnoreListTableWidget - - Pattern - Patrón + Add + Añadir - + Add a new ignore pattern: + Añadir un nuevo patrón de archivos ignorados: + + Allow Deletion Permitir borrado - - Add - Añadir - - - - Remove - Eliminar + Cannot write changes to "%1". + No se pudo escribir los cambios a "%1". - - Remove all - Eliminar todos + Could not open file + No se ha podido abrir el archivo - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3301,158 +2766,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Los elementos que se permite su borrado se eliminarán si impiden que un directorio se elimine. Esto es útil para los metadatos. - - Could not open file - No se ha podido abrir el archivo + Ignore Pattern + - - Cannot write changes to "%1". - No se pudo escribir los cambios a "%1". + Pattern + Patrón - - Add Ignore Pattern - Añadir patrón de ignorados + Remove + Eliminar - - Add a new ignore pattern: - Añadir un nuevo patrón de archivos ignorados: + Remove all + Eliminar todos - + OCC::InvalidFilenameDialog - - Invalid filename - Nombre de archivo no válido + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + No se puede renombrar el archivo porque hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. - - The file could not be synced because it contains characters which are not allowed on this system. - El archivo no puede ser sincronizado porque contiene caracteres que no se permiten en el sistema. + Checking rename permissions … + Comprobando los permisos de para renombrado … - - Error - Error + Could not rename file. Please make sure you are connected to the server. + No se ha podido renombrar el archivo. Por favor, asegúrese de que está conectado al servidor. - - Please enter a new name for the file: - Por favor, escribe un nuevo nombre para el archivo: + Could not rename local file. %1 + No se ha podido renombrar el archivo local. %1 - - - New filename - Nuevo nombre de archivo + + Error + Error - - Rename file - Renombrar archivo + Failed to fetch permissions with error %1 + Fallo en la obtención de permisos con error %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - El archivo "%1" no pudo ser sincronizado porque el nombre contiene caracteres no permitidos en este sistema. + Filename contains illegal characters: %1 + El nombre del archivo contiene caracteres ilegales: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - Los siguientes caracteres no se permiten en el sistema: \ / : ? * " < > | espacios al inicio/final + Filename contains leading and trailing spaces. + El nombre del archivo contiene espacios iniciales y finales. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - No se ha podido sincronizar el archivo "%1" porque su nombre contiene caracteres que no están permitidos en el servidor. + Filename contains leading spaces. + El nombre del archivo contiene espacios iniciales. - - The following characters are not allowed: %1 - Los siguientes caracteres no están permitidos: %1 + Filename contains trailing spaces. + El nombre del archivo contiene espacios finales. - - The following basenames are not allowed: %1 - Los siguientes nombres base no están permitidos: %1 + Invalid filename + Nombre de archivo no válido - - The following filenames are not allowed: %1 - Los siguientes nombres de archivo no están permitidos: %1 + New filename + Nuevo nombre de archivo - - The following file extensions are not allowed: %1 - Las siguients extensiones de archivo no están permitidas: %1 + Please enter a new name for the file: + Por favor, escribe un nuevo nombre para el archivo: - - Checking rename permissions … - Comprobando los permisos de para renombrado … + Rename file + Renombrar archivo - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - No tienes permisos para renombrar este archivo. Por favor, dile al autor del archivo que lo renombre. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + No se ha podido sincronizar el archivo "%1" porque su nombre contiene caracteres que no están permitidos en el servidor. - - Failed to fetch permissions with error %1 - Fallo en la obtención de permisos con error %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + El archivo "%1" no pudo ser sincronizado porque el nombre contiene caracteres no permitidos en este sistema. - - Filename contains leading and trailing spaces. - El nombre del archivo contiene espacios iniciales y finales. + The file could not be synced because it contains characters which are not allowed on this system. + El archivo no puede ser sincronizado porque contiene caracteres que no se permiten en el sistema. - - Filename contains leading spaces. - El nombre del archivo contiene espacios iniciales. + The following basenames are not allowed: %1 + Los siguientes nombres base no están permitidos: %1 - - Filename contains trailing spaces. - El nombre del archivo contiene espacios finales. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + Los siguientes caracteres no se permiten en el sistema: \ / : ? * " < > | espacios al inicio/final - - Use invalid name - Utilizar nombre inválido + The following characters are not allowed: %1 + Los siguientes caracteres no están permitidos: %1 - - Filename contains illegal characters: %1 - El nombre del archivo contiene caracteres ilegales: %1 + The following file extensions are not allowed: %1 + Las siguients extensiones de archivo no están permitidas: %1 - - Could not rename file. Please make sure you are connected to the server. - No se ha podido renombrar el archivo. Por favor, asegúrese de que está conectado al servidor. + The following filenames are not allowed: %1 + Los siguientes nombres de archivo no están permitidos: %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - No se puede renombrar el archivo porque hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. + Use invalid name + Utilizar nombre inválido - - Could not rename local file. %1 - No se ha podido renombrar el archivo local. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + No tienes permisos para renombrar este archivo. Por favor, dile al autor del archivo que lo renombre. - + OCC::LegacyAccountSelectionDialog - Legacy import Importación heredada - Select the accounts to import from the legacy configuration: Seleccione las carpetas a importar desde la configuración heredada: @@ -3460,36 +2895,37 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo OCC::LegalNotice - - - Legal notice - Aviso legal - - - - Close - Cerrar - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o posterior.</p> - + + Close + Cerrar + + + Legal notice + Aviso legal + + OCC::LogBrowser - + Enable logging to temporary folder + Activar la escritura de registros a una carpeta temporal + + Log Output Salida del registro - + Open folder + Abrir carpeta + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3498,645 +2934,585 @@ Ya que los archivos de registro pueden acabar siendo grandes, el cliente creará Si está activado, los registros serán escritos en %1 - - Enable logging to temporary folder - Activar la escritura de registros a una carpeta temporal - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Este ajuste persiste tras los reinicios del cliente. Nótese que usar cualquier opción de recolección de registros a través de línea de comandos sobrescribirá este ajuste. - - - Open folder - Abrir carpeta - - + OCC::Logger - - - Error - Error - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> - + + Error + Error + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - No se ha podido empezar a editar localmente. - - - An error occurred during setup. Ha ocurrido un error durante la configuración. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. No fue posible encontrar un archivo para edición local. Asegúrese de que su ruta es válida y que este se encuentra sincronizado localmente. - Could not get file ID. No se ha podido obtener la ID del archivo. - Could not get file identifier. No se pudo obtener el identificador del archivo. - + Could not start editing locally. + No se ha podido empezar a editar localmente. + + The file identifier is empty. El identificador del archivo está vacío. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Nueva versión disponible + Download Bandwidth + Velocidad de descarga - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Una nueva versión del programa cliente de %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> + HTTP(S) proxy + Proxy HTTP(S) - - Update Failed - La actualización falló + Host + Servidor - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización ha fallado.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirmas el reinicio y la actualización, es posible que su ordenador se reinicie para completar la instalación. + Hostname of proxy server + Nombre del host para servidor proxy - - Ask again later - Preguntar de nuevo más tarde + KBytes/s + KBytes/s - - Restart and update - Reiniciar y actualizar + Limit automatically + Limitar automáticamente - - Update manually - Actualizar manualmente + Limit to + Limitar a - - Skip this time - Omitir esta vez + Limit to 3/4 of estimated bandwidth + Limitar a 3/4 de la velocidad estimada - - Get update - Actualizar + Manually specify proxy + Especificar proxy manualmente - - - OCC::NetworkSettings - - Proxy Settings - Configuración del proxy + No limit + Ilimitado - - Use system proxy - Usar proxy del sistema + No proxy + Sin proxy - - Host - Servidor + Note: proxy settings have no effects for accounts on localhost + Nota: los ajustes de proxy no tienen efecto para cuentas en el sistema local. - - Proxy server requires authentication - El servidor proxy requiere autenticación + Password for proxy server + Contraseña para el servidor proxy - - Download Bandwidth - Velocidad de descarga + Proxy Settings + Configuración del proxy - - - Limit to - Limitar a + Proxy server requires authentication + El servidor proxy requiere autenticación - - - Limit to 3/4 of estimated bandwidth - Limitar a 3/4 de la velocidad estimada + SOCKS5 proxy + Proxy SOCKS5 - - - - Limit automatically - Limitar automáticamente + + Upload Bandwidth + Velocidad de subida - - - KBytes/s - KBytes/s + Use system proxy + Usar proxy del sistema - - Note: proxy settings have no effects for accounts on localhost - Nota: los ajustes de proxy no tienen efecto para cuentas en el sistema local. + Username for proxy server + Nombre de usuario para el servidor proxy + + + OCC::NSISUpdater - - Manually specify proxy - Especificar proxy manualmente + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización ha fallado.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirmas el reinicio y la actualización, es posible que su ordenador se reinicie para completar la instalación. - - No proxy - Sin proxy + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Una nueva versión del programa cliente de %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> - - - No limit - Ilimitado + Ask again later + Preguntar de nuevo más tarde - - Upload Bandwidth - Velocidad de subida + Get update + Actualizar - - - Hostname of proxy server - Nombre del host para servidor proxy + + New Version Available + Nueva versión disponible - - Username for proxy server - Nombre de usuario para el servidor proxy + Restart and update + Reiniciar y actualizar - - Password for proxy server - Contraseña para el servidor proxy + Skip this time + Omitir esta vez - - HTTP(S) proxy - Proxy HTTP(S) + Update Failed + La actualización falló - - SOCKS5 proxy - Proxy SOCKS5 + Update manually + Actualizar manualmente - + OCC::OCUpdater - - Could not check for new updates. - No se puede comprobar si hay actualizaciones. + %1 available. Restart application to start the update. + %1 disponible. Reinicia la aplicación para empezar la actualización. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Está a punto de ser instalada una nueva actualización para %1 . Es posible que el actualizador solicite privilegios adicionales durante el proceso. Es posible que su ordenador se deba reiniciar para completar la instalación. - Checking update server … Consultando al servidor de actualizaciones ... - - New %1 update ready - La nueva %1 actualización está lista + Could not check for new updates. + No se puede comprobar si hay actualizaciones. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Está a punto de ser instalada una nueva actualización para %1 . Es posible que el actualizador solicite privilegios adicionales durante el proceso. Es posible que su ordenador se deba reiniciar para completar la instalación. + Could not download update. Please open %1 to download the update manually. + No se pudo descargar la actualización. Por favor, abra %1 para descargarla manualmente. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + No se puede descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. - Downloading %1 … Descargando %1 … - - %1 available. Restart application to start the update. - %1 disponible. Reinicia la aplicación para empezar la actualización. + New %1 is available. Please open %2 to download the update. + La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - No se puede descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. - - Could not download update. Please open %1 to download the update manually. - No se pudo descargar la actualización. Por favor, abra %1 para descargarla manualmente. + New %1 update ready + La nueva %1 actualización está lista - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. + No updates available. Your installation is the latest version. + No hay actualizaciones disponibles. Su instalación está en la versión más reciente. - - New %1 is available. Please open %2 to download the update. - La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. + Update Check + Comprobar si hay actualizaciones - - + Update status is unknown: Did not check for new updates. Estado de actualización desconocido: no se buscaron nuevas actualizaciones. - You are using the %1 update channel. Your installation is the latest version. Está utilizando el canal de actualización %1. Su instalación está en la versión mas reciente. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - No hay actualizaciones disponibles. Su instalación está en la versión más reciente. + %1 folder "%2" is synced to local folder "%3" + %1 carpeta "%2" está sincronizada con la carpeta local "%3" - - Update Check - Comprobar si hay actualizaciones + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 espacio libre - - - OCC::OwncloudAdvancedSetupPage - - Connect - Conectar + (%1) + (%1) - - (experimental) (experimental) - - - Use &virtual files instead of downloading content immediately %1 - Usa &archivos virtuales en vez de descargar el contenido inmediatamente %1 + Connect + Conectar - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + In Finder's "Locations" sidebar section + En la sección "Ubicaciones" de la barra lateral del Finder - - - %1 folder "%2" is synced to local folder "%3" - %1 carpeta "%2" está sincronizada con la carpeta local "%3" + + Local Sync Folder + Carpeta local de sincronización - Sync the folder "%1" Sincronizar la carpeta "%1" - - Warning: The local folder is not empty. Pick a resolution! - Advertencia: La carpeta local no está vacía. ¡Elija una solución! + There isn't enough free space in the local folder! + ¡No hay suficiente espacio libre en la carpeta local! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 espacio libre + Use &virtual files instead of downloading content immediately %1 + Usa &archivos virtuales en vez de descargar el contenido inmediatamente %1 - Virtual files are not supported at the selected location Los archivos virtuales no están soportados en la ubicación seleccionada - - Local Sync Folder - Carpeta local de sincronización + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Advertencia: La carpeta local no está vacía. ¡Elija una solución! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - ¡No hay suficiente espacio libre en la carpeta local! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro <em>%1</em>. ¿Cómo desea proceder?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro especificado. ¿Cómo desea proceder?</p></body></html> - - In Finder's "Locations" sidebar section - En la sección "Ubicaciones" de la barra lateral del Finder + Configure client-side TLS certificate + Configurar certificado TLS del cliente - - - OCC::OwncloudConnectionMethodDialog - Connection failed La conexión ha fallado - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro especificado. ¿Cómo desea proceder?</p></body></html> + Retry unencrypted over HTTP (insecure) + Reintentar sin cifrado sobre HTTP (inseguro) - Select a different URL Seleccionar una URL diferente + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Reintentar sin cifrado sobre HTTP (inseguro) + %1 (%2, %3) + %1 (%2, %3) - - - Configure client-side TLS certificate - Configurar certificado TLS del cliente + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1:%2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro <em>%1</em>. ¿Cómo desea proceder?</p></body></html> + Account %1: %2 + Cuenta %1: %2 - - - OCC::OwncloudHttpCredsPage - - &Email - &Correo electrónico + Account synchronization is disabled + La sincronización está deshabilitada - - Connect to %1 - Conectarse a %1 + Checking for changes in local "%1" + Buscando cambios en carpeta local "%1" - - Enter user credentials - Introduzca las credenciales de usuario + Checking for changes in remote "%1" + Buscando cambios en carpeta remota "%1" - - - OCC::OwncloudPropagator - - - Impossible to get modification time for file in conflict %1 - Es imposible leer la hora de modificación del archivo en conflicto %1 + Disconnected from %1 + Desconectado de %1 - - - OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - El link a su interfaz web %1 cuando la abra en el navegador. + Disconnected from accounts: + Desconectado desde cuentas: - - &Next > - &Siguiente > + Please sign in + Por favor, inicie sesión - - Server address does not seem to be valid - La dirección del servidor no es válida + Terms of service + Términos de servicio - - Could not load certificate. Maybe wrong password? - No se ha podido guardar el certificado. ¿Quizás la contraseña sea incorrecta? + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + El servidor en la cuenta %1 usa una versión no soportada %2. El uso de este cliente con versiones de servidor no soportadas no ha sido probado y es potencialmente peligroso. Continúa bajo tu propio riesgo. - - - OCC::OwncloudSetupWizard - - <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> - <font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/> + There are no sync folders configured. + No hay carpetas configuradas para sincronizar. - - Failed to connect to %1 at %2:<br/>%3 - Fallo al conectar %1 a %2:<br/>%3 + Unsupported Server Version + Versión del servidor no soportada - - Timeout while trying to connect to %1 at %2. - Tiempo de espera agotado mientras se intentaba conectar a %1 en %2 + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Su cuenta %1 requiere que acepte los términos de servicio de su servidor. Será redirigido a %2 para indicar que los ha leído y está de acuerdo. - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde el navegador. + macOS VFS for %1: A problem was encountered. + macOS VFS para %1: Se ha encontrado un problema. - - Invalid URL - URL no válida. + macOS VFS for %1: Last sync was successful. + macOS VFS para %1: la última sincronización fue exitosa. - - - Trying to connect to %1 at %2 … - Intentando conectar a %1 desde %2 ... + macOS VFS for %1: Sync is running. + macOS VFS para %1: Sincronización en progreso. + + + OCC::OwncloudHttpCredsPage - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. + &Email + &Correo electrónico - - There was an invalid response to an authenticated WebDAV request - Ha habido una respuesta no válida a una solicitud autenticada de WebDAV + Connect to %1 + Conectarse a %1 - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - La carpeta de sincronización local %1 ya existe, configurándola para la sincronización.<br/><br/> + Enter user credentials + Introduzca las credenciales de usuario + + + + OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 + Es imposible leer la hora de modificación del archivo en conflicto %1 + + + OCC::OwncloudSetupPage - - Creating local sync folder %1 … - Creando carpeta de sincronización local %1 ... + &Next > + &Siguiente > - - OK - OK + Could not load certificate. Maybe wrong password? + No se ha podido guardar el certificado. ¿Quizás la contraseña sea incorrecta? + + + Server address does not seem to be valid + La dirección del servidor no es válida - - failed. - ha fallado. + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + El link a su interfaz web %1 cuando la abra en el navegador. + + + + OCC::OwncloudSetupWizard + + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>¡La cuenta basada en proveedor de archivos %1 fue creada exitosamente! </b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Carpeta de sincronización local %1 creada con éxito</b></font> + + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> + <font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/> + + + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">La creación de la carpeta remota ha fallado, probablemente porque las credenciales proporcionadas son incorrectas.</font><br/>Por favor, vuelva atrás y compruebe sus credenciales.</p> + + + A sync connection from %1 to remote directory %2 was set up. + Se ha configarado una conexión de sincronización desde %1 al directorio remoto %2 + + + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde el navegador. + + + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + No se pudo eliminar y restaurar la carpeta porque ella o un archivo dentro de ella está abierto por otro programa. Por favor, cierre la carpeta o el archivo y pulsa en reintentar o cancelar la instalación. + + + Connection to %1 could not be established. Please check again. + No se ha podido establecer la conexión con %1. Por favor, compruébelo de nuevo. - Could not create local folder %1 No se ha podido crear la carpeta local %1 - - No remote folder specified! - ¡No se ha especificado ninguna carpeta remota! + Creating local sync folder %1 … + Creando carpeta de sincronización local %1 ... - Error: %1 Error: %1 - - creating folder on Nextcloud: %1 - Creando carpeta en Nextcloud: %1 + Failed to connect to %1 at %2:<br/>%3 + Fallo al conectar %1 a %2:<br/>%3 - - Remote folder %1 created successfully. - Carpeta remota %1 creado correctamente. + Folder rename failed + Error al renombrar la carpeta - - The remote folder %1 already exists. Connecting it for syncing. - La carpeta remota %1 ya existe. Conectándola para sincronizacion. + Invalid URL + URL no válida. - - - The folder creation resulted in HTTP error code %1 - La creación de la carpeta ha producido el código de error HTTP %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + La carpeta de sincronización local %1 ya existe, configurándola para la sincronización.<br/><br/> - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - ¡La creación de la carpeta remota ha fallado debido a que las credenciales proporcionadas son incorrectas!<br/>Por favor, vuelva atrás y compruebe sus credenciales</p> + No remote folder specified! + ¡No se ha especificado ninguna carpeta remota! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">La creación de la carpeta remota ha fallado, probablemente porque las credenciales proporcionadas son incorrectas.</font><br/>Por favor, vuelva atrás y compruebe sus credenciales.</p> + OK + OK - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Creación %1 de carpeta remota ha fallado con el error <tt>%2</tt>. + Remote folder %1 created successfully. + Carpeta remota %1 creado correctamente. - - A sync connection from %1 to remote directory %2 was set up. - Se ha configarado una conexión de sincronización desde %1 al directorio remoto %2 + Remote folder %1 creation failed with error <tt>%2</tt>. + Creación %1 de carpeta remota ha fallado con el error <tt>%2</tt>. - Successfully connected to %1! ¡Conectado con éxito a %1! - - Connection to %1 could not be established. Please check again. - No se ha podido establecer la conexión con %1. Por favor, compruébelo de nuevo. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. - - Folder rename failed - Error al renombrar la carpeta + The folder creation resulted in HTTP error code %1 + La creación de la carpeta ha producido el código de error HTTP %1 - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - No se pudo eliminar y restaurar la carpeta porque ella o un archivo dentro de ella está abierto por otro programa. Por favor, cierre la carpeta o el archivo y pulsa en reintentar o cancelar la instalación. + The remote folder %1 already exists. Connecting it for syncing. + La carpeta remota %1 ya existe. Conectándola para sincronizacion. - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b>¡La cuenta basada en proveedor de archivos %1 fue creada exitosamente! </b></font> + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + ¡La creación de la carpeta remota ha fallado debido a que las credenciales proporcionadas son incorrectas!<br/>Por favor, vuelva atrás y compruebe sus credenciales</p> - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Carpeta de sincronización local %1 creada con éxito</b></font> + There was an invalid response to an authenticated WebDAV request + Ha habido una respuesta no válida a una solicitud autenticada de WebDAV - + + Timeout while trying to connect to %1 at %2. + Tiempo de espera agotado mientras se intentaba conectar a %1 en %2 + + + Trying to connect to %1 at %2 … + Intentando conectar a %1 desde %2 ... + + + creating folder on Nextcloud: %1 + Creando carpeta en Nextcloud: %1 + + + failed. + ha fallado. + + OCC::OwncloudWizard - Add %1 account Añadir %1 cuenta - - Skip folders configuration - Omitir la configuración de carpetas + Back + Next button text in new account wizard + Atrás - Cancel Cancelar - - Proxy Settings - Proxy Settings button text in new account wizard - Configuraciones del Proxy + Enable experimental feature? + ¿Activar característica experimental? + + + Enable experimental placeholder mode + Activar modo experimental de marcador de posición - Next Next button text in new account wizard Siguiente - - Back - Next button text in new account wizard - Atrás + Proxy Settings + Proxy Settings button text in new account wizard + Configuraciones del Proxy - - Enable experimental feature? - ¿Activar característica experimental? + Skip folders configuration + Omitir la configuración de carpetas - + Stay safe + Mantente a salvo + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4152,26 +3528,14 @@ Cambiar a este modo interrumpirá cualquier sincronización en proceso. Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de cualquier tipo de problema que pueda surgir. - - - Enable experimental placeholder mode - Activar modo experimental de marcador de posición - - - - Stay safe - Mantente a salvo - - + OCC::PasswordInputDialog - Password for share required Se requiere la contraseña para el recurso compartido - Please enter a password for your share: Por favor, introduce una contraseña para tu recurso compartido: @@ -4179,7 +3543,6 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PollJob - Invalid JSON reply from the poll URL Respuesta JSON invalida de la poll URL @@ -4187,344 +3550,259 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Los enlaces simbólicos no están soportados en la sincronización. + Cannot be renamed or uploaded. + No puede ser renombrado o subido. - - File is locked by another application. - El archivo está bloqueado por otra aplicación. + Cannot modify encrypted item because the selected certificate is not valid. + No se puede modificar el item cifrado ya que el certificado seleccionado no es válido. - - File is listed on the ignore list. - El archivo está en la lista de ignorados. + Cannot sync due to invalid modification time + No se puede sincronizar debido a una hora de modificación no válida - - File names ending with a period are not supported on this file system. - Los nombres de archivo que terminan con un punto no son compatibles con este sistema de archivos. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflicto de capitalización: Se descargó el archivo del servidor y se renombró para evitar el conflicto. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Los nombres de carpeta que contienen el carácter "%1" no están soportados en este sistema de archivos. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Conflicto: Versión del servidor descargada, la copia local ha sido renombrada pero no se ha podido subir. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - Los nombres de archivo que contienen el carácter "%1" no están soportados en este sistema de archivos. + Could not upload file, because it is open in "%1". + No es posible subir el archivo, porque está abierto en "%1". - - Folder name contains at least one invalid character - El nombre de la carpeta contiene al menos un carácter inválido + Error while deleting file record %1 from the database + Error mientras se borraba el registro de archivo %1 de la base de datos - - File name contains at least one invalid character - El nombre del archivo contiene al menos un carácter no válido + Error while reading the database + Error mientras se leía la base de datos - - - Folder name is a reserved name on this file system. - El nombre de carpeta es un nombre reservado en este sistema de archivos. + + File has extension reserved for virtual files. + El archivo tiene una extensión reservada para archivos virtuales. - - File name is a reserved name on this file system. - El nombre de archivo es un nombre reservado en este sistema de archivos. + File is listed on the ignore list. + El archivo está en la lista de ignorados. - - Filename contains trailing spaces. - El nombre del archivo contiene espacios finales. + File is not accessible on the server. + server error + El archivo no es accesible en el servidor. - - - - - Cannot be renamed or uploaded. - No puede ser renombrado o subido. + File name contains at least one invalid character + El nombre del archivo contiene al menos un carácter no válido - - Filename contains leading spaces. - El nombre del archivo contiene espacios iniciales. + File name is a reserved name on this file system. + El nombre de archivo es un nombre reservado en este sistema de archivos. - - Filename contains leading and trailing spaces. - El nombre del archivo contiene espacios iniciales y finales. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + Los nombres de archivo que contienen el carácter "%1" no están soportados en este sistema de archivos. - - Filename is too long. - El nombre del archivo es demasiado largo. + File names ending with a period are not supported on this file system. + Los nombres de archivo que terminan con un punto no son compatibles con este sistema de archivos. - File/Folder is ignored because it's hidden. El archivo o carpeta es ignorado porque está oculto. - - Stat failed. - Stat ha fallado. - - - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Conflicto: Versión del servidor descargada, la copia local ha sido renombrada pero no se ha podido subir. + Filename contains leading and trailing spaces. + El nombre del archivo contiene espacios iniciales y finales. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Conflicto de capitalización: Se descargó el archivo del servidor y se renombró para evitar el conflicto. + Filename contains leading spaces. + El nombre del archivo contiene espacios iniciales. - - The filename cannot be encoded on your file system. - El nombre de archivo no se puede codificar en tu sistema de archivos. + Filename contains trailing spaces. + El nombre del archivo contiene espacios finales. - - The filename is blacklisted on the server. - El nombre del archivo está prohibido en el servidor. + Filename is too long. + El nombre del archivo es demasiado largo. - - Reason: the entire filename is forbidden. - Motivo: el nombre de archivo completo no está permitido. + Folder is not accessible on the server. + server error + La carpeta no es accesible en el servidor. - - Reason: the filename has a forbidden base name (filename start). - Motivo: el nombre de archivo tiene un nombre base (inicio del nombre del archivo) no permitido. + Folder name contains at least one invalid character + El nombre de la carpeta contiene al menos un carácter inválido - - Reason: the file has a forbidden extension (.%1). - Motivo: el archivo tiene una extensión no permitida (.%1). + Folder name is a reserved name on this file system. + El nombre de carpeta es un nombre reservado en este sistema de archivos. - - Reason: the filename contains a forbidden character (%1). - Motivo: el nombre del archivo contiene un carácter no permitido (%1). + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Los nombres de carpeta que contienen el carácter "%1" no están soportados en este sistema de archivos. - - File has extension reserved for virtual files. - El archivo tiene una extensión reservada para archivos virtuales. + Ignored because of the "choose what to sync" blacklist + Ignorado porque se encuentra en la lista negra de «elija qué va a sincronizar» - - Folder is not accessible on the server. - server error - La carpeta no es accesible en el servidor. + Moved to invalid target, restoring + Movido a un lugar no válido, restaurando - - File is not accessible on the server. - server error - El archivo no es accesible en el servidor. + Not allowed because you don't have permission to add files in that folder + No permitido porque no tienes permiso para añadir archivos a esa carpeta. - - Cannot sync due to invalid modification time - No se puede sincronizar debido a una hora de modificación no válida + Not allowed because you don't have permission to add subfolders to that folder + No permitido porque no tienes permiso para añadir subcarpetas a esa carpeta. - - Upload of %1 exceeds %2 of space left in personal files. - La carga de %1 excede %2 del espacio disponible en los archivos personales. + Not allowed to remove, restoring + No está permitido borrar, restaurando - - Upload of %1 exceeds %2 of space left in folder %3. - La carga de %1 excede %2 del espacio disponible en la carpeta %3. + Not allowed to upload this file because it is read-only on the server, restoring + No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando. - - Could not upload file, because it is open in "%1". - No es posible subir el archivo, porque está abierto en "%1". + Reason: the entire filename is forbidden. + Motivo: el nombre de archivo completo no está permitido. - - Error while deleting file record %1 from the database - Error mientras se borraba el registro de archivo %1 de la base de datos + Reason: the file has a forbidden extension (.%1). + Motivo: el archivo tiene una extensión no permitida (.%1). - - - Moved to invalid target, restoring - Movido a un lugar no válido, restaurando + Reason: the filename contains a forbidden character (%1). + Motivo: el nombre del archivo contiene un carácter no permitido (%1). - - Cannot modify encrypted item because the selected certificate is not valid. - No se puede modificar el item cifrado ya que el certificado seleccionado no es válido. + Reason: the filename has a forbidden base name (filename start). + Motivo: el nombre de archivo tiene un nombre base (inicio del nombre del archivo) no permitido. - - Ignored because of the "choose what to sync" blacklist - Ignorado porque se encuentra en la lista negra de «elija qué va a sincronizar» + Stat failed. + Stat ha fallado. - - Not allowed because you don't have permission to add subfolders to that folder - No permitido porque no tienes permiso para añadir subcarpetas a esa carpeta. + Symbolic links are not supported in syncing. + Los enlaces simbólicos no están soportados en la sincronización. - - Not allowed because you don't have permission to add files in that folder - No permitido porque no tienes permiso para añadir archivos a esa carpeta. + The filename cannot be encoded on your file system. + El nombre de archivo no se puede codificar en tu sistema de archivos. - - Not allowed to upload this file because it is read-only on the server, restoring - No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando. + The filename is blacklisted on the server. + El nombre del archivo está prohibido en el servidor. - - Not allowed to remove, restoring - No está permitido borrar, restaurando + Upload of %1 exceeds %2 of space left in folder %3. + La carga de %1 excede %2 del espacio disponible en la carpeta %3. - - Error while reading the database - Error mientras se leía la base de datos + Upload of %1 exceeds %2 of space left in personal files. + La carga de %1 excede %2 del espacio disponible en los archivos personales. - + OCC::PropagateDirectory - Could not delete file %1 from local DB No se pudo eliminar el archivo %1 de la DB local - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación no válida - - - - - - - The folder %1 cannot be made read-only: %2 - La carpeta %1 no se puede hacer de sólo lectura: %2 - - - - - unknown exception - excepción inválida - - - Error updating metadata: %1 Error al actualizar los metadatos: %1 - File is currently in use El archivo se encuentra en uso - + + The folder %1 cannot be made read-only: %2 + La carpeta %1 no se puede hacer de sólo lectura: %2 + + + unknown exception + excepción inválida + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + No fue posible borrar el registro del archivo %1 de la base de datos local + + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local - + Error updating metadata: %1 + Error al actualizar los metadatos: %1 + + File %1 cannot be downloaded because encryption information is missing. El archivo %1 no puede ser descargado porque falta la información de cifrado, - - - Could not delete file record %1 from local DB - No fue posible borrar el registro del archivo %1 de la base de datos local + File %1 downloaded but it resulted in a local file name clash! + ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! - - The download would reduce free local disk space below the limit - La descarga reducirá el espacio libre local por debajo del límite. + File %1 has invalid modified time reported by server. Do not save it. + El servidor informa que el archivo %1 tiene una hora de modificación no válida. No lo guardes. - - Free space on disk is less than %1 - El espacio libre en el disco es inferior a %1 + File has changed since discovery + El archivo ha cambiado desde que fue descubierto - - + File was deleted from server Se ha eliminado el archivo del servidor - - The file could not be downloaded completely. - No se ha podido descargar el archivo completamente. - - - - The downloaded file is empty, but the server said it should have been %1. - El archivo descargado está vacío, aunque el servidor dijo que debía ocupar %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - El servidor informa que el archivo %1 tiene una hora de modificación no válida. No lo guardes. + Free space on disk is less than %1 + El espacio libre en el disco es inferior a %1 - - File %1 downloaded but it resulted in a local file name clash! - ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! + The download would reduce free local disk space below the limit + La descarga reducirá el espacio libre local por debajo del límite. - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + The downloaded file is empty, but the server said it should have been %1. + El archivo descargado está vacío, aunque el servidor dijo que debía ocupar %1. - The file %1 is currently in use El archivo %1 se encuentra en uso - - - File has changed since discovery - El archivo ha cambiado desde que fue descubierto + The file could not be downloaded completely. + No se ha podido descargar el archivo completamente. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. La restauración ha fallado: %2 - - - ; Restoration Failed: %1 ; Fallo al restaurar: %1 - A file or folder was removed from a read only share, but restoring failed: %1 Un archivo o directorio ha sido eliminado de una carpeta compartida de solo lectura pero la recuperación ha fallado: %1 @@ -4532,130 +3810,102 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - no se ha podido borrar el archivo %1, error: %2 + Could not create folder %1 + No se pudo crear la carpeta %1 + + + Error updating metadata: %1 + Error al actualizar los metadatos: %1 - Folder %1 cannot be created because of a local file or folder name clash! ¡La carpeta %1 no se pudo crear a causa de un conflicto con el nombre de un archivo o carpeta local! - - Could not create folder %1 - No se pudo crear la carpeta %1 + The file %1 is currently in use + El archivo %1 se encuentra en uso - - - - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 - - unknown exception - excepción inválida - - - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + could not delete file %1, error: %2 + no se ha podido borrar el archivo %1, error: %2 - - The file %1 is currently in use - El archivo %1 se encuentra en uso + unknown exception + excepción inválida - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + No fue posible borrar el registro del archivo %1 de la base de datos local + + Could not remove %1 because of a local file name clash No se ha podido eliminar %1 por causa de un conflicto con el nombre de un archivo local - - - Temporary error when removing local item removed from server. Error temporal al quitar ítem local que fue eliminado del servidor. - - - Could not delete file record %1 from local DB - No fue posible borrar el registro del archivo %1 de la base de datos local - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - ¡La carpeta %1 no puede ser renombrada ya que un archivo o carpeta local causa un conflicto de nombre! - - - - File %1 downloaded but it resulted in a local file name clash! - ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! + Could not delete file record %1 from local DB + No fue posible borrar el registro del archivo %1 de la base de datos local - - - + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local - - Error setting pin state Error al configurar el estado fijado - Error updating metadata: %1 Error al actualizar los metadatos: %1 - - The file %1 is currently in use - El archivo %1 se encuentra en uso - - - Failed to propagate directory rename in hierarchy Fallo al propagar el renombrado de carpeta en la jerarquía - Failed to rename file Fallo al renombrar el archivo - - Could not delete file record %1 from local DB - No fue posible borrar el registro del archivo %1 de la base de datos local + File %1 downloaded but it resulted in a local file name clash! + ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + ¡La carpeta %1 no puede ser renombrada ya que un archivo o carpeta local causa un conflicto de nombre! + + + The file %1 is currently in use + El archivo %1 se encuentra en uso + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -4663,203 +3913,152 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - El código HTTP devuelto por el servidor es erróneo. Se esperaba 201, pero se recibió "%1 %2". + Error writing metadata to the database: %1 + Error al escribir los metadatos en la base de datos: %1 - Failed to encrypt a folder %1 Fallo al cifrar una carpeta %1 - - Error writing metadata to the database: %1 - Error al escribir los metadatos en la base de datos: %1 - - - The file %1 is currently in use El archivo %1 se encuentra en uso - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + El código HTTP devuelto por el servidor es erróneo. Se esperaba 201, pero se recibió "%1 %2". + + OCC::PropagateRemoteMove - - Could not rename %1 to %2, error: %3 - No se puede renombrar %1 a %2, error: %3 - + Could not delete file record %1 from local DB + No fue posible borrar el registro del archivo %1 de la base de datos local + + + Could not get file %1 from local DB + No se pudo obtener el archivo %1 de la DB local + + + Could not rename %1 to %2, error: %3 + No se puede renombrar %1 a %2, error: %3 + + + Error setting pin state + Error al configurar el estado fijado + - - Error updating metadata: %1 Error al actualizar los metadatos: %1 - - + Error writing metadata to the database + Error al escribir los metadatos en la base de datos + + The file %1 is currently in use El archivo %1 se encuentra en uso - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Esperado 201, pero recibido "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - No se pudo obtener el archivo %1 de la DB local - - - - Could not delete file record %1 from local DB - No fue posible borrar el registro del archivo %1 de la base de datos local + Error updating metadata: %1 + Error al actualizar los metadatos: %1 - - Error setting pin state - Error al configurar el estado fijado + Failed to unlock encrypted folder. + Fallo al desbloquear la carpeta cifrada. - - Error writing metadata to the database - Error al escribir los metadatos en la base de datos + Failed to upload encrypted file. + Fallo al subir el archivo cifrado. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists El archivo %1 no se puede subir porque ya existe otro con el mismo nombre. Puede que sólo haya diferencias de mayúsculas/minúsculas - - - File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación no válida. No subir al servidor. - - Local file changed during syncing. It will be resumed. - Un archivo local ha cambiado durante la sincronización. Se reanudará. + File Removed (start upload) %1 + Archivo eliminado (comenzar subida) %1 - - + Local file changed during sync. Un archivo local ha sido modificado durante la sincronización. - - Failed to unlock encrypted folder. - Fallo al desbloquear la carpeta cifrada. - - - - Unable to upload an item with invalid characters - No se puede subir un elemento con caracteres no válidos - - - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + Local file changed during syncing. It will be resumed. + Un archivo local ha cambiado durante la sincronización. Se reanudará. - The file %1 is currently in use El archivo %1 se encuentra en uso - - - Upload of %1 exceeds the quota for the folder - La subida %1 excede el límite de tamaño de la carpeta - - - - Failed to upload encrypted file. - Fallo al subir el archivo cifrado. + Unable to upload an item with invalid characters + No se puede subir un elemento con caracteres no válidos - - File Removed (start upload) %1 - Archivo eliminado (comenzar subida) %1 + Upload of %1 exceeds the quota for the folder + La subida %1 excede el límite de tamaño de la carpeta - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - El archivo está bloqueado, impidiendo su sincronización + File is not accessible on the server. + server error + El archivo no es accesible en el servidor. - - - The local file was removed during sync. - El archivo local ha sido eliminado durante la sincronización. + + Folder is not accessible on the server. + server error + La carpeta no es accesible en el servidor. - Local file changed during sync. Un archivo local fue modificado durante la sincronización. - - Poll URL missing - Falta la URL de la encuesta - - - - Unexpected return code from server (%1) - Respuesta inesperada del servidor (%1) - - - Missing File ID from server ID perdido del archivo del servidor - - Folder is not accessible on the server. - server error - La carpeta no es accesible en el servidor. + Poll URL missing + Falta la URL de la encuesta - - File is not accessible on the server. - server error - El archivo no es accesible en el servidor. + The local file was removed during sync. + El archivo local ha sido eliminado durante la sincronización. - + + Unexpected return code from server (%1) + Respuesta inesperada del servidor (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - El archivo está bloqueado, impidiendo su sincronización + Local file changed during sync. + Un archivo local ha sido modificado durante la sincronización. - Poll URL missing Falta la URL de la encuesta - The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. - - Local file changed during sync. - Un archivo local ha sido modificado durante la sincronización. - - - The server did not acknowledge the last chunk. (No e-tag was present) El servidor no ha reconocido la última parte. (No había una e-tag presente) @@ -4867,35 +4066,29 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ProxyAuthDialog - + Password: + Contraseña: + + Proxy authentication required Autenticación de proxy necesaria - - Username: - Nombre de usuario: - - - Proxy: Proxy: - The proxy server needs a username and password. El servidor de proxy necesita de un usuario y contraseña. - - Password: - Contraseña: + Username: + Nombre de usuario: - + OCC::SelectiveSyncDialog - Choose What to Sync Escoja qué sincronizar @@ -4903,78 +4096,103 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::SelectiveSyncWidget - - Loading … - Cargando ... + An error occurred while loading the list of sub folders. + Se ha producido un error al cargar la lista de carpetas. - - + Deselect remote folders you do not wish to synchronize. Deseleccione las carpetas remotas que no desea sincronizar. - - Name - Nombre + Loading … + Cargando ... - - Size - Tamaño + Name + Nombre - - No subfolders currently on the server. No hay subcarpetas actualmente en el servidor. - - An error occurred while loading the list of sub folders. - Se ha producido un error al cargar la lista de carpetas. + Size + Tamaño - + OCC::ServerNotificationHandler - + Dismiss + Descartar + + Reply Responder + + + OCC::sesSnackBar - - Dismiss - Descartar + Error + Error - - - OCC::SettingsDialog - - Settings - Ajustes + Success + + + + Warning + Aviso + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud Configuración de %1 - + Account + Cuenta + + General General - - Account - Cuenta + New account + - + + Settings + Ajustes + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Resultados de búsqueda global + + + No results found + No se encontraron resultados + + + Search globally + Buscar globalmente + + OCC::ShareManager - Error Error @@ -4982,126 +4200,61 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ShareModel - %1 days %1 días - - %1 day - %1 días - - - 1 day 1 día - - Today - Hoy - - - - Secure file drop link - Enlace para entrega de archivos segura + Could not find local folder for %1 + No se ha podido encontrar una carpeta local para %1 - - - Share link - Compartir enlace + + Internal link + Enlace interno - Link share Compartición de enlace - - Internal link - Enlace interno - - - Secure file drop Entrega segura de archivos - - Could not find local folder for %1 - No se ha podido encontrar una carpeta local para %1 - - - - OCC::ShareeModel - - - - Search globally - Buscar globalmente - - - - No results found - No se encontraron resultados + Secure file drop link + Enlace para entrega de archivos segura - - Global search results - Resultados de búsqueda global + Share link + Compartir enlace - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Hoy - + OCC::SocketApi - - Context menu share - Compartir en menú contextual - - - - I shared something with you - He compartido algo contigo + Activity + Actividad - - - Share options - Opciones de compartir + Context menu share + Compartir en menú contextual - - Send private link by email … - Enviar enlace privado por correo electrónico ... + Copy internal link + Copiar enlace interno - Copy private link to clipboard Copiar enlace privado al portapapeles - - Failed to encrypt folder at "%1" - No se pudo cifrar carpeta en "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - La cuenta %1 no tiene el cifrado de extremo a extremo configurado. Por favor configure esto en sus opciones de cuenta para habilitar el cifrado de carpetas. - - - - Failed to encrypt folder - Fallo al cifrar la carpeta - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5110,990 +4263,787 @@ Server replied with error: %2 El servidor respondió con el error: %2 - - Folder encrypted successfully - Se cifró la carpeta exitosamente + Delete + Eliminar - - The following folder was encrypted successfully: "%1" - La siguiente carpeta se cifró con éxito: "%1" + Delete local changes + Borra cambios en local - - Select new location … - Seleccione nueva ubicación … + Encrypt + Cifrar - - - - File actions - Acciones de archivo + + Expires in %1 minutes + remaining time before lock expires + + Caduca en %1 minuto + Caduca en %1 minutos + - - - Activity - Actividad + Failed to encrypt folder + Fallo al cifrar la carpeta - - Leave this share - Abandonar este recurso compartido + Failed to encrypt folder at "%1" + No se pudo cifrar carpeta en "%1" - - Resharing this file is not allowed - No está permitido compartir de nuevo + Folder encrypted successfully + Se cifró la carpeta exitosamente - - Resharing this folder is not allowed - No está permitido compartir de nuevo esta carpeta + I shared something with you + He compartido algo contigo - - Encrypt - Cifrar + Leave this share + Abandonar este recurso compartido - Lock file Bloquear archivo - - Unlock file - Desbloquear archivo - - - Locked by %1 Bloqueado por %1 - - - Expires in %1 minutes - remaining time before lock expires - Caduca en %1 minutoCaduca en %1 minutosCaduca en %1 minutos - - - - Resolve conflict … - Resolver conflicto … - - Move and rename … Mover y renombrar … - + Move and upload … + Mover y subir … + + Move, rename and upload … Mover, renombrar y subir … - - Delete local changes - Borra cambios en local + Open in browser + Abrir en navegador + + + Resharing this file is not allowed + No está permitido compartir de nuevo - - Move and upload … - Mover y subir … + Resharing this folder is not allowed + No está permitido compartir de nuevo esta carpeta - - Delete - Eliminar + Resolve conflict … + Resolver conflicto … - - Copy internal link - Copiar enlace interno + Select new location … + Seleccione nueva ubicación … - - - Open in browser - Abrir en navegador + Send private link by email … + Enviar enlace privado por correo electrónico ... - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Detalles del certificado</h3> + Share options + Opciones de compartir - - Common Name (CN): - Nombre común (NC): + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + La cuenta %1 no tiene el cifrado de extremo a extremo configurado. Por favor configure esto en sus opciones de cuenta para habilitar el cifrado de carpetas. - - Subject Alternative Names: - Nombres alternativos del sujeto: + The following folder was encrypted successfully: "%1" + La siguiente carpeta se cifró con éxito: "%1" - - Organization (O): - Organización (O): + Unlock file + Desbloquear archivo + + + OCC::SslButton - - Organizational Unit (OU): - Unidad organizativa (UO): + %1 + %1 - - State/Province: - Estado/Provincia: + %1 (self-signed) + %1 (autofirmado) - - Country: - País: + <h3>Certificate Details</h3> + <h3>Detalles del certificado</h3> - - Serial: - Nº de serie: + <h3>Fingerprints</h3> + <h3>Firma</h3> - <h3>Issuer</h3> <h3>Emisor</h3> - - Issuer: - Emisor: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Notificación:</b> Este certificado fue aprobado manualmente</p> - - Issued on: - Emitido en: + Certificate information: + Información del certificado: + + + Common Name (CN): + Nombre común (NC): + + + Country: + País: - Expires on: Caduca el: - - <h3>Fingerprints</h3> - <h3>Firma</h3> + Issued on: + Emitido en: - - SHA-256: - SHA-256: + Issuer: + Emisor: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + No admite tickets de sesión/identificadores SSL - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Notificación:</b> Este certificado fue aprobado manualmente</p> + Organization (O): + Organización (O): - - %1 (self-signed) - %1 (autofirmado) + Organizational Unit (OU): + Unidad organizativa (UO): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - Esta conexión está cifrada con %1 bit %2. - + SHA-256: + SHA-256: + + + Serial: + Nº de serie: - Server version: %1 Versión del servidor: %1 - - No support for SSL session tickets/identifiers - No admite tickets de sesión/identificadores SSL + State/Province: + Estado/Provincia: - - Certificate information: - Información del certificado: + Subject Alternative Names: + Nombres alternativos del sujeto: - The connection is not secure La conexión no es segura + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Esta conexión NO ES SEGURA, pues no está cifrada. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Confiar en este certificado de todas maneras + &lt;not specified&gt; + &lt;no especificado&gt; - - Untrusted Certificate - Certificado sin verificar + Additional errors: + Errores adicionales: - Cannot connect securely to <i>%1</i>: No puedo conectar de forma segura a <i>%1</i>: - - Additional errors: - Errores adicionales: - - - - with Certificate %1 - con certificado %1 + Country: %1 + País: %1 - - - - &lt;not specified&gt; - &lt;no especificado&gt; + Effective Date: %1 + Fecha de vigencia: %1 - - - Organization: %1 - Organización: %1 + Expiration Date: %1 + Fecha de caducidad: %1 - - - Unit: %1 - Unidad: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Huella digital (SHA-256):<tt>%1</tt> - - - Country: %1 - País: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Huella digital (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Huella dactilar (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Huella digital (SHA-256):<tt>%1</tt> + Issuer: %1 + Emisor: %1 + + + Organization: %1 + Organización: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Huella digital (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Confiar en este certificado de todas maneras - - Effective Date: %1 - Fecha de vigencia: %1 + Unit: %1 + Unidad: %1 - - Expiration Date: %1 - Fecha de caducidad: %1 + Untrusted Certificate + Certificado sin verificar - - Issuer: %1 - Emisor: %1 + with Certificate %1 + con certificado %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (no realizado por el error anterior, intente de nuevo en %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Solo %1 disponible, se necesita por lo menos %2 para comenzar - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Imposible abrir o crear la BBDD local de sync. Asegurese de que tiene permisos de escritura en la carpeta de sync. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Poco espacio libre en disco: La descarga lo reducirá por debajo del %1, deberia abortar. + Cannot open the sync journal + No es posible abrir el diario de sincronización - - - There is insufficient space available on the server for some uploads. - No hay suficiente espacio libre en el servidor para algunas subidas. + + Could not set file record to local DB: %1 + No fue posible establecer el registro del archivo a la base de datos local: %1 - - Unresolved conflict. - Conflicto sin resolver. + Could not update file metadata: %1 + No se pudo actualizar los metadatos del archivo: %1 - Could not update file: %1 No se pudo actualizar el archivo: %1 - Could not update virtual file metadata: %1 No se ha podido actualizar los metadatos del archivo virtual: %1 - - Could not update file metadata: %1 - No se pudo actualizar los metadatos del archivo: %1 - - - - Could not set file record to local DB: %1 - No fue posible establecer el registro del archivo a la base de datos local: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Poco espacio libre en disco: La descarga lo reducirá por debajo del %1, deberia abortar. - - Using virtual files with suffix, but suffix is not set - Usando archivos virtuales con sufijo, pero el sufijo no está establecido + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Solo %1 disponible, se necesita por lo menos %2 para comenzar - - Unable to read the blacklist from the local database - No se pudo leer la lista de bloqueo de la base de datos local + There is insufficient space available on the server for some uploads. + No hay suficiente espacio libre en el servidor para algunas subidas. + + + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Imposible abrir o crear la BBDD local de sync. Asegurese de que tiene permisos de escritura en la carpeta de sync. - Unable to read from the sync journal. No se ha podido leer desde el registro de sincronización - - Cannot open the sync journal - No es posible abrir el diario de sincronización + Unable to read the blacklist from the local database + No se pudo leer la lista de bloqueo de la base de datos local - - - OCC::SyncStatusSummary - - - - Offline - No conectado + Unresolved conflict. + Conflicto sin resolver. - - You need to accept the terms of service - Debe aceptar los términos de servicio + Using virtual files with suffix, but suffix is not set + Usando archivos virtuales con sufijo, pero el sufijo no está establecido + + + OCC::SyncStatusSummary - - Reauthorization required - Se requiere volver a autorizar + %1 of %2 + %1 de %2 - - Please grant access to your sync folders - Por favor, concede acceso a tus carpetas de sincronización + %1 of %2 · %3 left + %1 de %2 · quedan %3 - - - All synced! ¡Todo está sincronizado! - - Some files couldn't be synced! - ¡Algunos archivos no han podido ser sincronizados! - - - - See below for errors - Comprueba abajo los errores - - - Checking folder changes Comprobando cambios en la carpeta - - Syncing changes - Sincronizando cambios + Offline + No conectado - - Sync paused - Sincronización pausada + See below for errors + Comprueba abajo los errores + + + See below for warnings + Comprueba abajo los avisos - Some files could not be synced! ¡Algunos archivos no pueden ser sincronizados! - - See below for warnings - Comprueba abajo los avisos + Some files couldn't be synced! + ¡Algunos archivos no han podido ser sincronizados! - - Syncing - Sincronizando + Sync paused + Sincronización pausada - - %1 of %2 · %3 left - %1 de %2 · quedan %3 + Syncing + Sincronizando - - %1 of %2 - %1 de %2 + Syncing changes + Sincronizando cambios - Syncing file %1 of %2 Sincronizando archivo %1 de %2 - - - No synchronisation configured - No hay sincronización configurada + + You need to accept the terms of service + Debe aceptar los términos de servicio - + OCC::Systray - + Add account + Agregar cuenta + + Download Descargar - - Add account - Agregar cuenta + Exit %1 + Salir %1 + + + Help + Ayuda - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Abrir Escritorio %1 - - Pause sync Pausar sincronización - - - Resume sync - Continuar sincronización - - - - Settings - Ajustes - - - - Help - Ayuda - - - - Exit %1 - Salir %1 - - - Pause sync for all Pausar sincronización para todo - + Resume sync + Continuar sincronización + + Resume sync for all Continuar sincronización a todos - + + Settings + Ajustes + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - Esperando a que los términos de servicio sean aceptados - - - - Polling - Sondeando + Copy Link + Copiar enlace - - + Link copied to clipboard. Enlace copiado al portapapeles - Open Browser Abrir Navegador - - Copy Link - Copiar enlace + Polling + Sondeando - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - Cliente de escritorio %1 versión %2 (%3 ejecutándose en %4) + Waiting for terms to be accepted + Esperando a que los términos de servicio sean aceptados + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Versión del Cliente de Escritorio %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Usando el plugin de archivos virtuales: %1</small></p> - <p>This release was supplied by %1.</p> <p>Esta versión ha sido suministrada por %1.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Fallo al recuperar los proveedores. - Failed to fetch search providers for '%1'. Error: %2 Fallo al recuperar los proveedores de búsqueda para '%1'. Error: %2 - - Search has failed for '%2'. - La búsqueda ha fallado para '%2'. - - - Search has failed for '%1'. Error: %2 La búsqueda ha fallado para '%1'. Error: %2 - + + Search has failed for '%2'. + La búsqueda ha fallado para '%2'. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Fallo al actualizar los metadatos de la carpeta. + Failed to finalize item. + Fallo al finalizar ítem. - - + Failed to unlock encrypted folder. Fallo al desbloquear carpeta cifrada. - - Failed to finalize item. - Fallo al finalizar ítem. + Failed to update folder metadata. + Fallo al actualizar los metadatos de la carpeta. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Error al actualizar los metadatos de una carpeta %1 + Could not add or remove user %1 to access folder %2 + No se ha podido añadir o eliminar al usuario %1 para acceder a la carpeta %2 - Could not fetch public key for user %1 No se pudo obtener la llave pública para el usuario %1 - Could not find root encrypted folder for folder %1 No se ha podido encontrar la carpeta cifrada para la carpeta %1 - - Could not add or remove user %1 to access folder %2 - No se ha podido añadir o eliminar al usuario %1 para acceder a la carpeta %2 + Error updating metadata for a folder %1 + Error al actualizar los metadatos de una carpeta %1 - Failed to unlock a folder. Fallo al desbloquear una carpeta. OCC::User + + %n notification(s) + + %n notificación + %n notificaciones + + - End-to-end certificate needs to be migrated to a new one El certificado de extremo a extremo debe ser migrado a uno nuevo - - Trigger the migration - Iniciar la migración - - - - %n notification(s) - %n notificación%n notificaciones%n notificaciones + Open %1 Assistant in browser + The placeholder will be the application name. Please keep it + Abrir Asistente %1 en el navegador - - - “%1” was not synchronized - “%1” no se ha sincronizado + Open %1 Talk in browser + The placeholder will be the application name. Please keep it + Abrir Conversación de Talk %1 en el navegador - - Insufficient storage on the server. The file requires %1 but only %2 are available. - Almacenamiento insuficiente en el servidor. El archivo requiere %1 pero solo hay %2 disponible. + Public Share Link + Enlace Compartido Público - - Insufficient storage on the server. The file requires %1. - Almacenamiento insuficiente en el servidor. El archivo requiere %1. + Quota Warning - %1 percent or more storage in use + Advertencia de Cuota - Se está utilizando un porcentaje de almacenamiento del %1 o mayor + + + Quota is updated; %1 percent of the total space is used. + La cuota ha sido actualizada; El porcentaje de uso del espacio total es %1. - - Insufficient storage on the server. - Almacenamiento insuficiente en el servidor. + Rename file + Renombrar archivo - - There is insufficient space available on the server for some uploads. - No hay espacio disponible en el servidor para algunas de las subidas. + Resolve conflict + Resolver conflicto - Retry all uploads Reintentar todas las subidas - - - Resolve conflict - Resolver conflicto + Trigger the migration + Iniciar la migración + + + OCC::UserModel - - Rename file - Renombrar archivo + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>¿De verdad quieres eliminar la conexión con la cuenta <i>%1</i>?</p><p><b>Aviso:</b> Esto <b>no eliminará</b> ningún archivo.</p> - - Public Share Link - Enlace Compartido Público + Cancel + Cancelar - - Open %1 Assistant in browser - The placeholder will be the application name. Please keep it - Abrir Asistente %1 en el navegador + Confirm Account Removal + Confirma la eliminación de cuenta - - Open %1 Talk in browser - The placeholder will be the application name. Please keep it - Abrir Conversación de Talk %1 en el navegador + Leave share + Quitar recurso compartido - - Open %1 Assistant - The placeholder will be the application name. Please keep it - Abrir el asistente %1 + Remove account + Eliminar cuenta - - - Assistant is not available for this account. - El asistente no está disponible para esta cuenta. + + Remove connection + Eliminar vinculación - - - Assistant is already processing a request. - El asistente está procesando una solicitud. + + + OCC::UserStatusSelectorModel + + %n day(s) + + %n día + %n días + - - - Sending your request… - Enviando su solicitud ... + + %n hour(s) + + %n hora + %n horas + - - - Sending your request … - Enviando tu solicitud … + + %n minute(s) + + %n minuto + %n minutos + - - No response yet. Please try again later. - Aún no hay respuesta. Por favor, inténtelo de nuevo más tarde. + 1 hour + 1 hora - - No supported assistant task types were returned. - No se devolvieron tipos de tareas de asistente compatibles. + 30 minutes + 30 minutos - - Waiting for the assistant response… - Esperando por la respuesta del asistente ... + 4 hours + 4 horas - - Assistant request failed (%1). - La solicitud del asistente falló ( %1 ). - - - - Quota is updated; %1 percent of the total space is used. - La cuota ha sido actualizada; El porcentaje de uso del espacio total es %1. - - - - Quota Warning - %1 percent or more storage in use - Advertencia de Cuota - Se está utilizando un porcentaje de almacenamiento del %1 o mayor - - - - OCC::UserModel - - - Confirm Account Removal - Confirma la eliminación de cuenta - - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>¿De verdad quieres eliminar la conexión con la cuenta <i>%1</i>?</p><p><b>Aviso:</b> Esto <b>no eliminará</b> ningún archivo.</p> - - - - Remove connection - Eliminar vinculación - - - - Cancel - Cancelar - - - - Leave share - Quitar recurso compartido - - - - Remove account - Eliminar cuenta + Could not clear status message. Make sure you are connected to the server. + No se ha podido borrar el mensaje de estado. Asegúrese de que está conectado al servidor. - - - OCC::UserStatusSelectorModel - Could not fetch predefined statuses. Make sure you are connected to the server. No se han podido recuperar los estados predefinidos. Asegúrese de que está conectado al servidor. - Could not fetch status. Make sure you are connected to the server. No se ha podido obtener el estado. Asegúrese de que está conectado al servidor. - - Status feature is not supported. You will not be able to set your status. - La característica de estado no está soportada. No podrá establecer su estado. - - - - Emojis are not supported. Some status functionality may not work. - La característica de emojis no está soportada. Es posible que algunas características de estado del usuario no funcionen. - - - Could not set status. Make sure you are connected to the server. No se ha podido establecer el estado. Asegúrese de que está conectado al servidor. - - Could not clear status message. Make sure you are connected to the server. - No se ha podido borrar el mensaje de estado. Asegúrese de que está conectado al servidor. - - - - Don't clear No borrar - - 30 minutes - 30 minutos - - - - 1 hour - 1 hora + Emojis are not supported. Some status functionality may not work. + La característica de emojis no está soportada. Es posible que algunas características de estado del usuario no funcionen. - - 4 hours - 4 horas + Less than a minute + Hace menos de un minuto - - - Today - Hoy + Status feature is not supported. You will not be able to set your status. + La característica de estado no está soportada. No podrá establecer su estado. - - This week Esta semana - - Less than a minute - Hace menos de un minuto - - - - %n minute(s) - %n minuto%n minutos%n minutos - - - - %n hour(s) - %n hora%n horas%n horas - - - - %n day(s) - %n día%n días%n días + Today + Hoy - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1 es una unidad. No soporta archivos virtuales. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Por favor seleccione un ubicación diferente. %1no es un sistema de archivos NTFS. No soporta archivos virtuales. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1 es una unidad de red. No soporta archivos virtuales. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Por favor seleccione un ubicación diferente. %1no es un sistema de archivos NTFS. No soporta archivos virtuales. + + OCC::VfsDownloadErrorDialog - - Download error - Error de descarga + %1 could not be downloaded. + %1 no pudo ser descargado. - - - Error downloading - Error al descargar + + > More details + > Más detalles - Could not be downloaded No se pudo descargar - - > More details - > Más detalles + Download error + Error de descarga - - More details - Más detalles + Error downloading + Error al descargar - Error downloading %1 Error descargando %1 - - %1 could not be downloaded. - %1 no pudo ser descargado. + More details + Más detalles - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una fecha de modificación no válida. @@ -6101,8 +5051,6 @@ El servidor respondió con el error: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una fecha de modificación no válida. @@ -6110,12 +5058,10 @@ El servidor respondió con el error: %2 OCC::WebEnginePage - Invalid certificate detected Certificado inválido detectado - The host "%1" provided an invalid certificate. Continue? El host "%1" ha entregado un certificado no válido. ¿Continuar? @@ -6123,769 +5069,642 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Ha cerrado la sesión de su cuenta %1 en %2. Por favor, inicie sesión de nuevo. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formulario - - Log in - Iniciar sesión - - - - Sign up with provider - Iniciar sesión a través de un proveedor + Host your own server + Aloja tu propio servidor - - + Keep your data secure and under your control Mantén tus datos seguros y bajo tu control - - Secure collaboration & file exchange - Colaboración segura e intercambio de archivos - - - - Easy-to-use web mail, calendaring & contacts - Correo web, calendario y contactos fáciles de usar - - - - Screensharing, online meetings & web conferences - Compartir pantalla, reuniones online y conferencias web + Log in + Iniciar sesión - - Host your own server - Aloja tu propio servidor + Sign up with provider + Iniciar sesión a través de un proveedor - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - Configuraciones del Proxy + HTTP(S) proxy + Proxy HTTP(S) - Hostname of proxy server Nombre de servidor del servidor proxy - - Username for proxy server - Nombre de usuario para el servidor proxy - - - Password for proxy server Contraseña para el servidor proxy - - HTTP(S) proxy - Proxy HTTP(S) + Proxy Settings + Dialog window title for proxy settings + Configuraciones del Proxy - SOCKS5 proxy Proxy SOCKS5 - + + Username for proxy server + Nombre de usuario para el servidor proxy + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Por favor, inicie sesión + &Local Folder + Carpeta &local - - - There are no sync folders configured. - No hay carpetas configuradas para sincronizar. + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si esta casilla está marcada, el contenido existente en el directorio local será eliminado para comenzar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debería subirse al directorio del servidor.</p></body></html> - - Disconnected from %1 - Desconectado de %1 + Ask before syncing folders larger than + Preguntar antes sincronizar carpetas mayores de - - Unsupported Server Version - Versión del servidor no soportada + Choose different folder + Elegir una carpeta diferente - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - El servidor en la cuenta %1 usa una versión no soportada %2. El uso de este cliente con versiones de servidor no soportadas no ha sido probado y es potencialmente peligroso. Continúa bajo tu propio riesgo. + Choose what to sync + Elija qué sincronizar - - Terms of service - Términos de servicio + Erase local folder and start a clean sync + Borrar carpeta local e iniciar una sincronización limpia - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Su cuenta %1 requiere que acepte los términos de servicio de su servidor. Será redirigido a %2 para indicar que los ha leído y está de acuerdo. + Keep local data + Mantener datos locales - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1:%2 + Local Folder + Carpeta Local - - macOS VFS for %1: Sync is running. - macOS VFS para %1: Sincronización en progreso. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Last sync was successful. - macOS VFS para %1: la última sincronización fue exitosa. + Server address + Nombre del servidor - - macOS VFS for %1: A problem was encountered. - macOS VFS para %1: Se ha encontrado un problema. + Sync Logo + Sync Logo - - macOS VFS for %1: An error was encountered. - macOS VFS para %1: Se encontró un error. + Synchronize everything from server + Sincronizar todo desde el servidor - - Checking for changes in remote "%1" - Buscando cambios en carpeta remota "%1" + Username + Nombre de usuario + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Buscando cambios en carpeta local "%1" + &Password + &Contraseña - - - Internal link copied - + + &Username + &Nombre de usuario + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Nombre del servidor - - Disconnected from accounts: - Desconectado desde cuentas: + This is the link to your %1 web interface when you open it in the browser. + Este es el link a su interfaz web %1 cuando la abra en el navegador. + + + progress - - Account %1: %2 - Cuenta %1: %2 + Deleted + Eliminado - - Account synchronization is disabled - La sincronización está deshabilitada + Deleting + Eliminando - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Descargado - - - OwncloudAdvancedSetupPage - - Username - Nombre de usuario + Downloading + Descargando - - Local Folder - Carpeta Local + Error + Error - - Choose different folder - Elegir una carpeta diferente + Filesystem access error + Error de acceso al sistema de archivos - - Server address - Nombre del servidor + Ignored + Ignorado - - Sync Logo - Sync Logo + Ignoring + Ignorando - - Synchronize everything from server - Sincronizar todo desde el servidor + Moved to %1 + Movido a %1 - - Ask before syncing folders larger than - Preguntar antes sincronizar carpetas mayores de + Moving + Moviendo - - Ask before syncing external storages - Preguntar antes sincronizar almacenamientos externos + Replaced by virtual file + Reemplazado por un archivo virtual - - Keep local data - Mantener datos locales + Server version downloaded, copied changed local file into case conflict conflict file + Se descargó la versión del servidor, se copió el archivo local cambiado hacia archivo con conflictos de capitalización - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Si esta casilla está marcada, el contenido existente en el directorio local será eliminado para comenzar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debería subirse al directorio del servidor.</p></body></html> + Server version downloaded, copied changed local file into conflict file + Versión del servidor descargada, se ha copiado el fichero local cambiado al fichero en conflicto - - Erase local folder and start a clean sync - Borrar carpeta local e iniciar una sincronización limpia + Unknown + Desconocido - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated end-to-end encryption metadata + Metadatos de cifrado de extremo a extremo actualizados - - Choose what to sync - Elija qué sincronizar + Updated local metadata + Actualizados metadatos locales - - &Local Folder - Carpeta &local + Updated local virtual files metadata + Se han actualizado los metadatos para los archivos virtuales - - - OwncloudHttpCredsPage - - &Username - &Nombre de usuario + Updating end-to-end encryption metadata + Actualizando metadatos de cifrado extremo a extremo + + + Updating local metadata + Actualizando los metadatos locales - - &Password - &Contraseña + Updating local virtual files metadata + Actualizando los metadatos de los archivos virtuales locales - - - OwncloudSetupPage - - Logo - Logo + Uploaded + Subido - - Server address - Nombre del servidor + Uploading + Subiendo - - This is the link to your %1 web interface when you open it in the browser. - Este es el link a su interfaz web %1 cuando la abra en el navegador. + Virtual file created + Archivo virtual creado - + ProxySettings - Form Formulario - - Proxy Settings - Configuraciones del Proxy + Host + Servidor - Manually specify proxy Especificar proxy manualmente - - Host - Servidor + No proxy + Sin proxy + + + Note: proxy settings have no effects for accounts on localhost + Nota: las configuraciones del proxy no tienen efectos para las cuentas en localhost - - Proxy server requires authentication - El servidor proxy requiere autenticación + Proxy Settings + Configuraciones del Proxy - - Note: proxy settings have no effects for accounts on localhost - Nota: las configuraciones del proxy no tienen efectos para las cuentas en localhost + Proxy server requires authentication + El servidor proxy requiere autenticación - Use system proxy Utilizar el proxy del sistema - - - No proxy - Sin proxy - - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %nd%nd%nd - - - - in the future - en el futuro + + %nd + %nd + - %nh delay in hours after an activity - %nh%nh%nh + + %nh + %nh + - - - now - ahora + + %nmin + delay in minutes after an activity + + %nmin + %nmin + - 1min one minute after activity date and time 1min - - - %nmin - delay in minutes after an activity - %nmin%nmin%nmin - - - Some time ago - Hace tiempo + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema persiste. - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! - - New folder - Nueva carpeta + Error deleting the file + Error al eliminar el archivo - Failed to create debug archive Fallo al crear archivo de depuración - - Could not create debug archive in selected location! - ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! - - - - Could not create debug archive in temporary location! - ¡No se pudo crear el archivo de depuración en la ubicación temporal! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Parece estar utilizando un proxy que requiere autenticación. Por favor, verifique las configuraciones de su proxy y las credenciales. Si necesita ayuda, contacte al administrador de su servidor. - - Could not remove existing file at destination! - ¡No se pudo eliminar el archivo que existe en el destino! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Está tomando mucho tiempo conectarse al servidor. Por favor, intente nuevamente más tarde. Si necesita ayuda, contacte al administrador de su servidor. - - Could not move debug archive to selected location! - ¡No se pudo mover el archivo de depuración a la ubicación seleccionada! + New folder + Nueva carpeta - - You renamed %1 - Ha renombrado %1 + Paths beginning with '#' character are not supported in VFS mode. + Las rutas que comienzan con el carácter '#' no están soportadas en el modo VFS. - - You deleted %1 - Ha eliminado %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Los archivos en el servidor cambiaron mientras Ud. trabajaba. Por favor, intente sincronizar nuevamente. Contacte al administrador de su servidor si el problema persiste. - - You created %1 - Ha creado %1 + Some time ago + Hace tiempo - - You changed %1 - Ha cambiado %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Algo ha salido mal en el servidor. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor si el problema persiste. - Synced %1 Sincronizado %1 - - Error deleting the file - Error al eliminar el archivo + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + La dirección que se utilizó para hacer la solicitud es demasiado grande para que el servidor pueda utilizarla. Por favor, trate de acortar la información que está enviando, o, contacte al administrador de su servidor para que le asista. - - Paths beginning with '#' character are not supported in VFS mode. - Las rutas que comienzan con el carácter '#' no están soportadas en el modo VFS. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - No pudimos procesar su solicitud. Por favor, intente sincronizar nuevamente más tarde. Si esto sigue sucediendo, contacte al administrador de su servidor para buscar ayuda. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + El archivo es demasiado grande para ser cargado. Podría necesitar escoger un archivo más pequeño, o, contactar al administrador de su servidor para que le asista. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - Debe iniciar sesión para continuar. Si tiene problema con sus credenciales, por favor, comuníquese con el administrador de su servidor. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + La solicitud no pudo ser completada debido a que algunas condiciones no se cumplieron. Por favor, intente sincronizar nuevamente más tarde. Si necesita asistencia, por favor, contacte al administrador de su servidor. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - No tiene acceso a este recurso. Si cree que es un error, por favor, contacte al administrador de su servidor. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + Está solicitud está tardando más de lo usual. Por favor, intente sincronizar nuevamente. Si todavía no funciona, comuníquese con el administrador de su servidor. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - No pudimos encontrar lo que está buscando. Puede haber sido movido o eliminado. Si necesita ayuda, contacte al administrador de su servidor. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + El recurso al que está intentando acceder está actualmente bloqueado y no puede ser modificado. Por favor, intente cambiarlo más tarde, o, contacte al administrador de su servidor para que le asista. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Parece estar utilizando un proxy que requiere autenticación. Por favor, verifique las configuraciones de su proxy y las credenciales. Si necesita ayuda, contacte al administrador de su servidor. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + El servidor no pudo procesar su solicitud ya que alguna información era, o bien incorrecta o estaba incompleta. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor para que le asista. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - Está solicitud está tardando más de lo usual. Por favor, intente sincronizar nuevamente. Si todavía no funciona, comuníquese con el administrador de su servidor. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + El servidor no tiene suficiente espacio para completar su solicitud. Por favor, verifique el nivel de cuota restante que tiene su usuario contactando al administrador de su servidor. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Los archivos en el servidor cambiaron mientras Ud. trabajaba. Por favor, intente sincronizar nuevamente. Contacte al administrador de su servidor si el problema persiste. + The server does not recognize the request method. Please contact your server administrator for help. + Es servidor no reconoce el método de la solicitud. Por favor, contacte al administrador de su servidor para que le ayude. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - Esta carpeta o archivo ya no están disponibles. Si necesita asistencia, por favor, contacte al administrador de su servidor. + The server does not support the version of the connection being used. Contact your server administrator for help. + El servidor no soporta la versión de la conexión en uso. Contacte al administrador de su servidor para que le ayude. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - La solicitud no pudo ser completada debido a que algunas condiciones no se cumplieron. Por favor, intente sincronizar nuevamente más tarde. Si necesita asistencia, por favor, contacte al administrador de su servidor. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + El servidor está ocupado ahora mismo. Por favor, intenta conectar de nuevo en unos minutos o contacta con el administrador del servidor si es urgente. - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - El archivo es demasiado grande para ser cargado. Podría necesitar escoger un archivo más pequeño, o, contactar al administrador de su servidor para que le asista. + This file type isn’t supported. Please contact your server administrator for assistance. + Este tipo de archivo no está soportado. Por favor, contacte al administrador de su servidor para que le asista. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - La dirección que se utilizó para hacer la solicitud es demasiado grande para que el servidor pueda utilizarla. Por favor, trate de acortar la información que está enviando, o, contacte al administrador de su servidor para que le asista. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + Esta carpeta o archivo ya no están disponibles. Si necesita asistencia, por favor, contacte al administrador de su servidor. - - This file type isn’t supported. Please contact your server administrator for assistance. - Este tipo de archivo no está soportado. Por favor, contacte al administrador de su servidor para que le asista. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + Esta solicitud no pudo ser completada por que le faltan algunas condiciones requeridas. Por favor, intente nuevamente más tarde, o, contacte al administrador de su servidor para que le ayude. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - El servidor no pudo procesar su solicitud ya que alguna información era, o bien incorrecta o estaba incompleta. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor para que le asista. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + No pudimos encontrar lo que está buscando. Puede haber sido movido o eliminado. Si necesita ayuda, contacte al administrador de su servidor. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - El recurso al que está intentando acceder está actualmente bloqueado y no puede ser modificado. Por favor, intente cambiarlo más tarde, o, contacte al administrador de su servidor para que le asista. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + No pudimos procesar su solicitud. Por favor, intente sincronizar nuevamente más tarde. Si esto sigue sucediendo, contacte al administrador de su servidor para buscar ayuda. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - Esta solicitud no pudo ser completada por que le faltan algunas condiciones requeridas. Por favor, intente nuevamente más tarde, o, contacte al administrador de su servidor para que le ayude. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + Estamos teniendo problemas conectándonos al servidor. Por favor, intente nuevamente en breve. Si el problema persiste, el administrador de su servidor puede ayudarle. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - Ha hecho demasiadas solicitudes. Por favor, espere e intente de nuevo. Si sigue viendo esto, el administrador de su servidor le podrá ayudar. + You changed %1 + Ha cambiado %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Algo ha salido mal en el servidor. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor si el problema persiste. + You created %1 + Ha creado %1 - - The server does not recognize the request method. Please contact your server administrator for help. - Es servidor no reconoce el método de la solicitud. Por favor, contacte al administrador de su servidor para que le ayude. + You deleted %1 + Ha eliminado %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - Estamos teniendo problemas conectándonos al servidor. Por favor, intente nuevamente en breve. Si el problema persiste, el administrador de su servidor puede ayudarle. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + No tiene acceso a este recurso. Si cree que es un error, por favor, contacte al administrador de su servidor. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - El servidor está ocupado ahora mismo. Por favor, intenta conectar de nuevo en unos minutos o contacta con el administrador del servidor si es urgente. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + No tiene permisos para acceder a este recurso. Si cree que esto es un error, contacte al administrador de su servidor para que le asista. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Está tomando mucho tiempo conectarse al servidor. Por favor, intente nuevamente más tarde. Si necesita ayuda, contacte al administrador de su servidor. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + Ha hecho demasiadas solicitudes. Por favor, espere e intente de nuevo. Si sigue viendo esto, el administrador de su servidor le podrá ayudar. - - The server does not support the version of the connection being used. Contact your server administrator for help. - El servidor no soporta la versión de la conexión en uso. Contacte al administrador de su servidor para que le ayude. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + Debe iniciar sesión para continuar. Si tiene problema con sus credenciales, por favor, comuníquese con el administrador de su servidor. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - El servidor no tiene suficiente espacio para completar su solicitud. Por favor, verifique el nivel de cuota restante que tiene su usuario contactando al administrador de su servidor. + You renamed %1 + Ha renombrado %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Su red necesita autenticación adicional. Por favor, verifique su conexión. Contacte al administrador de su servidor para que le ayude si el problema persiste. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - No tiene permisos para acceder a este recurso. Si cree que esto es un error, contacte al administrador de su servidor para que le asista. + in the future + en el futuro - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema persiste. + now + ahora - + ResolveConflictsDialog - - - Solve sync conflicts - Resolver conflictos de sincronización - - %1 files in conflict indicate the number of conflicts to resolve - %1 archivo en conflicto%1 archivos en conflicto%1 archivos en conflicto - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Decida si quiere mantener la versión local, la versión del servidor, o ambas. Si escoge ambas, se le añadirá un número al nombre del archivo local. + + %1 archivo en conflicto + %1 archivos en conflicto + - All local versions Todas las versiones locales - All server versions Todas las versiones del servidor - + Cancel + Cancelar + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Decida si quiere mantener la versión local, la versión del servidor, o ambas. Si escoge ambas, se le añadirá un número al nombre del archivo local. + + Resolve conflicts Resolver conflictos - - Cancel - Cancelar + Solve sync conflicts + Resolver conflictos de sincronización + + + + SesErrorBox + + Error + Error + + SesTrayHeader + + Open Nextcloud in browser + + + + Open local or team folders + Abrir carpetas locales o de equipo + + + Website + + + ShareDelegate - Copied! ¡Copiado! + + Share options + Opciones de compartir + ShareDetailsPage - - An error occurred setting the share password. - Ocurrió un error al establecer la contraseña del recurso compartido - - - - Edit share - Editar recurso compartido + Add another link + Añadir otro enlace - - Share label - Etiqueta del recurso compartido + Allow resharing + Permitir que otros compartan - - Allow upload and editing Permitir la subida y edición - - View only - Solo lectura + An error occurred setting the share password. + Ocurrió un error al establecer la contraseña del recurso compartido - - File drop (upload only) - Entrega de archivos (solo carga) + Copy share link + Copiar enlace de recurso compartido + + + Custom Permissions + - - Allow resharing - Permitir que otros compartan + Enter a note for the recipient + Ingrese una nota para el destinatario + + + File drop (upload only) + Entrega de archivos (solo carga) - Hide download Ocultar descarga - + Note to recipient + Nota para el destinatario + + Password protection Protección por contraseña - Set expiration date Fijar fecha de caducidad - - Note to recipient - Nota para el destinatario - - - - Enter a note for the recipient - Ingrese una nota para el destinatario + Share link copied! + ¡Enlace al recurso compartido copiado! - Unshare Dejar de compartir - - Add another link - Añadir otro enlace + View only + Solo lectura + + + ShareeSearchField - - Share link copied! - ¡Enlace al recurso compartido copiado! + Search for users or groups… + Buscar usuarios o grupos… - - Copy share link - Copiar enlace de recurso compartido + Sharing is not available for this folder + Compartir no está disponible para esta carpeta ShareView - + Expires in %1 + Caduca en %1 + + Password required for new share Se requiere una contraseña para el nuevo recurso compartido - Share password Contraseña del recurso compartido - Shared with you by %1 Compartido con Ud. por %1 - - Expires in %1 - Caduca en %1 - - - Sharing is disabled Compartir está deshabilitado - - This item cannot be shared. - Este ítem no puede ser compartido. - - - Sharing is disabled. Compartir está deshabilitado. - - - ShareeSearchField - - - Search for users or groups… - Buscar usuarios o grupos… - - - - Sharing is not available for this folder - Compartir no está disponible para esta carpeta + + This item cannot be shared. + Este ítem no puede ser compartido. - + SyncJournalDb - Failed to connect database. Fallo en la conexión a la base de datos. @@ -6893,35 +5712,25 @@ El servidor respondió con el error: %2 SyncStatus - - Sync now - Sincronizar ahora + Open browser + Abrir navegador - - + Resolve conflicts Resolver conflictos - - Open browser - Abrir navegador - - - - Open settings - Abirir ajustes + Sync now + Sincronizar ahora - + TalkReplyTextField - Reply to … Responder a … - Send reply to chat message Enviar respuesta al mensaje de chat @@ -6929,76 +5738,176 @@ El servidor respondió con el error: %2 TermsOfServiceCheckWidget - - Terms of Service - Términos de Servicio - - - Logo Logotipo - Switch to your browser to accept the terms of service Cambie al navegador para aceptar los términos de servicio - + + Terms of Service + Términos de Servicio + + + + theme + + Error occurred during setup + Ha ocurrido un error durante la configuración + + + Error occurred during sync + Ha ocurrido un error durante la sincronización + + + Preparing to sync + Preparando para sincronizar + + + Stopping sync + Deteniendo la sincronización + + + Sync is paused + La sincronización está en pausa. + + + Sync is running + Sincronizado en proceso + + + Sync status is unknown + Estado de sincronización desconocido + + + Sync was successful + La sincronización fue exitosa + + + Sync was successful but some files were ignored + La sincronización fue exitosa, pero se han ignorado algunos archivos + + + Waiting to start syncing + Esperando para empezar la sincronización + + TrayFoldersMenuButton - - Open local folder - Abrir carpeta local + Files + - - Open local or team folders - Abrir carpetas locales o de equipo + Open %1 in file explorer + Abrir %1 en el explorador de archivos + + + Open local folder + Abrir carpeta local - Open local folder "%1" Abrir carpeta local "%1" - - Open team folder "%1" - Abrir carpeta del equipo "%1" + Open local or team folders + Abrir carpetas locales o de equipo - - Open %1 in file explorer - Abrir %1 en el explorador de archivos + Open team folder "%1" + Abrir carpeta del equipo "%1" - User group and local folders menu Menú de usuario de carpetas de grupo o locales + + TrayWindowAccountMenu + + Account switcher and settings menu + Menú para cambio de cuentas y ajustes + + + Add account + + + + Current account + Cuenta actual + + + Current account avatar + Avatar de la cuenta actual + + + Current account status is do not disturb + El estado actual de la cuenta es no molestar + + + Current account status is online + El estado actual de la cuenta es en línea + + + Exit + Salir + + + Pause sync for all + + + + Resume sync for all + + + + Settings + + + TrayWindowHeader - + More apps + Más apps + + + Open %1 in browser + Abrir %1 en el navegador + + Open local or team folders Abrir carpetas locales o de equipo + + + TrayWindowHeaderBar - More apps - Más apps + Más apps - Open %1 in browser - Abrir %1 en el navegador + Abrir %1 en el navegador - + + Open Nextcloud in browser + + + + Open local or team folders + Abrir carpetas locales o de equipo + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Buscando archivos, mensajes, eventos … @@ -7006,7 +5915,6 @@ El servidor respondió con el error: %2 UnifiedSearchPlaceholderView - Start typing to search Comience a escribir para buscar @@ -7014,7 +5922,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultFetchMoreTrigger - Load more results Cargar más resultados @@ -7022,7 +5929,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Árbol de resultados de la búsqueda @@ -7030,7 +5936,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultListItem - Load more results Cargar más resultados @@ -7038,7 +5943,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultNothingFound - No results for No se encontraron resultados para @@ -7046,7 +5950,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultSectionItem - Search results section %1 Sección de resultados de búsqueda %1 @@ -7054,128 +5957,88 @@ El servidor respondió con el error: %2 UserLine - - Switch to account - Cambiar a la cuenta + Account actions + Acciones de la cuenta - - Current account status is online - El estado actual de la cuenta es en línea + Log in + Iniciar sesión - - Current account status is do not disturb - El estado actual de la cuenta es no molestar + Log out + Cerrar sesión - - Account sync status requires attention - El estado de sincronización de la cuenta requiere atención + Remove account + Eliminar cuenta - - - Account actions - Acciones de la cuenta + + Switch to account + Cambiar a la cuenta + + + UserStatusMessageView - - Set status - Establecer estado + Apply + Aplicar - - - Status message - Mensaje de estado + + Cancel + Cancelar - - Log out - Cerrar sesión + Clear + Borrar - - Log in - Iniciar sesión + Clear status message after + Borrar mensaje de estado tras - - - UserStatusMessageView - Status message Mensaje de estado - What is your status? Cuál es tu estado? - - - Clear status message after - Borrar mensaje de estado tras - - - - Cancel - Cancelar - - - - Clear - Borrar - - - - Apply - Aplicar - - + UserStatusSetStatusView - - Online status - Estado en línea - - - - Online - En línea + Appear offline + Desconectado - Away Ausente - Busy Ocupado/a - Do not disturb No molestar - + Invisible + Invisible + + Mute all notifications Silenciar todas las notificaciones - - Invisible - Invisible + Online + En línea - - Appear offline - Desconectado + Online status + Estado en línea - Status message Mensaje de estado @@ -7183,390 +6046,128 @@ El servidor respondió con el error: %2 Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - %n año%n años%n años - - - - %n month(s) - %n mes%n meses%n meses - - - %n day(s) - %n día%n días%n días + + %n día + %n días + - %n hour(s) - %n hora%n horas%n horas + + %n hora + %n horas + - %n minute(s) - %n minuto%n minutos%n minutos + + %n minuto + %n minutos + - - %n second(s) - %n segundo%n segundos%n segundos - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - El encabezado de checksum está malformado. - - - - The checksum header contained an unknown checksum type "%1" - El encabezado del checksum contenía un tipo de comprobación desconocido: "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - El archivo descargado no coincide con la suma de comprobación (checksum), se reanudará. "%1" != "%2" - - - - main.cpp - - - System Tray not available - La bandeja del sistema no está disponible - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 requiere una bandeja del sistema funcional. Si está ejecutando XFCE, por favor, siga <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">estas instrucciones</a>. De lo contrario, instale una bandeja del sistema de aplicaciones tales como "trayer" e inténtelo de nuevo. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Creado desde la revisión Git <a href="%1">%2</a> en %3, %4 utilizando Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Archivo virtual creado - - - - Replaced by virtual file - Reemplazado por un archivo virtual - - - - Downloaded - Descargado - - - - Uploaded - Subido - - - - Server version downloaded, copied changed local file into conflict file - Versión del servidor descargada, se ha copiado el fichero local cambiado al fichero en conflicto - - - - Server version downloaded, copied changed local file into case conflict conflict file - Se descargó la versión del servidor, se copió el archivo local cambiado hacia archivo con conflictos de capitalización - - - - Deleted - Eliminado - - - - Moved to %1 - Movido a %1 - - - - Ignored - Ignorado - - - - Filesystem access error - Error de acceso al sistema de archivos - - - - - Error - Error - - - - Updated local metadata - Actualizados metadatos locales - - - - Updated local virtual files metadata - Se han actualizado los metadatos para los archivos virtuales - - - - Updated end-to-end encryption metadata - Metadatos de cifrado de extremo a extremo actualizados - - - - - Unknown - Desconocido - - - - Downloading - Descargando - - - - Uploading - Subiendo - - - - Deleting - Eliminando - - - - Moving - Moviendo - - - - Ignoring - Ignorando - - - - Updating local metadata - Actualizando los metadatos locales + %n month(s) + + %n mes + %n meses + - - - Updating local virtual files metadata - Actualizando los metadatos de los archivos virtuales locales + + %n second(s) + + %n segundo + %n segundos + - - - Updating end-to-end encryption metadata - Actualizando metadatos de cifrado extremo a extremo + + %n year(s) + + %n año + %n años + - + - theme - - - Sync status is unknown - Estado de sincronización desconocido - - - - Waiting to start syncing - Esperando para empezar la sincronización - - - - Sync is running - Sincronizado en proceso - - - - Sync was successful - La sincronización fue exitosa - - - - Sync was successful but some files were ignored - La sincronización fue exitosa, pero se han ignorado algunos archivos - - - - Error occurred during sync - Ha ocurrido un error durante la sincronización - - - - Error occurred during setup - Ha ocurrido un error durante la configuración - - - - Stopping sync - Deteniendo la sincronización - + utility - - Preparing to sync - Preparando para sincronizar + Always available locally + Siempre disponible localmente - - Sync is paused - La sincronización está en pausa. + Available online only + Disponible solo en línea - - - utility - Could not open browser No se ha podido abrir el navegador - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Se ha producido un error al lanzar el navegador para ir a la URL: %1 , ¿puede ser que no tenga ningún navegador por defecto? - - - Could not open email client No se ha podido abrir el cliente de correo electrónico - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Se ha producido un error al lanzar el cliente de correo electrónico para crear un nuevo mensaje. ¿Puede ser que no haya ningún cliente de correo electrónico configurado? - - - - Always available locally - Siempre disponible localmente - - - Currently available locally Disponible localmente ahora - - Some available online only - Algunos solo disponibles en línea - - - - Available online only - Disponible solo en línea - - - - Make always available locally - Hacer que esté siempre localmente disponible - - - Free up local space Liberar espacio local - - - FileProviderEvictionDialog - - - Remove local copies - Quitar copias locales - - - - Local copies - Copias locales - - - - Reload - Recargar + + Make always available locally + Hacer que esté siempre localmente disponible - - - FileProviderStorageInfo - - Local storage use - Uso de almacenamiento local + Some available online only + Algunos solo disponibles en línea - - %1 GB of %2 GB remote files synced - %1 GB de %2 GB de archivos remotos sincronizados + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Se ha producido un error al lanzar el navegador para ir a la URL: %1 , ¿puede ser que no tenga ningún navegador por defecto? - - Free up space … - Liberar espacio … + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Se ha producido un error al lanzar el cliente de correo electrónico para crear un nuevo mensaje. ¿Puede ser que no haya ningún cliente de correo electrónico configurado? - + - FileProviderSyncStatus - - - Syncing - Sincronizando - + ValidateChecksumHeader - - All synced! - ¡Todo está sincronizado! + The checksum header contained an unknown checksum type "%1" + El encabezado del checksum contenía un tipo de comprobación desconocido: "%1" - - Request sync - Solicitar sincronización + The checksum header is malformed. + El encabezado de checksum está malformado. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Solicitar una sincronización de cambios para el ambiente VFS. -macOS podría ignorar o demorar esta solicitud. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + El archivo descargado no coincide con la suma de comprobación (checksum), se reanudará. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 6afa527ef9797..04f8961f9fa10 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Abrir %1 localmente - - - In %1 En %1 - + + Open %1 locally + Abrir %1 localmente + + ActivityItemContent - - Open file details - Abrir detalles del archivo - - - - File details - - - - - File actions - - - - Dismiss Descartar - + + Open file details + Abrir detalles del archivo + + ActivityList - Activity list Lista de actividad - - Scroll to top - - - - No activities yet Sin actividades todavía - + + Scroll to top + + + CallNotificationDialog - - Talk notification caller avatar - Avatar de la notificación de llamada - - - Answer Talk call notification Notificación de responder llamada - Decline Rechazar - Decline Talk call notification Rechazar notificación de llamada - + + Talk notification caller avatar + Avatar de la notificación de llamada + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Comprobando cambios en "%1" - - Syncing %1 of %2 (%3 left) - Sincronizando %1 de %2 (%3 restantes) - - - - Syncing %1 of %2 - Sincronizando %1 de %2 - - - - Syncing %1 (%2 left) - Sincronizando %1 (%2 restantes) + Help + Ayuda - - Syncing %1 - Sincronizando %1 + Log out + Cerrar sesión - - No recently changed files No hay archivos modificados recientemente - - Sync paused - Sincronización pausada - - - - Syncing - Sincronizando - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. - + - Open in browser - + Abrir en el navegador - - Recently changed - Modificados recientemente - - - Pause synchronization Pausar sincronización - - Help - Ayuda + Quit sync client + Cerrar cliente de sincronización + + + Recently changed + Modificados recientemente - Settings Configuración - - Log out - Cerrar sesión + Sync paused + Sincronización pausada - - Quit sync client - Cerrar cliente de sincronización + Syncing + Sincronizando - + + Syncing %1 + Sincronizando %1 + + + Syncing %1 (%2 left) + Sincronizando %1 (%2 restantes) + + + Syncing %1 of %2 + Sincronizando %1 de %2 + + + Syncing %1 of %2 (%3 left) + + + ConflictDelegate - Local version Versión local - Server version Versión del servidor @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Cuenta actual - - - - - Resume sync for all - Reanudar sincronización para todos - - - - - Pause sync for all - Pausar sincronización para todos + Account switcher and settings menu + - - + Add account Añadir cuenta - Add new account Añadir nueva cuenta - - Settings - Configuraciones - - - - Exit - Salir + Current account + Cuenta actual - Current account avatar Avatar de la cuenta actual - + Current account status is do not disturb + El estado actual de la cuenta es no molestar + + Current account status is online - + El estado actual de la cuenta es en línea - - Current account status is do not disturb - + Exit + Salir - - Account switcher and settings menu - + Pause sync for all + Pausar sincronización para todos - + + Resume sync for all + Reanudar sincronización para todos + + + Settings + Configuraciones + + EditFileLocallyLoadingDialog - Opening file for local editing Abriendo archivo para edición local @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis No hay emoticonos recientes @@ -258,52 +203,49 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token - + ErrorBox - Error Error - - FileActionsWindow - - - File actions for %1 - - - FileDetailsPage - - Activity - Actividad - - - - Sharing - Compartiendo + Dismiss + Descartar FileDetailsWindow - File details of %1 · %2 Detalles del archivo %1 · %2 + + FileProviderEvictionDialog + + Local copies + + + + Reload + Recargar + + + Remove local copies + + + FileProviderFileDelegate - Delete Eliminar @@ -311,208 +253,204 @@ FileProviderSettings - - Virtual files settings - Configuración de archivos virtuales + Enable virtual files + Activar archivos virtuales - General settings Configuración general - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - + Reset virtual files environment + + + + Virtual files settings + Configuración de archivos virtuales + + + FileProviderStorageInfo - - Enable virtual files - Activar archivos virtuales + %1 GB of %2 GB remote files synced + %1 GB de %2 GB de archivos remotos sincronizados - - Reset virtual files environment - + Free up space … + - + + Local storage use + Uso de almacenamiento local + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Error al eliminar "%1": %2 + All synced! + ¡Todo está sincronizado! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + + + + Request sync + + + + Syncing + Sincronizando + + + FileSystem - Could not remove folder "%1" No se pudo eliminar la carpeta "%1" - + + Error removing "%1": %2 + Error al eliminar "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Ocurrió un error al conectar. Por favor, inténtelo de nuevo. + + Browser Authentication Autentificación del navegador - + Copy Link + Copiar enlace + + Logo Logotipo - Switch to your browser to connect your account Cambiar al navegador para conectar con su cuenta - - - An error occurred while connecting. Please try again. - Ocurrió un error al conectar. Por favor, inténtelo de nuevo. - - + - FolderWizardSourcePage + FolderWizardSelectiveSync - - Pick a local folder on your computer to sync - Elige una carpeta local en tu computadora para sincronizar + Add Folder Sync + - - &Choose … - &Elegir … + Step 3 of 3: Selektive Synchronisation + - FolderWizardTargetPage + FolderWizardSourcePage - - Select a remote destination folder - Selecciona la ubiucación de la carpeta destino + &Choose + - - - Create folder - Crear carpeta + + Add Folder Sync + - - Refresh - Actualizar + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - - Folders - Carpetas + Step 1 of 3: Select local folder + - + - MainWindow - - - Main content - - - - - Issue with account %1 - - + FolderWizardTargetPage - - Issues with several accounts - + Add Folder Sync + - - Start new conversation? - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - - New conversation - + + Create folder + Crear carpeta - - Cancel - + Folders + Carpetas - - This will clear the existing conversation. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + - - Ask Assistant … - + Refresh + Actualizar - - Ask Assistant… - + Step 2 of 3: Directory in your %1 + + + + MainWindow - - Send assistant question - + Main content + - - Start a new assistant chat - + New activities + - - + Unified search results list - + + + + nextcloudTheme::aboutInfo() - - New activities - + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Construido de la revisión Git <a href="%1">%2</a> en %3, %4 usando Qt %5, %6</small></p> OCC::AbstractNetworkJob - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + - The server enforces strict transport security and does not accept untrusted certificates. - + - + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + + + OCC::Account - - Public Share Link - - - - File %1 is already locked by %2. El archivo %1 ya está bloqueado por %2. - Lock operation on %1 failed with error %2 La operación de bloqueo en %1 falló con el error %2 - + Public Share Link + + + Unlock operation on %1 failed with error %2 La operación de desbloqueo en %1 falló con el error %2 @@ -520,547 +458,394 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? - + - - - Legacy import - Importación antigua + Could not import accounts from legacy client configuration. + No se pudieron importar las cuentas desde la configuración del cliente antiguo. - - + Import Importar - - Skip - Omitir + Legacy import + Importación antigua - - Could not import accounts from legacy client configuration. - No se pudieron importar las cuentas desde la configuración del cliente antiguo. + Skip + Omitir - + OCC::AccountSettings - - Virtual files - + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) de %2 en uso. Algunas carpetas, incluidas carpetas montadas en red o carpetas compartidas, pueden tener diferentes límites - - Classic sync - + %1 as %2 + %1 como %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Las carpetas no marcadas serán <b>eliminadas</b> de tu sistema de archivos local y ya no serán sincronizados a esta computadora + %1 in use + %1 en uso - - Storage space: … - Espacio de almacenamiento: … + %1 of %2 in use + %1 de %2 en uso - - Synchronize all - Sincronizar todo + (experimental) + (experimental) - - Synchronize none - Sincronizar nada + <p>Could not create local folder <i>%1</i>.</p> + <p>No se pudo crear la carpeta local <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>¿Realmente quieres dejar de sincronizar la carpeta <i>%1</i>?<p><b>Nota:</b> Esto <b>no</b> borrará ningún archivo.</p> + + + Apply + Aplicar - Apply manual changes Aplicar cambios manuales - - Standard file sync - Sincronización de archivos estándar + Availability + Disponibilidad - - Virtual file sync - Sincronización de archivos virtuales + Cancel + Cancelar - - Connection settings - Configuración de la conexión + Choose what to sync + Elige que sincronizar - - Apply - Aplicar + Confirm Folder Sync Connection Removal + Confirmar la Eliminación de la Conexión de Sincronización de Carpeta - - - - Cancel - Cancelar + Connected to %1. + Conectado a %1. - Connected with <server> as <user> Conectado con <server> como <user> - - No account configured. - No hay cuentas configuradas. - - - - End-to-end Encryption with Virtual Files - Cifrado punto a punto con archivos virtuales + Connecting to %1 … + Conectando a %1 … - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Parece que tiene habilitada la función de archivos virtuales en esta carpeta. En este momento no es posible descargar implícitamente archivos virtuales cifrados punto a punto. Para obtener la mejor experiencia con archivos virtuales y cifrado punto a punto, asegúrese que la carpeta cifrada esté marcada con "Hacer disponible localmente siempre". + Connection settings + Configuración de la conexión - - - Do not encrypt folder - No cifrar la carpeta + Could not encrypt folder because the folder does not exist anymore + No se pudo cifrar la carpeta porque ya no existe - - - Encrypt folder - Cifrar la carpeta + Create new folder + Crear nueva carpeta - - End-to-end Encryption - Cifrado punto a punto + Currently there is no storage usage information available. + Actualmente no hay información disponible del espacio usado. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su llave mnemotécnica de cifrado. -<b>Este proceso no es reversible. ¿Seguro que desea continuar?</b> + Disable support + Deshabilitar soporte - - End-to-end encryption has not been initialized on this account. - + Disable virtual file support … + Desactivar soporte de archivos virtuales … - - Forget encryption setup - + Disable virtual file support? + ¿Desactivar soporte de archivos virtuales? - Display mnemonic Mostrar mnemotécnica - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - - - - - Warning - Advertencia + Do not encrypt folder + No cifrar la carpeta - - Please wait for the folder to sync before trying to encrypt it. - Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. + Do you want to forget the end-to-end encryption settings for %1 on this device? + - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - La carpeta tiene un problema de sincronización menor. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + Edit Ignored Files + Editar archivos ignorados - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + Enable virtual file support %1 … + Habilitar el soporte de archivos virtuales %1 … - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - + Encrypt + Cifrar - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. -Espere a una nueva sincronización, luego cifre la carpeta. + Encrypt folder + Cifrar la carpeta - Encryption failed El cifrado falló - - Could not encrypt folder because the folder does not exist anymore - No se pudo cifrar la carpeta porque ya no existe + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + - - Encrypt - Cifrar + End-to-end Encryption + Cifrado punto a punto - - - Edit Ignored Files - Editar archivos ignorados + End-to-end Encryption with Virtual Files + Cifrado punto a punto con archivos virtuales - - - Create new folder - Crear nueva carpeta + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + - - - Availability - Disponibilidad + End-to-end encryption has not been initialized on this account. + - - Choose what to sync - Elige que sincronizar + End-to-end encryption mnemonic + Mnemotécnico de cifrado punto a punto - - Force sync now - Forzar la sincronización ahora + Expand Memory + - - - Restart sync - Reiniciar sincronización + + Folder creation failed + Falló la creación de la carpeta - - Remove folder sync connection - Eliminar la conexión de sincronización de carpetas + Force sync now + Forzar la sincronización ahora - - Disable virtual file support … - Desactivar soporte de archivos virtuales … + Forget encryption setup + - - Enable virtual file support %1 … - Habilitar el soporte de archivos virtuales %1 … + Forget the end-to-end encryption on this device + - - (experimental) - (experimental) + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + - - Folder creation failed - Falló la creación de la carpeta + Migrate certificate to a new one + - - Confirm Folder Sync Connection Removal - Confirmar la Eliminación de la Conexión de Sincronización de Carpeta + No %1 connection configured. + No hay %1 conexión configurada. - - Remove Folder Sync Connection - Eliminar la Conexión de Sincronización de la Carpeta + No account configured. + No hay cuentas configuradas. - - Grant access to sync folder - + Open folder + Abrir carpeta - - Access Error - + Pause sync + Pausar sincronización - - Could not acquire access to the selected folder. Please try again. - + Please wait for the folder to sync before trying to encrypt it. + Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. - - Wrong Folder - + Remove Folder Sync Connection + Eliminar la Conexión de Sincronización de la Carpeta - - Please select the original sync folder: %1 - + Remove folder sync connection + Eliminar la conexión de sincronización de carpetas - - - Bookmark Error - + Restart sync + Reiniciar sincronización - - Could not create a security bookmark for the folder. Please try again. - + Resume sync + Reanudar sincronización - - Could not resolve the security bookmark. Please try again. - + Server %1 is currently being redirected, or your connection is behind a captive portal. + El servidor %1 está siendo redirigido o su conexión está detrás de un portal cautivo. - - Disable virtual file support? - ¿Desactivar soporte de archivos virtuales? + Server %1 is currently in maintenance mode. + Actualmente el servidor %1 se encuentra en modo mantenimiento. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Esta acción desactivará el soporte de archivos virtuales. Como consecuencia, se descargarán los contenidos de las carpetas que actualmente estén marcadas como "disponibles solo en línea". - - La única ventaja de desactivar el soporte de archivos virtuales es que la función de sincronización selectiva estará disponible nuevamente. - - Esta acción abortará cualquier sincronización en curso. + Server %1 is temporarily unavailable. + El servidor %1 se encuntra temporalmente no disponible - - Disable support - Deshabilitar soporte + Server configuration error: %1 at %2. + Error de configuración del servidor: %1 en %2. - - End-to-end encryption mnemonic - Mnemotécnico de cifrado punto a punto + Set up encryption + Configurar cifrado - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + Signed out from %1. + Cerraste sesión en %1. - - Forget the end-to-end encryption on this device - + Standard file sync + Sincronización de archivos estándar - - Do you want to forget the end-to-end encryption settings for %1 on this device? - + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - + Storage space: … + Espacio de almacenamiento: … - Sync Running Sincronización en curso - - The syncing operation is running.<br/>Do you want to terminate it? - La operación de sincronización está en curso. <br/>¿Deseas terminarla? + Synchronize all + Sincronizar todo - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) de %2 en uso. Algunas carpetas, incluidas carpetas montadas en red o carpetas compartidas, pueden tener diferentes límites + Synchronize none + Sincronizar nada - - Currently there is no storage usage information available. - Actualmente no hay información disponible del espacio usado. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + La carpeta tiene un problema de sincronización menor. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. - - %1 in use - %1 en uso + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. - - Connected to %1 (%2). - + The server version %1 is unsupported! Proceed at your own risk. + ¡La versión del servidor %1 no está soportada! Proceda bajo su propio riesgo. - - Migrate certificate to a new one - + The syncing operation is running.<br/>Do you want to terminate it? + La operación de sincronización está en curso. <br/>¿Deseas terminarla? - There are folders that have grown in size beyond %1MB: %2 Existen carpetas que han aumentado de tamaño más allá de %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - - - - - This account supports end-to-end encryption, but it needs to be set up first. - - - - - The virtual files integration does not support end-to-end encryption yet. - + There are folders that were not synchronized because they are external storages: + - - Set up encryption - Configurar cifrado + There are folders that were not synchronized because they are too big or external storages: + - - Connected to %1. - Conectado a %1. + There are folders that were not synchronized because they are too big: + - - Server %1 is temporarily unavailable. - El servidor %1 se encuntra temporalmente no disponible + This account supports end-to-end encryption, but it needs to be set up first. + - - Server %1 is currently in maintenance mode. - Actualmente el servidor %1 se encuentra en modo mantenimiento. - - - - Signed out from %1. - Cerraste sesión en %1. - - - - There are folders that were not synchronized because they are too big: - Hay carpetas que no fueron sincronizadas porque son demasiado grandes: - - - - There are folders that were not synchronized because they are external storages: - Hay carpetas que no fueron sincronizadas porque son de almacenamiento externo: - - - - There are folders that were not synchronized because they are too big or external storages: - Hay carpetas que no fueron sincronizadas porque son demasiado grandes o son de almacenamiento externo: - - - - - Open folder - Abrir carpeta - - - - Resume sync - Reanudar sincronización - - - - Pause sync - Pausar sincronización - - - - <p>Could not create local folder <i>%1</i>.</p> - <p>No se pudo crear la carpeta local <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Esta acción desactivará el soporte de archivos virtuales. Como consecuencia, se descargarán los contenidos de las carpetas que actualmente estén marcadas como "disponibles solo en línea". + + La única ventaja de desactivar el soporte de archivos virtuales es que la función de sincronización selectiva estará disponible nuevamente. + + Esta acción abortará cualquier sincronización en curso. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>¿Realmente quieres dejar de sincronizar la carpeta <i>%1</i>?<p><b>Nota:</b> Esto <b>no</b> borrará ningún archivo.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su llave mnemotécnica de cifrado. +<b>Este proceso no es reversible. ¿Seguro que desea continuar?</b> - - %1 of %2 in use - %1 de %2 en uso + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + - - %1 as %2 - %1 como %2 + Unable to connect to %1. + No se pudo conectar a %1. - - The server version %1 is unsupported! Proceed at your own risk. - ¡La versión del servidor %1 no está soportada! Proceda bajo su propio riesgo. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Las carpetas no marcadas serán <b>eliminadas</b> de tu sistema de archivos local y ya no serán sincronizados a esta computadora - - Server %1 is currently being redirected, or your connection is behind a captive portal. - El servidor %1 está siendo redirigido o su conexión está detrás de un portal cautivo. + Virtual file sync + Sincronización de archivos virtuales - - Connecting to %1 … - Conectando a %1 … + Warning + Advertencia - - Unable to connect to %1. - No se pudo conectar a %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. +Espere a una nueva sincronización, luego cifre la carpeta. - - Server configuration error: %1 at %2. - Error de configuración del servidor: %1 en %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + - You need to accept the terms of service at %1. - + - - No %1 connection configured. - No hay %1 conexión configurada. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Parece que tiene habilitada la función de archivos virtuales en esta carpeta. En este momento no es posible descargar implícitamente archivos virtuales cifrados punto a punto. Para obtener la mejor experiencia con archivos virtuales y cifrado punto a punto, asegúrese que la carpeta cifrada esté marcada con "Hacer disponible localmente siempre". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde el navegador. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. + + There was an invalid response to an authenticated WebDAV request Hubo una respuesta inválida a una solicitud WebDAV autentificada @@ -1068,57 +853,46 @@ This action will abort any currently running synchronization. OCC::AccountState - - Signed out - Sesión cerrada + Asking Credentials + Solicitando Credenciales - - Disconnected - Desconectado + Configuration error + Error de configuración - Connected Conectado - - Service unavailable - Servicio no disponible + Disconnected + Desconectado - Maintenance mode Modo Mantenimiento - - Redirect detected - Redirección detectada + Need the user to accept the terms of service + - Network error Error de red - - Configuration error - Error de configuración + Redirect detected + Redirección detectada - - Asking Credentials - Solicitando Credenciales + Service unavailable + Servicio no disponible - - Need the user to accept the terms of service - + Signed out + Sesión cerrada - Unknown account state Estado de la cuenta no conocido @@ -1126,17 +900,14 @@ This action will abort any currently running synchronization. OCC::ActivityListModel - - For more activities please open the Activity app. - Para más actividades, por favor abra la aplicación de actividades. - - - Fetching activities … Obteniendo actividades … - + For more activities please open the Activity app. + Para más actividades, por favor abra la aplicación de actividades. + + Network error occurred: client will retry syncing. Ocurrió un error de red: el cliente reintentará la sincronización. @@ -1144,119 +915,67 @@ This action will abort any currently running synchronization. OCC::AddCertificateDialog - - SSL client certificate authentication - Autenticación del certificado del cliente SSL + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Es altamente recomendado un paquete de cifrado pkcs12 dado que una copia se guardará en el archivo de configuración. - - This server probably requires a SSL client certificate. - Este servidor probablemente requiere un certificado del cliente SSL. + Browse … + Navegar … - Certificate & Key (pkcs12): Certificado y llave (pkcs12): - + Certificate files (*.p12 *.pfx) + Archivos de certificado (*.p12 *.pfx) + + Certificate password: Contraseña del certificado: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Es altamente recomendado un paquete de cifrado pkcs12 dado que una copia se guardará en el archivo de configuración. - - - - Browse … - Navegar … + SSL client certificate authentication + Autenticación del certificado del cliente SSL - Select a certificate Seleccionar un certificado - - Certificate files (*.p12 *.pfx) - Archivos de certificado (*.p12 *.pfx) - - - - Could not access the selected certificate file. - + This server probably requires a SSL client certificate. + Este servidor probablemente requiere un certificado del cliente SSL. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Algunas configuraciones fueron configuradas en versiones %1 de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar significará que <b>%2 estas configuraciones</b>.<br><br>El archivo de configuración actual ya se ha respaldado en <i>%3</i>. - - - - newer - newer software version - más reciente - - - - older - older software version - más antiguo - - - - ignoring - ignorando - - - - deleting - eliminando - - - - Quit - Salir - - - - Continue - Continuar - - - %1 accounts number of accounts imported %1 cuentas - - 1 account - 1 cuenta - - - %1 folders number of folders imported %1 carpetas - + 1 account + 1 cuenta + + 1 folder 1 carpeta - - Legacy import - Importación antigua + Continue + Continuar + + + Error accessing the configuration file + Error al acceder el archivo de configuración - Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1264,48 +983,66 @@ This action will abort any currently running synchronization. %3 - - Error accessing the configuration file - Error al acceder el archivo de configuración + Legacy import + Importación antigua + + + Quit + Salir + + + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Algunas configuraciones fueron configuradas en versiones %1 de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar significará que <b>%2 estas configuraciones</b>.<br><br>El archivo de configuración actual ya se ha respaldado en <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ocurrió un error al acceder al archivo de configuración en %1. Por favor, revise que su cuenta de sistema pueda acceder al archivo. - - - OCC::AuthenticationDialog + + deleting + eliminando + - - Authentication Required - Se requiere de autenticación + ignoring + ignorando - - Enter username and password for "%1" at %2. - Ingrese el usuario y la contraseña para "%1" en %2. + newer + newer software version + más reciente - - &Username: - &Usuario: + older + older software version + más antiguo + + + OCC::AuthenticationDialog - &Password: &Contraseña: - + + &Username: + &Usuario: + + + Authentication Required + Se requiere de autenticación + + + Enter username and password for "%1" at %2. + Ingrese el usuario y la contraseña para "%1" en %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "Falló %1 al desbloquear la carpeta cifrada %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -1313,245 +1050,195 @@ This action will abort any currently running synchronization. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Error al actualizar los metadatos: %1 + + File %1 can not be downloaded because of a local file name clash! - + - + The file %1 is currently in use + + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - - - - - The file %1 is currently in use - + Error al actualizar los metadatos: %1 - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists No se puede cargar el archivo %1 porque ya existe otro archivo con el mismo nombre, con diferencias únicamente en mayúsculas y minúsculas - - File contains leading or trailing spaces and couldn't be renamed - + File %1 has invalid modification time. Do not upload to the server. + El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. - File %1 has invalid modified time. Do not upload to the server. El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. - File Removed (start upload) %1 Archivo eliminado (inicio de carga) %1 - - File %1 has invalid modification time. Do not upload to the server. - El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. - - - - Local file changed during syncing. It will be resumed. - El archivo local cambió durante la sincronización. Se reanudará. + File contains leading or trailing spaces and couldn't be renamed + - - Local file changed during sync. El archivo local cambió durante la sincronización. - + Local file changed during syncing. It will be resumed. + El archivo local cambió durante la sincronización. Se reanudará. + + Network error: %1 Error de red: %1 - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + Restoration failed: %1 + Falló la restauración: %1 - - + The file %1 is currently in use El archivo %1 está actualmente en uso - The local file was removed during sync. El archivo local fue eliminado durante la sincronización. - - - Restoration failed: %1 - Falló la restauración: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. No se puede renombrar el archivo porque ya hay uno con el mismo nombre en el servidor. Por favor, elija otro nombre. - Could not rename file. Please make sure you are connected to the server. No se pudo renombrar el archivo. Asegúrese de estar conectado al servidor. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - - - Failed to fetch permissions with error %1 Error al obtener permisos con error %1 - Filename contains leading and trailing spaces. El nombre de archivo contiene espacios al principio y al final. - Filename contains leading spaces. El nombre de archivo contiene espacios al principio. - Filename contains trailing spaces. El nombre de archivo contiene espacios al final. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 no admite nombres de archivo iguales con diferencias únicamente en mayúsculas y minúsculas. + + + 0 byte + 0 bytes + + Case Clash Conflict Conflicto de mayúsculas/minúsculas - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - No se puede sincronizar el archivo porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. + Case clashing file + Archivo en conflicto de mayúsculas/minúsculas - Error Error - Existing file Archivo existente - - file A - archivo A - - - - - today - hoy + Filename contains illegal characters: %1 + El nombre de archivo contiene caracteres no permitidos: %1 - - - - 0 byte - 0 bytes + + Filename contains leading and trailing spaces. + El nombre de archivo contiene espacios al principio y al final. - - - Open existing file - Abrir archivo existente + Filename contains leading spaces. + El nombre de archivo contiene espacios al principio. - - Case clashing file - Archivo en conflicto de mayúsculas/minúsculas + Filename contains trailing spaces. + El nombre de archivo contiene espacios al final. - - file B - archivo B + New filename + Nuevo nombre de archivo - - Open clashing file Abrir archivo en conflicto - - Please enter a new name for the clashing file: - Por favor, ingrese un nuevo nombre para el archivo en conflicto: + Open existing file + Abrir archivo existente - - New filename - Nuevo nombre de archivo + Please enter a new name for the clashing file: + Por favor, ingrese un nuevo nombre para el archivo en conflicto: - Rename file Renombrar archivo - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. No se puede sincronizar el archivo "%1" porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. - - %1 does not support equal file names with only letter casing differences. - %1 no admite nombres de archivo iguales con diferencias únicamente en mayúsculas y minúsculas. - - - - Filename contains leading and trailing spaces. - El nombre de archivo contiene espacios al principio y al final. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + No se puede sincronizar el archivo porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. - - Filename contains leading spaces. - El nombre de archivo contiene espacios al principio. + Use invalid name + Usar nombre inválido - - Filename contains trailing spaces. - El nombre de archivo contiene espacios al final. + file A + archivo A - - Use invalid name - Usar nombre inválido + file B + archivo B - - Filename contains illegal characters: %1 - El nombre de archivo contiene caracteres no permitidos: %1 + today + hoy - + OCC::CleanupPollsJob - Error writing metadata to the database Error al escribir metadatos a la base de datos @@ -1559,136 +1246,117 @@ This action will abort any currently running synchronization. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - + Enter Certificate USB Token PIN: + - - Enter Certificate USB Token PIN: - + Enter E2E passphrase + Ingresar frase de contraseña E2E + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + - Invalid PIN. Login failed - + - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! - + - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, ingrese su frase de cifrado punto a punto:<br><br>Usuario: %2<br> Cuenta: %3<br> - - - Enter E2E passphrase - Ingresar frase de contraseña E2E - - + OCC::ConflictDialog - - Sync Conflict - Conflicto de sincronización - - - - - Conflicting versions of %1. - Versiones en conflicto de %1. + 0 byte + 0 bytes - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - ¿Qué versión del archivo desea conservar?<br/>Si selecciona ambas versiones, el archivo local tendrá un número agregado al nombre. + <a href="%1">Open local version</a> + <a href="%1">Abrir versión local</a> - - Local version - Versión local + <a href="%1">Open server version</a> + <a href="%1">Abrir versión del servidor</a> - - Click to open the file Haga clic para abrir el archivo - - - today - hoy + Conflicting versions of %1. + Versiones en conflicto de %1. - - - 0 byte - 0 bytes + Keep both versions + Mantener ambas versiones - - <a href="%1">Open local version</a> - <a href="%1">Abrir versión local</a> + Keep local version + Mantener la versión local - - Server version - Versión del servidor + Keep selected version + Mantener la versión seleccionada - - <a href="%1">Open server version</a> - <a href="%1">Abrir versión del servidor</a> + Keep server version + Mantener la versión del servidor - - - - Keep selected version - Mantener la versión seleccionada + + Local version + Versión local - Open local version Abrir la versión local - Open server version Abrir la versión del servidor - - Keep both versions - Mantener ambas versiones + Server version + Versión del servidor - - Keep local version - Mantener la versión local + Sync Conflict + Conflicto de sincronización - - Keep server version - Mantener la versión del servidor + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + ¿Qué versión del archivo desea conservar?<br/>Si selecciona ambas versiones, el archivo local tendrá un número agregado al nombre. - + + today + hoy + + OCC::ConflictSolver - - + Confirm deletion + Confirmar eliminación + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + ¿Deseas eliminar el directorio <i>%1</i> y todo su contenido permanentemente? + + + Do you want to delete the file <i>%1</i> permanently? + ¿Desea eliminar el archivo <i>%1</i> permanentemente? + + Error Error - - Moving file failed: %1 @@ -1696,224 +1364,212 @@ This action will abort any currently running synchronization. %1 + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - ¿Deseas eliminar el directorio <i>%1</i> y todo su contenido permanentemente? + Authentication error: Either username or password are wrong. + Error de autenticación: El usuario o contraseña están equivocados. - - Do you want to delete the file <i>%1</i> permanently? - ¿Desea eliminar el archivo <i>%1</i> permanentemente? + No %1 account configured + The placeholder will be the application name. Please keep it + - - Confirm deletion - Confirmar eliminación + Please update to the latest server and restart the client. + Por favor actualiza a la versión más reciente del servidor y reinicia el cliente. - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - + The configured server for this client is too old + El servidor configurado para este cliente es demasiado antiguo - + The provided credentials are not correct + Las credenciales proporcionadas no son correctas + + Timeout Tiempo de espera + + + OCC::DataProtectionPage - - The configured server for this client is too old - El servidor configurado para este cliente es demasiado antiguo + Agree + - - Please update to the latest server and restart the client. - Por favor actualiza a la versión más reciente del servidor y reinicia el cliente. + Form + Formulario - - Authentication error: Either username or password are wrong. - Error de autenticación: El usuario o contraseña están equivocados. + Settings + - - The provided credentials are not correct - Las credenciales proporcionadas no son correctas + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Error al cancelar la eliminación de un archivo + Back + - - Error while canceling deletion of %1 - Error al cancelar la eliminación de %1 + Form + Formulario + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! + Error while canceling deletion of %1 + Error al cancelar la eliminación de %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + + Error while canceling deletion of a file + Error al cancelar la eliminación de un archivo + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! ¡Hubo un error al configurar los metadatos cifrados! - Encrypted metadata setup error: initial signature from server is empty. - + + + + Server error: PROPFIND reply is not XML formatted! + Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! - - - OCC::DiscoverySingleLocalDirectoryJob - - Error while opening directory %1 - Error al abrir el directorio %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Directorio no accesible en el cliente, permiso denegado - Directory not found: %1 Directorio no encontrado: %1 - - Filename encoding is not valid - La codificación del nombre de archivo es inválida + Error while opening directory %1 + Error al abrir el directorio %1 - Error while reading directory %1 Error al leer el directorio %1 - + + Filename encoding is not valid + La codificación del nombre de archivo es inválida + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - No se pudo iniciar la edición local. + An error occurred during data retrieval. + Ocurrió un error durante la recuperación de datos. - - An error occurred during setup. Ocurrió un error durante la configuración. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - No se pudo encontrar un archivo para edición local. Asegúrese que su ruta sea válida y esté sincronizado localmente. + An error occurred trying to synchronise the file to edit locally. + Ocurrió un error al intentar sincronizar el archivo para editarlo localmente. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. No se pudo encontrar un archivo para edición local. Asegúrese que no está excluido a través de la sincronización selectiva. - - - - An error occurred during data retrieval. - Ocurrió un error durante la recuperación de datos. - - - - - An error occurred trying to synchronise the file to edit locally. - Ocurrió un error al intentar sincronizar el archivo para editarlo localmente. - - - - Server error: PROPFIND reply is not XML formatted! - Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + No se pudo encontrar un archivo para edición local. Asegúrese que su ruta sea válida y esté sincronizado localmente. - Could not find a remote file info for local editing. Make sure its path is valid. No se pudo encontrar la información del archivo remoto para edición local. Asegúrese que su ruta sea válida. - - Invalid local file path. - Ruta al archivo local inválida. - - - Could not open %1 No se pudo abrir %1 - - Please try again. - Por favor, intente de nuevo. + Could not start editing locally. + No se pudo iniciar la edición local. - File %1 already locked. El archivo %1 ya está bloqueado. - - + File %1 could not be locked. + No se pudo bloquear el archivo %1. + + + File %1 now locked. + El archivo %1 está ahora bloqueado. + + + Invalid local file path. + Ruta al archivo local inválida. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. El bloqueo durará %1 minutos. También puede desbloquear este archivo manualmente una vez que haya terminado de editarlo. - - File %1 now locked. - El archivo %1 está ahora bloqueado. + Please try again. + Por favor, intente de nuevo. - - File %1 could not be locked. - No se pudo bloquear el archivo %1. + Server error: PROPFIND reply is not XML formatted! + Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. No se pudo validar la solicitud para abrir un archivo desde el servidor. - Please try again. Por favor, intente de nuevo. @@ -1921,404 +1577,304 @@ This action will abort any currently running synchronization. OCC::EditLocallyVerificationJob - - Invalid token received. - Se recibió un token inválido. - - - - - - Please try again. - Por favor, intente de nuevo. - - - - Invalid file path was provided. - Se proporcionó una ruta de archivo inválida. + An error occurred trying to verify the request to edit locally. + Ocurrió un error al intentar verificar la solicitud de edición local. - - + Could not find an account for local editing. No se pudo encontrar una cuenta para la edición local. - Could not start editing locally. No se pudo iniciar la edición local. - - An error occurred trying to verify the request to edit locally. - Ocurrió un error al intentar verificar la solicitud de edición local. + Invalid file path was provided. + Se proporcionó una ruta de archivo inválida. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - No se pueden generar los metadatos para el cifrado, desbloqueando la carpeta. -Esto podría ser un problema con su librería OpenSSL. + Invalid token received. + Se recibió un token inválido. - + + Please try again. + Por favor, intente de nuevo. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Error al obtener el identificador de la carpeta cifrada. + + Error fetching metadata. Error al obtener los metadatos. - - - Error locking folder. Error al bloquear la carpeta. - - Error fetching encrypted folder ID. - Error al obtener el identificador de la carpeta cifrada. - - - Error parsing or decrypting metadata. Error al analizar gramaticalmente o descifrar los metadatos. - Failed to upload metadata No se pudieron subir los metadatos - OCC::FileActionsModel - - - Your account is offline %1. - account url - - - - - The file ID is empty for %1. - file name - - - - - The file type for %1 is not valid. - file name - - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - - + OCC::EncryptFolderJob - - %1 done. - file action success message - + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + No se pueden generar los metadatos para el cifrado, desbloqueando la carpeta. +Esto podría ser un problema con su librería OpenSSL. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - Hace %1 segundo(s)Hace %1 segundo(s)Hace %1 segundo(s) - - - - %1 minute(s) ago - minutes elapsed since file last modified - Hace %1 minuto(s)Hace %1 minuto(s)Hace %1 minuto(s) + %1 day(s) ago + days elapsed since file last modified + + Hace %1 día(s) + Hace %1 día(s) + - %1 hour(s) ago hours elapsed since file last modified - Hace %1 hora(s)Hace %1 hora(s)Hace %1 hora(s) + + Hace %1 hora(s) + Hace %1 hora(s) + - - %1 day(s) ago - days elapsed since file last modified - Hace %1 día(s)Hace %1 día(s)Hace %1 día(s) + %1 minute(s) ago + minutes elapsed since file last modified + + Hace %1 minuto(s) + Hace %1 minuto(s) + - %1 month(s) ago months elapsed since file last modified - + + + + + + + %1 second(s) ago + seconds elapsed since file last modified + + Hace %1 segundo(s) + Hace %1 segundo(s) + - %1 year(s) ago years elapsed since file last modified - + + + + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - + + + + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. La URL del servidor devuelta no comienza con HTTPS a pesar de que la URL de inicio de sesión sí comenzó con HTTPS. El inicio de sesión es posible porque esto podría ser un problema de seguridad. Por favor, contacte a su administrador. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. - + - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. + + + + OCC::Flow2AuthWidget - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + Copy Link + Copiar enlace - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + Error + Error - - - OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - No se pudo abrir el navegador, por favor copie el enlace en su navegador. + Link copied to clipboard. + Enlace copiado al portapapeles. - - Waiting for authorization - Esperando autorización + Open Browser + - Polling for authorization Verificando autorización - Starting authorization Empezando autorización - - Link copied to clipboard. - Enlace copiado al portapapeles. + Switch to your browser to connect your account + Cambiar al navegador para conectar con su cuenta - - - Open Browser - + + Unable to open the Browser, please copy the link to your Browser. + No se pudo abrir el navegador, por favor copie el enlace en su navegador. - - Copy Link - Copiar enlace + Waiting for authorization + Esperando autorización - + OCC::Folder - - - %1 has been removed. - %1 names a file. - %1 ha sido eliminado. - - - - %1 has been updated. - %1 names a file. - %1 ha sido actualizado. + + %1 and %n other file(s) are currently locked. + + %1 y %n otro(s) archivo(s) están actualmente bloqueados. + %1 y %n otro(s) archivo(s) están actualmente bloqueados. + - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 ha sido renombrado a %2. + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. + %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. + - - - %1 has been moved to %2. - %1 se ha movido a %2. + + %1 and %n other file(s) have been added. + + Se han añadido %1 y %n otro(s) archivo(s). + Se han añadido %1 y %n otro(s) archivo(s). + - %1 and %n other file(s) have been removed. - + + + + - - - Please choose a different location. The folder %1 doesn't exist. - + + %1 and %n other file(s) have been updated. + + %1 y %n otro(s) archivo(s) han sido actualizados. + %1 y %n otro(s) archivo(s) han sido actualizados. + - - Please choose a different location. %1 isn't a valid folder. - + %1 could not be synced due to an error. See the log for details. + %1 no pudo ser sincronizado por un error. Consulta la bitácora para más detalles. - - Please choose a different location. %1 isn't a readable folder. - + %1 has a sync conflict. Please check the conflict file! + %1 tiene un conflicto de sincronización. ¡Por favor verifica el archivo con conflicto! - - %1 and %n other file(s) have been added. - Se han añadido %1 y %n otro(s) archivo(s).Se han añadido %1 y %n otro(s) archivo(s).Se han añadido %1 y %n otro(s) archivo(s). + %1 has and %n other file(s) have sync conflicts. + + %1 y %n otro(s) archivo(s) tienen confictos de sincronización. + %1 y %n otro(s) archivo(s) tienen confictos de sincronización. + - %1 has been added. %1 names a file. %1 ha sido añadido. - - %1 and %n other file(s) have been updated. - %1 y %n otro(s) archivo(s) han sido actualizados.%1 y %n otro(s) archivo(s) han sido actualizados.%1 y %n otro(s) archivo(s) han sido actualizados. - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. - - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos.%1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos.%1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos. - - - - %1 has and %n other file(s) have sync conflicts. - %1 y %n otro(s) archivo(s) tienen confictos de sincronización.%1 y %n otro(s) archivo(s) tienen confictos de sincronización.%1 y %n otro(s) archivo(s) tienen confictos de sincronización. + + %1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos. + %1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos. + - - %1 has a sync conflict. Please check the conflict file! - %1 tiene un conflicto de sincronización. ¡Por favor verifica el archivo con conflicto! - - - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. + %1 has been moved to %2. + %1 se ha movido a %2. - - %1 could not be synced due to an error. See the log for details. - %1 no pudo ser sincronizado por un error. Consulta la bitácora para más detalles. + %1 has been removed. + %1 names a file. + %1 ha sido eliminado. - - %1 and %n other file(s) are currently locked. - %1 y %n otro(s) archivo(s) están actualmente bloqueados.%1 y %n otro(s) archivo(s) están actualmente bloqueados.%1 y %n otro(s) archivo(s) están actualmente bloqueados. - - - - %1 is currently locked. - %1 está actualmente bloqueado. - - - - Sync Activity - Sincronizar Actividad + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. + %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. + - - Could not read system exclude file - No fue posible leer el archivo de exclusión del sistema + %1 has been renamed to %2. + %1 and %2 name files. + %1 ha sido renombrado a %2. - - A new folder larger than %1 MB has been added: %2. - - Una nueva carpeta de más de %1 MB ha sido agregada: %2 - + %1 has been updated. + %1 names a file. + %1 ha sido actualizado. - - A folder from an external storage has been added. - - Una carpeta de un almacenamiento externo ha sido agregada. - + %1 is currently locked. + %1 está actualmente bloqueado. - - Please go in the settings to select it if you wish to download it. - Por favor ve a las configuraciones para seleccionarlo si deseas descargarlo. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Una carpeta ha sobrepasado el límite establecido de tamaño de %1MB: %2. %3 - - Keep syncing - Continuar sincronización - - - - Stop syncing - Detener sincronización + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + - - The folder %1 has surpassed the set folder size limit of %2MB. - La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + - - Would you like to stop syncing this folder? - ¿Desea detener la sincronización de esta carpeta? + A new folder larger than %1 MB has been added: %2. + - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - La carpeta %1 fue creada pero fue excluida de la sincronización previamente. Los datos dentro de ella no se sincronizarán. - - - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - El archivo %1 fue creado pero fue excluido de la sincronización previamente. No se sincronizará. - - - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2331,414 +1887,368 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - La descarga del archivo virtual falló con el código "%1" , estado "%2" y mensaje de error "%3" + Could not read system exclude file + No fue posible leer el archivo de exclusión del sistema - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Keep syncing + Continuar sincronización - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - + Please choose a different location. %1 isn't a readable folder. + - - Remove all files? - ¿Eliminar todos los archivos? + Please choose a different location. %1 isn't a valid folder. + + + + Please choose a different location. The folder %1 doesn't exist. + + + + Please go in the settings to select it if you wish to download it. + Por favor ve a las configuraciones para seleccionarlo si deseas descargarlo. - Proceed with Deletion - + - - Restore Files to Server - + Remove all files? + ¿Eliminar todos los archivos? - Restore Files from Server - + - + + Restore Files to Server + + + + Stop syncing + Detener sincronización + + + Sync Activity + Sincronizar Actividad + + + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + El archivo %1 fue creado pero fue excluido de la sincronización previamente. No se sincronizará. + + + The folder %1 has surpassed the set folder size limit of %2MB. + La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. + + + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + La carpeta %1 fue creada pero fue excluida de la sincronización previamente. Los datos dentro de ella no se sincronizarán. + + + Virtual file download failed with code "%1", status "%2" and error message "%3" + La descarga del archivo virtual falló con el código "%1" , estado "%2" y mensaje de error "%3" + + + Would you like to stop syncing this folder? + ¿Desea detener la sincronización de esta carpeta? + + OCC::FolderCreationDialog - + %1 Create new folder + + + + Could not create a folder! Check your write permissions. + ¡No se pudo crear la carpeta! Verifique sus permisos de escritura. + + Create new folder Crear nueva carpeta - Enter folder name Ingrese el nombre de la carpeta - - Folder already exists - La carpeta ya existe - - - Error Error - - Could not create a folder! Check your write permissions. - ¡No se pudo crear la carpeta! Verifique sus permisos de escritura. + Folder already exists + La carpeta ya existe - + OCC::FolderMan - - Could not reset folder state - No fue posible restablecer el estado de la carpeta + %1 (Sync is paused) + %1 (La sincronización está pausada) - - - (backup) - (respaldo) + + (backup %1) + - - (backup %1) - (respaldo %1) + (backup) + - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Se encontró un antiguo registro de sincronización "%1", pero no se pudo eliminar. Por favor, asegúrese que ninguna aplicación lo esté utilizando actualmente. - - Undefined state. - Estado indefinido. + Could not reset folder state + No fue posible restablecer el estado de la carpeta - - Waiting to start syncing. - Agurardando para iniciar la sincronización. + Last sync was successful. + La última sincronización fue exitosa. - - Preparing for sync. - Preparando para sincronizar. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + - - Syncing %1 of %2 (A few seconds left) - + Please choose a different location. %1 is already being used as a sync folder. + - - Syncing %1 of %2 (%3 left) - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + - - Syncing %1 of %2 - + Please choose a different location. The path %1 doesn't exist. + - - Syncing %1 (A few seconds left) - + Please choose a different location. The path %1 isn't a folder. + - - Syncing %1 (%2 left) - + Please choose a different location. The selected folder isn't valid. + - - Syncing %1 - + Please choose a different location. You don't have enough permissions to write to %1. + folder location + - - Sync is running. - La Sincronización está en curso. + Preparing for sync. + Preparando para sincronizar. + + + Setup error. + Error de configuración. - Sync finished with unresolved conflicts. La sincronización finalizó pero con conflictos sin resolver. - - Last sync was successful. - La última sincronización fue exitosa. + Sync is paused. + La sincronización está pausada. - - Setup error. - Error de configuración. + Sync is running. + La Sincronización está en curso. - Sync request was cancelled. La solicitud de sincronización fue cancelada. - - Please choose a different location. The selected folder isn't valid. - - - - - - Please choose a different location. %1 is already being used as a sync folder. - + Syncing %1 + Sincronizando %1 - - Please choose a different location. The path %1 doesn't exist. - + Syncing %1 (%2 left) + Sincronizando %1 (%2 restantes) - - Please choose a different location. The path %1 isn't a folder. - + Syncing %1 (A few seconds left) + - - - Please choose a different location. You don't have enough permissions to write to %1. - folder location - + Syncing %1 of %2 + Sincronizando %1 de %2 - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - + Syncing %1 of %2 (%3 left) + - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - + Syncing %1 of %2 (A few seconds left) + - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. For advanced users: this issue might be related to multiple sync database files found in one folder. Please check %1 for outdated and unused .sync_*.db files and remove them. - - - - - Sync is paused. - La sincronización está pausada. + - - Please open the app settings to grant access to the sync folders. - + Undefined state. + Estado indefinido. - - %1 (Sync is paused) - %1 (La sincronización está pausada) + Waiting to start syncing. + Agurardando para iniciar la sincronización. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Agregar una Conexión de Sincronización de Carpeta - - - - - - Grant access - + Add Folder Sync + - File Archivo - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Neceistas estar conectado para agregar una carpeta + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Haz click en este botón para agregar una carpeta a sincronizar. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 de %4) - - Could not decrypt! - ¡No se pudo desencriptar! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Se presentó un error al cargar la lista de carpetas desde el servidor. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 de %2, archivo %3 de %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - + %5 left, %1 of %2, file %3 of %4 + faltan %5 , %1 de %2, archivo %3 de %4 - - Virtual file support is enabled. - El soporte de archivos virtuales está habilitado. + , + , - - Signed out - Sesión cerrada + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Quedan unos segundos, %1 de %2, archivo %3 de %4 - - Synchronizing virtual files in local folder - Sincronizando archivos virtuales en la carpeta local + About to start syncing + A punto de comenzar la sincronización - - Synchronizing files in local folder - Sincronizando archivos en la carpeta local + Checking for changes in local "%1" + Verificando cambios en "%1" local - Checking for changes in remote "%1" Verificando cambios en "%1" remoto - - Checking for changes in local "%1" - Verificando cambios en "%1" local - - - - Syncing local and remote changes - Sincronizando cambios locales y remotos + Click this button to add a folder to synchronize. + Haz click en este botón para agregar una carpeta a sincronizar. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + ¡No se pudo desencriptar! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Descargando %1/s - - File %1 of %2 - Archivo %1 de %2 - - - - There are unresolved conflicts. Click for details. - Hay conflictos sin resolver. Haz click para más detalles. - - - - - , - , + Error while loading the list of folders from the server. + Se presentó un error al cargar la lista de carpetas desde el servidor. - Fetching folder list from server … Obteniendo la lista de carpetas desde el servidor ... - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Archivo %1 de %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Cargando %1/s + Preparing to sync … + Preparándose para sincronizar ... + + + Signed out + Sesión cerrada - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Sincronizando archivos en la carpeta local - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 de %4) + Synchronizing virtual files in local folder + Sincronizando archivos virtuales en la carpeta local - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Sincronizando cambios locales y remotos - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Quedan unos segundos, %1 de %2, archivo %3 de %4 + There are unresolved conflicts. Click for details. + Hay conflictos sin resolver. Haz click para más detalles. - - %5 left, %1 of %2, file %3 of %4 - faltan %5 , %1 de %2, archivo %3 de %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Cargando %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 de %2, archivo %3 de %4 + Virtual file support is enabled. + El soporte de archivos virtuales está habilitado. - Waiting for %n other folder(s) … - + + + + - - About to start syncing - A punto de comenzar la sincronización + You need to be connected to add a folder + Neceistas estar conectado para agregar una carpeta - - Preparing to sync … - Preparándose para sincronizar ... + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. El observador no recibió una notificación de prueba. @@ -2746,7 +2256,6 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Este problema suele ocurrir cuando las notificaciones inotify se agotan. Consulte las preguntas frecuentes para más detalles. @@ -2754,12 +2263,10 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard - Add Folder Sync Connection Agregar Conexión de Carpeta de Sincronización - Add Sync Connection Agregar Conexión de Sincronización @@ -2767,428 +2274,388 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Haz click para seleccionar una carpeta local a sincronizar. - Enter the path to the local folder. Ingresa la ruta a la carpeta local. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Selecciona la carpeta fuente - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Crea la Carpeta Remota + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Ingrese el nombre de la nueva carpeta que se creará debajo de "%1": + Authentication failed accessing %1 + La autenticación fallo al acceder %1 - - Folder was successfully created on %1. - La carpeta se creó exitosamente en %1. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - La autenticación fallo al acceder %1 + Choose this to sync the entire account + Selecciona esta opción para sincronizar la cuenta completa + + + Create Remote Folder + Crea la Carpeta Remota + + + Create folder + Crear carpeta + + + Enter the name of the new folder to be created below "%1": + Ingrese el nombre de la nueva carpeta que se creará debajo de "%1": - Failed to create the folder on %1. Please check manually. Se presentó una falla al crear la carpeta en %1. Por favor verifica manualmente. - Failed to list a folder. Error: %1 Se presentó una falla al enlistar la carpeta. Error: %1 - - Choose this to sync the entire account - Selecciona esta opción para sincronizar la cuenta completa + Folder was successfully created on %1. + La carpeta se creó exitosamente en %1. - - Please choose a different location. %1 is already being synced to %2. - - - - - You are already syncing the subfolder %1 at %2. - + - - - OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Usar archivos virtuales en lugar de descargar el contenido inmediatamente %1 + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + - - - (experimental) - (experimental) + Refresh + Actualizar - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + Step 2 of 3: Directory in your %1 + - - Virtual files are not supported at the selected location - + You are already syncing the subfolder %1 at %2. + - + - OCC::GETFileJob + OCC::FolderWizardSelectiveSync - - No E-Tag received from server, check Proxy/Gateway - No se recibió un E-Tag del servidor, verifica el Proxy/Gateway + (experimental) + (experimental) - - We received a different E-Tag for resuming. Retrying next time. - Recibimos una E-Tag diferente para reanudar. Reintentando la proxima vez. + Add Folder Sync + - - We received an unexpected download Content-Length. - Recibimos una longitud de contenido de descarga inesperada. + Step 3 of 3: Selektive Synchronisation + - - Server returned wrong content-range - El servidor regreso un rango de contenido equivocado + Use virtual files instead of downloading content immediately %1 + Usar archivos virtuales en lugar de descargar el contenido inmediatamente %1 - - Connection Timeout - El tiempo de la conexión expiró + Virtual files are not supported at the selected location + - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + + OCC::GeneralSettings - - Show Call Notifications - Mostrar notificaciones de llamadas + &Automatically check for updates + Comprobar &actualizaciones automáticamente - - For System Tray - Para la Bandeja del Sistema + &Launch on System Startup + &Lanzar al Iniciar el Sistema - - Show Chat Notifications - + &Restart && Update + &Reinicia && Actualiza - - Show Server &Notifications - Mostrar &notificaciones del servidor + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - - Advanced - Avanzado + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Advanced + Avanzado - Ask for confirmation before synchronizing external storages Perdir confirmaci´pón antes de sincronizar almacenamientos externos - - &Launch on System Startup - &Lanzar al Iniciar el Sistema - - - - General Settings - Configuraciones generales - - - - General settings - + Ask for confirmation before synchronizing new folders larger than + Pedir confirmación antes de sincronizar carpetas nuevas mayores a - - Use &Monochrome Icons - Usar Íconos &Monocromáticos + Automatically disable synchronisation of folders that overcome limit + Deshabilitar sincronización automáticamente para las carpetas que sobrepasen el límite - - Show &Quota Warning Notifications - + Cancel + Cancelar - - Ask for confirmation before synchronizing new folders larger than - Pedir confirmación antes de sincronizar carpetas nuevas mayores a + Change update channel + Cambiar el canal de actualizaciones - - Notify when synchronised folders grow larger than specified limit - Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado + Changing update channel? + ¿Cambiar el canal de actualizaciones? - - Automatically disable synchronisation of folders that overcome limit - Deshabilitar sincronización automáticamente para las carpetas que sobrepasen el límite + Check Now + Comprobar ahora - - Move removed files to trash - Mover archivos eliminados a la papelera + Create Debug Archive + Crear archivo de depuración - - Show sync folders in &Explorer's navigation pane - Mostrar las carpetas sincronizadas en el panel de navegación del &explorador + Data Protection + - - Server poll interval - + Debug Archive Created + Archivo de depuración creado - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - + Desktop client x.x.x + Cliente de escritorio x.x.x - Edit &Ignored Files Editar Archivos &Ignorados - - - Create Debug Archive - Crear archivo de depuración + For System Tray + Para la Bandeja del Sistema - - Info - Información + General Settings + Configuraciones generales - - Desktop client x.x.x - Cliente de escritorio x.x.x + Legal Notice + Aviso legal - - Update channel - Canal de actualizaciones + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - Comprobar &actualizaciones automáticamente + More Information + + + + Move removed files to trash + Mover archivos eliminados a la papelera - - Check Now - Comprobar ahora + Necessary data + - - Usage Documentation - Documentación de uso + Notify when synchronised folders grow larger than specified limit + Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado - - Legal Notice - Aviso legal + Open Source Software + - - Restore &Default - + Privacy Policy + - - &Restart && Update - &Reinicia && Actualiza + Redact information deemed sensitive before sharing! Debug archive created at %1 + - - Server notifications that require attention. - Notificaciones del servidor que requieren atención. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - + Restore &Default + - - Show call notification dialogs. - Mostrar diálogos de notificación de llamadas. + Restore to &%1 + - - Show notification when quota usage exceeds 80%. - + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - No puede desactivar el inicio automático porque el inicio automático a nivel de sistema está habilitado. + Server notifications that require attention. + Notificaciones del servidor que requieren atención. - - Restore to &%1 - + Server poll interval + - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - + Show &Quota Warning Notifications + - - stable - estable + Show Call Notifications + Mostrar notificaciones de llamadas - - beta - beta + Show Chat Notifications + - - daily - diariamente + Show Server &Notifications + Mostrar &notificaciones del servidor - - enterprise - empresarial + Show call notification dialogs. + Mostrar diálogos de notificación de llamadas. - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - + Show chat notification dialogs. + - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - + Show notification when quota usage exceeds 80%. + - - Changing update channel? - ¿Cambiar el canal de actualizaciones? + Show sync folders in &Explorer's navigation pane + Mostrar las carpetas sincronizadas en el panel de navegación del &explorador - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable starts list of available update channels, stable is always available - + - - Change update channel - Cambiar el canal de actualizaciones + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Cancelar + Update channel + Canal de actualizaciones + + + Updates + - - Login Item Requires Approval - + Usage Documentation + Documentación de uso + + + Use &Monochrome Icons + Usar Íconos &Monocromáticos - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - + You cannot disable autostart because system-wide autostart is enabled. + No puede desactivar el inicio automático porque el inicio automático a nivel de sistema está habilitado. - Zip Archives Comprimir archivos - - Failed to Access File - + beta + beta - - Could not access the selected location. Please try again or choose a different location. - + daily + diariamente - - Debug Archive Created - Archivo de depuración creado + enterprise + empresarial - - Redact information deemed sensitive before sharing! Debug archive created at %1 - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + - + + stable + estable + + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Se requiere contraseña para el recurso compartido + Connection Timeout + El tiempo de la conexión expiró + + + No E-Tag received from server, check Proxy/Gateway + No se recibió un E-Tag del servidor, verifica el Proxy/Gateway - - Please enter a password for your link share: - Por favor, ingrese una contraseña para el enlace compartido: + Server returned wrong content-range + El servidor regreso un rango de contenido equivocado - - Sharing error - Error al compartir + We received a different E-Tag for resuming. Retrying next time. + Recibimos una E-Tag diferente para reanudar. Reintentando la proxima vez. - + We received an unexpected download Content-Length. + Recibimos una longitud de contenido de descarga inesperada. + + + + OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -3196,54 +2663,57 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - - - OCC::HttpCredentialsGui + + Password for share required + Se requiere contraseña para el recurso compartido + - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Por favor, ingrese la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> + Please enter a password for your link share: + Por favor, ingrese una contraseña para el enlace compartido: - - Reading from keychain failed with error: "%1" - La lectura del llavero falló con el error: '%1' + Sharing error + Error al compartir + + + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + <a href="%1">Haz click aqui</a> para solicitar una contraseña de aplicación desde la interface Web. + + Enter Password Ingresa la Contraseña - - <a href="%1">Click here</a> to request an app password from the web interface. - <a href="%1">Haz click aqui</a> para solicitar una contraseña de aplicación desde la interface Web. + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Por favor, ingrese la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> - + + Reading from keychain failed with error: "%1" + La lectura del llavero falló con el error: '%1' + + OCC::IgnoreListEditor - - Ignored Files Editor - Editor de Archivos Ignorados + Files Ignored by Patterns + Archivos Ignorados por Patrones - Global Ignore Settings Configuraciones a Ignorar Globales - - Sync hidden files - Sincronizando archivos ocultos + Ignored Files Editor + Editor de Archivos Ignorados - - Files Ignored by Patterns - Archivos Ignorados por Patrones + Sync hidden files + Sincronizando archivos ocultos - This entry is provided by the system at "%1" and cannot be modified in this view. Esta entrada es proporcionada por el sistema en "%1" y no se puede modificar en esta vista. @@ -3251,32 +2721,26 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListTableWidget - - Pattern - Patrón + Add + Añadir - + Add a new ignore pattern: + Añadir un nuevo patrón de exclusión: + + Allow Deletion Permitir eliminación - - Add - Añadir - - - - Remove - Eliminar + Cannot write changes to "%1". + No se pueden escribir los cambios en "%1". - - Remove all - Eliminar todo + Could not open file + No se puede abrir el archivo - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3285,195 +2749,166 @@ Items where deletion is allowed will be deleted if they prevent a directory from Los elementos en los que se permite el borrado se eliminarán si impiden que un directorio se elimine. Esto es útil para los metadatos. - - Could not open file - No se puede abrir el archivo + Ignore Pattern + - - Cannot write changes to "%1". - No se pueden escribir los cambios en "%1". + Pattern + Patrón - - Add Ignore Pattern - Añadir patrón de exclusión + Remove + Eliminar - - Add a new ignore pattern: - Añadir un nuevo patrón de exclusión: + Remove all + Eliminar todo - + OCC::InvalidFilenameDialog - - Invalid filename - Nombre de archivo inválido + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + No se puede renombrar el archivo porque ya hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. - - The file could not be synced because it contains characters which are not allowed on this system. - No se pudo sincronizar el archivo porque contiene caracteres que no están permitidos en este sistema. + Checking rename permissions … + Comprobando los permisos de renombramiento ... - - Error - Error + Could not rename file. Please make sure you are connected to the server. + No se pudo renombrar el archivo. Por favor, asegúrese de estar conectado al servidor. - - Please enter a new name for the file: - Por favor, ingrese un nuevo nombre para el archivo: + Could not rename local file. %1 + No se pudo renombrar el archivo local. %1 - - - New filename - Nuevo nombre de archivo + + Error + Error - - Rename file - Renombrar archivo + Failed to fetch permissions with error %1 + Error al obtener los permisos con el error %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - No se pudo sincronizar el archivo "%1" porque el nombre contiene caracteres que no están permitidos en este sistema. + Filename contains illegal characters: %1 + El nombre de archivo contiene caracteres no permitidos: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - + Filename contains leading and trailing spaces. + El nombre de archivo contiene espacios al principio y al final. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - + Filename contains leading spaces. + El nombre de archivo contiene espacios al principio. - - The following characters are not allowed: %1 - + Filename contains trailing spaces. + El nombre de archivo contiene espacios al final. - - The following basenames are not allowed: %1 - + Invalid filename + Nombre de archivo inválido - - The following filenames are not allowed: %1 - + New filename + Nuevo nombre de archivo - - The following file extensions are not allowed: %1 - + Please enter a new name for the file: + Por favor, ingrese un nuevo nombre para el archivo: - - Checking rename permissions … - Comprobando los permisos de renombramiento ... + Rename file + Renombrar archivo - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + - - Failed to fetch permissions with error %1 - Error al obtener los permisos con el error %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + No se pudo sincronizar el archivo "%1" porque el nombre contiene caracteres que no están permitidos en este sistema. - - Filename contains leading and trailing spaces. - El nombre de archivo contiene espacios al principio y al final. + The file could not be synced because it contains characters which are not allowed on this system. + No se pudo sincronizar el archivo porque contiene caracteres que no están permitidos en este sistema. - - Filename contains leading spaces. - El nombre de archivo contiene espacios al principio. + The following basenames are not allowed: %1 + - - Filename contains trailing spaces. - El nombre de archivo contiene espacios al final. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + - - Use invalid name - Usar nombre inválido + The following characters are not allowed: %1 + - - Filename contains illegal characters: %1 - El nombre de archivo contiene caracteres no permitidos: %1 + The following file extensions are not allowed: %1 + - - Could not rename file. Please make sure you are connected to the server. - No se pudo renombrar el archivo. Por favor, asegúrese de estar conectado al servidor. + The following filenames are not allowed: %1 + - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - No se puede renombrar el archivo porque ya hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. + Use invalid name + Usar nombre inválido - - Could not rename local file. %1 - No se pudo renombrar el archivo local. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - + OCC::LegacyAccountSelectionDialog - Legacy import - + Importación antigua - Select the accounts to import from the legacy configuration: - + OCC::LegalNotice - - - Legal notice - Aviso legal + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + - + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> + <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o cualquier versión posterior.</p> + + Close Cerrar - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - - - - - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o cualquier versión posterior.</p> + Legal notice + Aviso legal - + OCC::LogBrowser - + Enable logging to temporary folder + Habilitar el registro en la carpeta temporal + + Log Output Salida de la Bitácora - + Open folder + Abrir carpeta + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3482,645 +2917,585 @@ Dado que los archivos de registro pueden crecer bastante, el cliente creará uno Si está habilitado, los registros se escribirán en %1 - - Enable logging to temporary folder - Habilitar el registro en la carpeta temporal - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Esta configuración persiste entre reinicios del cliente. Tenga en cuenta que usar la línea de comandos para el registro anulará esta configuración. - - - Open folder - Abrir carpeta - - + OCC::Logger - - - Error - Error - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> - + + Error + Error + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - No se pudo iniciar la edición local. - - - An error occurred during setup. Ocurrió un error durante la configuración. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - + No se pudo encontrar un archivo para edición local. Asegúrese que su ruta sea válida y esté sincronizado localmente. - Could not get file ID. No se pudo obtener el identificador del archivo. - Could not get file identifier. No se pudo obtener el identificador del archivo. - + Could not start editing locally. + No se pudo iniciar la edición local. + + The file identifier is empty. El identificador del archivo está vacío. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Nueva versión disponible + Download Bandwidth + Ancho de banda para Descarga - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Una nueva versión del Cliente %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> + HTTP(S) proxy + Proxy HTTP(S) - - Update Failed - La actualización falló + Host + Servidor - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización falló.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirma el reinicio y la actualización, es posible que su computadora se reinicie para completar la instalación.</p> + Hostname of proxy server + Nombre del servidor proxy - - Ask again later - Preguntar de nuevo más tarde + KBytes/s + KBytes/s - - Restart and update - Reiniciar y actualizar + Limit automatically + Limitar automáticamente - - Update manually - Actualizar manualmente + Limit to + Limitar a - - Skip this time - Omitir esta vez + Limit to 3/4 of estimated bandwidth + Limitar a 3/4 del ancho de banda estimado - - Get update - Obtener la actualización + Manually specify proxy + Especificar proxy manualmente - - - OCC::NetworkSettings - - Proxy Settings - Configuraciones del Proxy + No limit + Sin límite - - Use system proxy - Usar el sistema de proxy + No proxy + Sin proxy - - Host - Servidor + Note: proxy settings have no effects for accounts on localhost + Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local - - Proxy server requires authentication - El servidor Proxy requiere de autenticación + Password for proxy server + Contraseña del servidor proxy - - Download Bandwidth - Ancho de banda para Descarga + Proxy Settings + Configuraciones del Proxy - - - Limit to - Limitar a + Proxy server requires authentication + El servidor Proxy requiere de autenticación - - - Limit to 3/4 of estimated bandwidth - Limitar a 3/4 del ancho de banda estimado + SOCKS5 proxy + Proxy SOCKS5 - - - - Limit automatically - Limitar automáticamente + + Upload Bandwidth + Ancho de banda para Carga - - - KBytes/s - KBytes/s + Use system proxy + Usar el sistema de proxy - - Note: proxy settings have no effects for accounts on localhost - Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local + Username for proxy server + Nombre de usuario del servidor proxy + + + OCC::NSISUpdater - - Manually specify proxy - Especificar proxy manualmente + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización falló.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirma el reinicio y la actualización, es posible que su computadora se reinicie para completar la instalación.</p> - - No proxy - Sin proxy + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Una nueva versión del Cliente %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> - - - No limit - Sin límite + Ask again later + Preguntar de nuevo más tarde - - Upload Bandwidth - Ancho de banda para Carga + Get update + Obtener la actualización - - - Hostname of proxy server - Nombre del servidor proxy + + New Version Available + Nueva versión disponible - - Username for proxy server - Nombre de usuario del servidor proxy + Restart and update + Reiniciar y actualizar - - Password for proxy server - Contraseña del servidor proxy + Skip this time + Omitir esta vez - - HTTP(S) proxy - Proxy HTTP(S) + Update Failed + La actualización falló - - SOCKS5 proxy - Proxy SOCKS5 + Update manually + Actualizar manualmente - + OCC::OCUpdater - - Could not check for new updates. - No fue posible verificar nuevas actualizaciones. + %1 available. Restart application to start the update. + %1 disponible. Reinicie la aplicación para iniciar la actualización. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Una nueva actualización para %1 está a punto de ser instalada. El programa de actualización puede solicitar privilegios adicionales durante el proceso. Puede ser que deba reiniciar su computadora para completar la instalación. - Checking update server … Verificando el servidor de actualizaciones ... - - New %1 update ready - La nueva actualización de %1 está lista + Could not check for new updates. + No fue posible verificar nuevas actualizaciones. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Una nueva actualización para %1 está a punto de ser instalada. El programa de actualización puede solicitar privilegios adicionales durante el proceso. Puede ser que deba reiniciar su computadora para completar la instalación. + Could not download update. Please open %1 to download the update manually. + No se pudo descargar la actualización. Por favor, abra %1 para descargar la actualización manualmente. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + No se pudo descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. - Downloading %1 … Descargando %1 … - - %1 available. Restart application to start the update. - %1 disponible. Reinicie la aplicación para iniciar la actualización. + New %1 is available. Please open %2 to download the update. + La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - No se pudo descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. - - Could not download update. Please open %1 to download the update manually. - No se pudo descargar la actualización. Por favor, abra %1 para descargar la actualización manualmente. + New %1 update ready + La nueva actualización de %1 está lista - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. + No updates available. Your installation is the latest version. + - - New %1 is available. Please open %2 to download the update. - La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. + Update Check + Verificar Actualizaciones - - + Update status is unknown: Did not check for new updates. Estado de la actualización desconocido. No se verificó si había nuevas actualizaciones. - You are using the %1 update channel. Your installation is the latest version. - + + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - + %1 folder "%2" is synced to local folder "%3" + %1 carpeta "%2" está sincronizada con la carpeta local "%3" - - Update Check - Verificar Actualizaciones + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 de espacio libre - - - OCC::OwncloudAdvancedSetupPage - - Connect - Conectar + (%1) + (%1) - - (experimental) (experimental) - - - Use &virtual files instead of downloading content immediately %1 - Usar archivos &virtuales en lugar de descargar el contenido de inmediato %1 + Connect + Conectar - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + In Finder's "Locations" sidebar section + - - - %1 folder "%2" is synced to local folder "%3" - %1 carpeta "%2" está sincronizada con la carpeta local "%3" + + Local Sync Folder + Carpeta de Sincronización Local - Sync the folder "%1" Sincronizar la carpeta "%1" - - Warning: The local folder is not empty. Pick a resolution! - Advertencia: La carpeta local no está vacía. ¡Elija una resolución! + There isn't enough free space in the local folder! + ¡No hay espacio suficiente en la carpeta local! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 de espacio libre + Use &virtual files instead of downloading content immediately %1 + Usar archivos &virtuales en lugar de descargar el contenido de inmediato %1 - Virtual files are not supported at the selected location - + - - Local Sync Folder - Carpeta de Sincronización Local + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Advertencia: La carpeta local no está vacía. ¡Elija una resolución! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - ¡No hay espacio suficiente en la carpeta local! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Se presentó una falla al conectarse a la dirección del servidor seguro <em>%1</em>. ¿Cómo deseas proceder?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p> Se presentó una falla al conectarse a la direccón especificada del servidor seguro. ¿Como deseas proceder?</p></body></html> - - In Finder's "Locations" sidebar section - + Configure client-side TLS certificate + Configurar el certificado TLS del lado del cliente - - - OCC::OwncloudConnectionMethodDialog - Connection failed Falló la conexión - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p> Se presentó una falla al conectarse a la direccón especificada del servidor seguro. ¿Como deseas proceder?</p></body></html> + Retry unencrypted over HTTP (insecure) + Reintentar no encriptado sobre HTTP (inseguro) - Select a different URL Selecciona una liga diferente + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Reintentar no encriptado sobre HTTP (inseguro) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Configurar el certificado TLS del lado del cliente + Account %1: %2 + Cuenta %1 : %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Se presentó una falla al conectarse a la dirección del servidor seguro <em>%1</em>. ¿Cómo deseas proceder?</p></body></html> + Account synchronization is disabled + La sincronización de cuentas está deshabilitada - - - OCC::OwncloudHttpCredsPage - - &Email - &Correo electrónico + Checking for changes in local "%1" + Buscando cambios en el local "%1" - - Connect to %1 - Conectar a %1 + Checking for changes in remote "%1" + Buscando cambios en el remoto "%1" - - Enter user credentials - Ingresar las credenciales del usuario + Disconnected from %1 + Desconectado de %1 - - - OCC::OwncloudPropagator - - - Impossible to get modification time for file in conflict %1 - No se puede obtener la hora de modificación para el archivo en conflicto %1 + Disconnected from accounts: + Desconectado de las cunetas: - - - OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - El enlace a su interfaz web de %1 cuando lo abre en el navegador. + Please sign in + Por favor inicia sesión - - &Next > - &Siguiente> + Terms of service + - - Server address does not seem to be valid - La dirección del servidor parece ser inválida + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + El servidor de la cuenta %1 ejecuta una versión no soportada %2. Usar este cliente con versiones del servidor no soportadas no ha sido probado y puede ser peligroso. Proceda bajo su propio riesgo. + + + There are no sync folders configured. + No se han configurado carpetas para sincronizar + + + Unsupported Server Version + Versión del Servidor No Soportada + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + + + + macOS VFS for %1: A problem was encountered. + macOS VFS para %1: Ocurrió un problema. + + + macOS VFS for %1: Last sync was successful. + macOS VFS para %1: La última sincronización fue exitosa. + + + macOS VFS for %1: Sync is running. + macOS VFS para %1: Sincronización en progreso. + + + + OCC::OwncloudHttpCredsPage + + &Email + &Correo electrónico + + + Connect to %1 + Conectar a %1 + + + Enter user credentials + Ingresar las credenciales del usuario + + + + OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 + No se puede obtener la hora de modificación para el archivo en conflicto %1 + + + + OCC::OwncloudSetupPage + + &Next > + &Siguiente> - Could not load certificate. Maybe wrong password? No se pudo cargar el certificado. ¿Quizás la contraseña sea incorrecta? - + + Server address does not seem to be valid + La dirección del servidor parece ser inválida + + + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + El enlace a su interfaz web de %1 cuando lo abre en el navegador. + + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>¡La carpeta de sincronización local %1 fue creada exitosamente!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Conectado exitosamente a %1: %2 versión %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Hubo una falla al conectarse a %1 en %2: <br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">La creación de la carpeta remota falló probablemente porque las credenciales proporcionadas son incorrectas. </font><br/> Por favor regresa y verifica tus credenciales.</p> - - Timeout while trying to connect to %1 at %2. - Expiró el tiempo al tratar de conectarse a %1 en %2. + A sync connection from %1 to remote directory %2 was set up. + Una conexión de sincronización de %1 al directorio remoto %2 fue establecida. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso prohibido por el servidor. Para verificar que tengas el acceso correcto, <a href="%1">haz click aquí</a> para acceder al servicio con tu navegador. - - Invalid URL - URL Inválido + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + No se puede eliminar ni hacer una copia de seguridad de la carpeta porque la carpeta o un archivo dentro de ella está abierto en otro programa. Por favor, cierre la carpeta o el archivo y pulse reintentar o cancelar la instalación. - - - Trying to connect to %1 at %2 … - Intentando conectar a %1 desde %2 ... + Connection to %1 could not be established. Please check again. + No se pudo establecer la conexión a %1. Por favor verifica de nuevo. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. + Could not create local folder %1 + No fue posible crear la carpeta local %1 - - There was an invalid response to an authenticated WebDAV request - Hubo una respuesta inválida a una solicitud WebDAV autentificada + Creating local sync folder %1 … + Creando carpeta de sincronización local %1 ... - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - La carpeta de sincronización local %1 ya existe, preparandola para la sincronización. <br/><br/> + Error: %1 + Error: %1 - - Creating local sync folder %1 … - Creando carpeta de sincronización local %1 ... + Failed to connect to %1 at %2:<br/>%3 + Hubo una falla al conectarse a %1 en %2: <br/>%3 - - OK - Ok + Folder rename failed + Falla al renombrar la carpeta - - failed. - falló. + Invalid URL + URL Inválido - - Could not create local folder %1 - No fue posible crear la carpeta local %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + La carpeta de sincronización local %1 ya existe, preparandola para la sincronización. <br/><br/> - No remote folder specified! ¡No se especificó la carpeta remota! - - Error: %1 - Error: %1 - - - - creating folder on Nextcloud: %1 - creando carpeta en Nextcloud: %1 + OK + Ok - Remote folder %1 created successfully. La carpeta remota %1 fue creada exitosamente. - - The remote folder %1 already exists. Connecting it for syncing. - La carpeta remota %1 ya existe. Conectandola para sincronizar. - - - - - The folder creation resulted in HTTP error code %1 - La creación de la carpeta dio como resultado el código de error HTTP %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + La creación de la carpeta remota %1 falló con el error <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - ¡La creación de la carpeta remota falló porque las credenciales proporcionadas están mal!<br/> Por favor regresa y verifica tus credenciales.</p> + Successfully connected to %1! + ¡Conectado exitosamente a %1! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">La creación de la carpeta remota falló probablemente porque las credenciales proporcionadas son incorrectas. </font><br/> Por favor regresa y verifica tus credenciales.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - La creación de la carpeta remota %1 falló con el error <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + La creación de la carpeta dio como resultado el código de error HTTP %1 - - A sync connection from %1 to remote directory %2 was set up. - Una conexión de sincronización de %1 al directorio remoto %2 fue establecida. + The remote folder %1 already exists. Connecting it for syncing. + La carpeta remota %1 ya existe. Conectandola para sincronizar. - - Successfully connected to %1! - ¡Conectado exitosamente a %1! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + ¡La creación de la carpeta remota falló porque las credenciales proporcionadas están mal!<br/> Por favor regresa y verifica tus credenciales.</p> - - Connection to %1 could not be established. Please check again. - No se pudo establecer la conexión a %1. Por favor verifica de nuevo. + There was an invalid response to an authenticated WebDAV request + Hubo una respuesta inválida a una solicitud WebDAV autentificada - - Folder rename failed - Falla al renombrar la carpeta + Timeout while trying to connect to %1 at %2. + Expiró el tiempo al tratar de conectarse a %1 en %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - No se puede eliminar ni hacer una copia de seguridad de la carpeta porque la carpeta o un archivo dentro de ella está abierto en otro programa. Por favor, cierre la carpeta o el archivo y pulse reintentar o cancelar la instalación. + Trying to connect to %1 at %2 … + Intentando conectar a %1 desde %2 ... - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - + creating folder on Nextcloud: %1 + creando carpeta en Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>¡La carpeta de sincronización local %1 fue creada exitosamente!</b></font> + failed. + falló. - + OCC::OwncloudWizard - Add %1 account Añadir %1 cuenta - - Skip folders configuration - Omitir las carpetas de configuración + Back + Next button text in new account wizard + - Cancel Cancelar - - Proxy Settings - Proxy Settings button text in new account wizard - + Enable experimental feature? + ¿Habilitar la característica experimental? + + + Enable experimental placeholder mode + Habilitar el modo experimental de marcadores de posición - Next Next button text in new account wizard - + - - Back - Next button text in new account wizard - + Proxy Settings + Proxy Settings button text in new account wizard + Configuraciones del Proxy - - Enable experimental feature? - ¿Habilitar la característica experimental? + Skip folders configuration + Omitir las carpetas de configuración - + Stay safe + Manténgase seguro + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4136,26 +3511,14 @@ Cambiar a este modo cancelará cualquier sincronización en curso. Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualquier problema que surja. - - - Enable experimental placeholder mode - Habilitar el modo experimental de marcadores de posición - - - - Stay safe - Manténgase seguro - - + OCC::PasswordInputDialog - Password for share required Se requiere la contraseña para el recurso compartido - Please enter a password for your share: Por favor, ingrese una contraseña para el recurso compartido: @@ -4163,7 +3526,6 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PollJob - Invalid JSON reply from the poll URL JSON de respuesta invalido de la URL de encuesta. @@ -4171,344 +3533,259 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Los enlaces simbólicos no están soportados en la sincronización. + Cannot be renamed or uploaded. + - - File is locked by another application. - + Cannot modify encrypted item because the selected certificate is not valid. + - - File is listed on the ignore list. - El archivo está en la lista de ignorados. + Cannot sync due to invalid modification time + No se puede sincronizar debido a una hora de modificación inválida - - File names ending with a period are not supported on this file system. - Los nombres de archivo con punto final no son compatibles en este sistema de archivos. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflicto de coincidencia de mayúsculas/minúsculas: Se descargó el archivo del servidor y se renombró para evitar el conflicto. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Conflict: Server version downloaded, local copy renamed and not uploaded. + Conflicto: Se descargó la versión del servidor, se renombró la copia local y no se cargó. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Could not upload file, because it is open in "%1". + No se puede cargar el archivo, porque está abierto en "%1". - - Folder name contains at least one invalid character - + Error while deleting file record %1 from the database + Error al eliminar el registro de archivo %1 de la base de datos - - File name contains at least one invalid character - El nombre de archivo contiene al menos un caracter inválido + Error while reading the database + Error al leer la base de datos - - - Folder name is a reserved name on this file system. - + + File has extension reserved for virtual files. + El archivo tiene una extensión reservada para archivos virtuales. - - File name is a reserved name on this file system. - + File is listed on the ignore list. + El archivo está en la lista de ignorados. - - Filename contains trailing spaces. - El nombre de archivo contiene espacios al final. + File is not accessible on the server. + server error + - - - - - Cannot be renamed or uploaded. - + File name contains at least one invalid character + El nombre de archivo contiene al menos un caracter inválido - - Filename contains leading spaces. - El nombre de archivo contiene espacios al principio. + File name is a reserved name on this file system. + - - Filename contains leading and trailing spaces. - El nombre de archivo contiene espacios al principio y al final. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - Filename is too long. - El nombre de archivo es demasiado largo. + File names ending with a period are not supported on this file system. + Los nombres de archivo con punto final no son compatibles en este sistema de archivos. - File/Folder is ignored because it's hidden. El archivo/carpeta es ignorado porque está oculto. - - Stat failed. - Error de estado. - - - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Conflicto: Se descargó la versión del servidor, se renombró la copia local y no se cargó. + Filename contains leading and trailing spaces. + El nombre de archivo contiene espacios al principio y al final. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Conflicto de coincidencia de mayúsculas/minúsculas: Se descargó el archivo del servidor y se renombró para evitar el conflicto. + Filename contains leading spaces. + El nombre de archivo contiene espacios al principio. - - The filename cannot be encoded on your file system. - El nombre de archivo no se puede codificar en su sistema de archivos. + Filename contains trailing spaces. + El nombre de archivo contiene espacios al final. - - The filename is blacklisted on the server. - El nombre de archivo está prohibido en el servidor. + Filename is too long. + El nombre de archivo es demasiado largo. - - Reason: the entire filename is forbidden. - + Folder is not accessible on the server. + server error + - - Reason: the filename has a forbidden base name (filename start). - + Folder name contains at least one invalid character + - - Reason: the file has a forbidden extension (.%1). - + Folder name is a reserved name on this file system. + - - Reason: the filename contains a forbidden character (%1). - + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - File has extension reserved for virtual files. - El archivo tiene una extensión reservada para archivos virtuales. + Ignored because of the "choose what to sync" blacklist + Ignorado debido a la lista negra de "elegir qué sincronizar" - - Folder is not accessible on the server. - server error - + Moved to invalid target, restoring + Movido a un destino inválido, restaurando - - File is not accessible on the server. - server error - + Not allowed because you don't have permission to add files in that folder + No permitido porque no tiene permiso para añadir archivos a esa carpeta. - - Cannot sync due to invalid modification time - No se puede sincronizar debido a una hora de modificación inválida + Not allowed because you don't have permission to add subfolders to that folder + No permitido porque no tiene permiso para añadir subcarpetas a esa carpeta. - - Upload of %1 exceeds %2 of space left in personal files. - + Not allowed to remove, restoring + No se permite eliminar, restaurando - - Upload of %1 exceeds %2 of space left in folder %3. - + Not allowed to upload this file because it is read-only on the server, restoring + No está permitido subir este archivo porque es de sólo lectura en el servidor, restaurando. - - Could not upload file, because it is open in "%1". - No se puede cargar el archivo, porque está abierto en "%1". + Reason: the entire filename is forbidden. + - - Error while deleting file record %1 from the database - Error al eliminar el registro de archivo %1 de la base de datos + Reason: the file has a forbidden extension (.%1). + - - - Moved to invalid target, restoring - Movido a un destino inválido, restaurando + Reason: the filename contains a forbidden character (%1). + - - Cannot modify encrypted item because the selected certificate is not valid. - + Reason: the filename has a forbidden base name (filename start). + - - Ignored because of the "choose what to sync" blacklist - Ignorado debido a la lista negra de "elegir qué sincronizar" + Stat failed. + Error de estado. - - Not allowed because you don't have permission to add subfolders to that folder - No permitido porque no tiene permiso para añadir subcarpetas a esa carpeta. + Symbolic links are not supported in syncing. + Los enlaces simbólicos no están soportados en la sincronización. - - Not allowed because you don't have permission to add files in that folder - No permitido porque no tiene permiso para añadir archivos a esa carpeta. + The filename cannot be encoded on your file system. + El nombre de archivo no se puede codificar en su sistema de archivos. - - Not allowed to upload this file because it is read-only on the server, restoring - No está permitido subir este archivo porque es de sólo lectura en el servidor, restaurando. + The filename is blacklisted on the server. + El nombre de archivo está prohibido en el servidor. - - Not allowed to remove, restoring - No se permite eliminar, restaurando + Upload of %1 exceeds %2 of space left in folder %3. + - - Error while reading the database - Error al leer la base de datos + Upload of %1 exceeds %2 of space left in personal files. + - + OCC::PropagateDirectory - Could not delete file %1 from local DB - + - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida - - - - - - - The folder %1 cannot be made read-only: %2 - La carpeta %1 no se puede hacer de sólo lectura: %2 - - - - - unknown exception - - - - Error updating metadata: %1 Error al actualizar los metadatos: %1 - File is currently in use El archivo se encuentra en uso - + + The folder %1 cannot be made read-only: %2 + La carpeta %1 no se puede hacer de sólo lectura: %2 + + + unknown exception + + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + No se pudo eliminar el registro de archivo %1 de la base de datos local + + Could not get file %1 from local DB - + + + + Error updating metadata: %1 + Error al actualizar los metadatos: %1 - File %1 cannot be downloaded because encryption information is missing. No se puede descargar el archivo %1 porque falta información del cifrado. - - - Could not delete file record %1 from local DB - No se pudo eliminar el registro de archivo %1 de la base de datos local + File %1 downloaded but it resulted in a local file name clash! + ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! - - The download would reduce free local disk space below the limit - La descarga reduciría el espacio local disponible por debajo del límite + File %1 has invalid modified time reported by server. Do not save it. + El servidor reportó que el archivo %1 tiene una hora de modificación inválida. No lo guarde. - - Free space on disk is less than %1 - El espacio disponible en disco es menos del 1% + File has changed since discovery + El archivo ha cambiado desde que fue descubierto - - + File was deleted from server El archivo fue borrado del servidor - - The file could not be downloaded completely. - El archivo no pudo ser descargado por completo. - - - - The downloaded file is empty, but the server said it should have been %1. - El archivo descargado está vacío, pero el servidor dijo que debería tener %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - El servidor reportó que el archivo %1 tiene una hora de modificación inválida. No lo guarde. + Free space on disk is less than %1 + El espacio disponible en disco es menos del 1% - - File %1 downloaded but it resulted in a local file name clash! - ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! + The download would reduce free local disk space below the limit + La descarga reduciría el espacio local disponible por debajo del límite - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + The downloaded file is empty, but the server said it should have been %1. + El archivo descargado está vacío, pero el servidor dijo que debería tener %1. - The file %1 is currently in use El archivo %1 se encuentra en uso - - - File has changed since discovery - El archivo ha cambiado desde que fue descubierto + The file could not be downloaded completely. + El archivo no pudo ser descargado por completo. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - - - - ; Restoration Failed: %1 ; La Restauración Falló: %1 - A file or folder was removed from a read only share, but restoring failed: %1 Un archivo o carpeta fue eliminado de un elemento compartido de solo lectura, pero la restauracion falló: %1 @@ -4516,130 +3793,102 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - no fue posible borrar el archivo %1, error: %2 + Could not create folder %1 + No se pudo crear la carpeta %1 + + + Error updating metadata: %1 + Error al actualizar los metadatos: %1 - Folder %1 cannot be created because of a local file or folder name clash! ¡No se puede crear la carpeta %1 debido a un conflicto de nombre con un archivo o carpeta local! - - Could not create folder %1 - No se pudo crear la carpeta %1 + The file %1 is currently in use + El archivo %1 se encuentra en uso - - - - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 - - unknown exception - - - - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + could not delete file %1, error: %2 + no fue posible borrar el archivo %1, error: %2 - - The file %1 is currently in use - El archivo %1 se encuentra en uso + unknown exception + - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + No se pudo eliminar el registro de archivo %1 de la base de datos local + + Could not remove %1 because of a local file name clash No fue posible eliminar %1 porque hay un conflicto con el nombre de archivo local - - - Temporary error when removing local item removed from server. - - - - - Could not delete file record %1 from local DB - No se pudo eliminar el registro de archivo %1 de la base de datos local + - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - ¡No se puede renombrar la carpeta %1 debido a un conflicto de nombre con un archivo o carpeta local! - - - - File %1 downloaded but it resulted in a local file name clash! - ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! + Could not delete file record %1 from local DB + No se pudo eliminar el registro de archivo %1 de la base de datos local - - - + Could not get file %1 from local DB - + - - Error setting pin state Error al configurar el estado fijado - Error updating metadata: %1 Error al actualizar los metadatos: %1 - - The file %1 is currently in use - El archivo %1 está actualmente en uso - - - Failed to propagate directory rename in hierarchy No se pudo propagar el renombrado del directorio en la jerarquía - Failed to rename file No se pudo renombrar el archivo - - Could not delete file record %1 from local DB - No se pudo eliminar el registro de archivo %1 de la base de datos local + File %1 downloaded but it resulted in a local file name clash! + ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Código de HTTP equivocado regresado por el servidor. Se esperaba 204, pero se recibió "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + ¡No se puede renombrar la carpeta %1 debido a un conflicto de nombre con un archivo o carpeta local! + + + The file %1 is currently in use + El archivo %1 está actualmente en uso + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Código de HTTP equivocado regresado por el servidor. Se esperaba 204, pero se recibió "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El servidor devolvió un código HTTP erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -4647,203 +3896,152 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". + Error writing metadata to the database: %1 + Error al escribir los metadatos en la base de datos: %1 - Failed to encrypt a folder %1 No se pudo cifrar una carpeta %1 - - Error writing metadata to the database: %1 - Error al escribir los metadatos en la base de datos: %1 - - - The file %1 is currently in use El archivo %1 está actualmente en uso - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + No se pudo eliminar el registro de archivo %1 de la base de datos local + + + Could not get file %1 from local DB + + + Could not rename %1 to %2, error: %3 No se pudo renombrar %1 a %2, error: %3 - - + Error setting pin state + Error al configurar el estado fijado + + Error updating metadata: %1 Error al actualizar los metadatos: %1 - - + Error writing metadata to the database + Error al escribir los metadatos a la base de datos + + The file %1 is currently in use El archivo %1 está actualmente en uso - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - + Error updating metadata: %1 + Error al actualizar los metadatos: %1 - - Could not delete file record %1 from local DB - No se pudo eliminar el registro de archivo %1 de la base de datos local + Failed to unlock encrypted folder. + No se pudo desbloquear la carpeta cifrada. - - Error setting pin state - Error al configurar el estado fijado + Failed to upload encrypted file. + No se pudo cargar el archivo cifrado. - - Error writing metadata to the database - Error al escribir los metadatos a la base de datos - - - - OCC::PropagateUploadFileCommon - - - File %1 cannot be uploaded because another file with the same name, differing only in case, exists - El archivo %1 no puede ser cargado porque existe otro archivo con el mismo nombre, con diferencias en su uso de mayúsculas / minúsculas + File %1 cannot be uploaded because another file with the same name, differing only in case, exists + El archivo %1 no puede ser cargado porque existe otro archivo con el mismo nombre, con diferencias en su uso de mayúsculas / minúsculas - - - File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. - - Local file changed during syncing. It will be resumed. - El archivo local cambió durante la sincronización. Se resumirá. + File Removed (start upload) %1 + Archivo eliminado (comenzar la carga) %1 - - + Local file changed during sync. El archivo local cambio durante la sincronización. - - Failed to unlock encrypted folder. - No se pudo desbloquear la carpeta cifrada. - - - - Unable to upload an item with invalid characters - No se puede cargar un elemento con caracteres inválidos - - - - Error updating metadata: %1 - Error al actualizar los metadatos: %1 + Local file changed during syncing. It will be resumed. + El archivo local cambió durante la sincronización. Se resumirá. - The file %1 is currently in use El archivo %1 está actualmente en uso - - - Upload of %1 exceeds the quota for the folder - La carga de %1 excede la cuota de la carpeta - - - - Failed to upload encrypted file. - No se pudo cargar el archivo cifrado. + Unable to upload an item with invalid characters + No se puede cargar un elemento con caracteres inválidos - - File Removed (start upload) %1 - Archivo eliminado (comenzar la carga) %1 + Upload of %1 exceeds the quota for the folder + La carga de %1 excede la cuota de la carpeta - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + File is not accessible on the server. + server error + - - - The local file was removed during sync. - El archivo local se eliminó durante la sincronización. + + Folder is not accessible on the server. + server error + - Local file changed during sync. El archivo local cambió durante la sincronización. - - Poll URL missing - Falta la URL de encuesta - - - - Unexpected return code from server (%1) - Código de retorno del servidor inesperado (%1) - - - Missing File ID from server El ID de archivo no está en el servidor - - Folder is not accessible on the server. - server error - + Poll URL missing + Falta la URL de encuesta - - File is not accessible on the server. - server error - + The local file was removed during sync. + El archivo local se eliminó durante la sincronización. - + + Unexpected return code from server (%1) + Código de retorno del servidor inesperado (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + Local file changed during sync. + El archivo local cambió durante la sincronización - Poll URL missing Falta la URL de encuesta - The local file was removed during sync. El archivo local se eliminó durante la sincronización. - - Local file changed during sync. - El archivo local cambió durante la sincronización - - - The server did not acknowledge the last chunk. (No e-tag was present) El servidor no confirmó el último pedazo. (No hay una e-tag presente) @@ -4851,35 +4049,29 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ProxyAuthDialog - + Password: + Contraseña: + + Proxy authentication required Se requiere de autenticación del Proxy - - Username: - Nombre de usuario: - - - Proxy: Proxy: - The proxy server needs a username and password. El servidor de proxy necesita un usuario y contraseña. - - Password: - Contraseña: + Username: + Nombre de usuario: - + OCC::SelectiveSyncDialog - Choose What to Sync Elige qué sincronizar @@ -4887,78 +4079,103 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::SelectiveSyncWidget - - Loading … - Cargando ... + An error occurred while loading the list of sub folders. + Se presentó un error al cargar la lista de sub carpetas. - - + Deselect remote folders you do not wish to synchronize. Deselecciona las carpetas remotas que no desees sincronizar. - - Name - Nombre + Loading … + Cargando ... - - Size - Tamaño + Name + Nombre - - No subfolders currently on the server. Actualmente no hay subcarpetas en el servidor. - - An error occurred while loading the list of sub folders. - Se presentó un error al cargar la lista de sub carpetas. + Size + Tamaño - + OCC::ServerNotificationHandler - + Dismiss + Descartar + + Reply Responder + + + OCC::sesSnackBar - - Dismiss - Descartar + Error + Error - - - OCC::SettingsDialog - - Settings - Configuraciones + Success + + + + Warning + Advertencia + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud Configuración de %1 - + Account + Cuenta + + General General - - Account - Cuenta + New account + - + + Settings + Configuraciones + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Resultados de búsqueda global + + + No results found + No se encontraron resultados + + + Search globally + Búsqueda global + + OCC::ShareManager - Error Error @@ -4966,126 +4183,61 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ShareModel - %1 days - - - - - %1 day - + - 1 day - - - - - Today - + - - Secure file drop link - Enlace seguro para entrega de archivos + Could not find local folder for %1 + No se pudo encontrar una carpeta local para %1 - - - Share link - Compartir enlace + + Internal link + Enlace interno - Link share Compartir enlace - - Internal link - Enlace interno - - - Secure file drop Entrega de archivos segura - - Could not find local folder for %1 - No se pudo encontrar una carpeta local para %1 - - - - OCC::ShareeModel - - - - Search globally - Búsqueda global - - - - No results found - No se encontraron resultados + Secure file drop link + Enlace seguro para entrega de archivos - - Global search results - Resultados de búsqueda global + Share link + Compartir enlace - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Hoy - + OCC::SocketApi - - Context menu share - Compartir desde el menú contextual - - - - I shared something with you - Te compartí algo + Activity + Actividad - - - Share options - Opciones de uso compartido + Context menu share + Compartir desde el menú contextual - - Send private link by email … - Enviar enlace privado por correo electrónico ... + Copy internal link + Copiar enlace interno - Copy private link to clipboard Copiar la liga privada al portapapeles - - Failed to encrypt folder at "%1" - No se pudo cifrar la carpeta en "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - La cuenta %1 no tiene configurado el cifrado punto a punto. Por favor, configúrelo en su cuenta para habilitar el cifrado de carpetas. - - - - Failed to encrypt folder - No se pudo cifrar la carpeta - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5094,990 +4246,787 @@ Server replied with error: %2 El servidor respondió con el error: %2 - - Folder encrypted successfully - Carpeta cifrada exitosamente + Delete + Borrar - - The following folder was encrypted successfully: "%1" - La siguiente carpeta fue cifrada correctamente: "%1" + Delete local changes + Borrar cambios locales - - Select new location … - Seleccionar nueva ubicación ... + Encrypt + Cifrar - - - - File actions - + + Expires in %1 minutes + remaining time before lock expires + + + + - - - Activity - Actividad + Failed to encrypt folder + No se pudo cifrar la carpeta - - Leave this share - Dejar este recurso compartido + Failed to encrypt folder at "%1" + No se pudo cifrar la carpeta en "%1" - - Resharing this file is not allowed - No se permite volver a compartir este archivo + Folder encrypted successfully + Carpeta cifrada exitosamente - - Resharing this folder is not allowed - No se permite volver a compartir esta carpeta + I shared something with you + Te compartí algo - - Encrypt - Cifrar + Leave this share + Dejar este recurso compartido - Lock file Bloquear archivo - - Unlock file - Desbloquear archivo - - - Locked by %1 Bloqueado por %1 - - - Expires in %1 minutes - remaining time before lock expires - - - - - Resolve conflict … - Resolver conflicto … - - Move and rename … Mover y renombrar … - + Move and upload … + Mover y cargar ... + + Move, rename and upload … Mover, renombrar y cargar ... - - Delete local changes - Borrar cambios locales + Open in browser + Abrir en el navegador + + + Resharing this file is not allowed + No se permite volver a compartir este archivo - - Move and upload … - Mover y cargar ... + Resharing this folder is not allowed + No se permite volver a compartir esta carpeta - - Delete - Borrar + Resolve conflict … + Resolver conflicto … - - Copy internal link - Copiar enlace interno + Select new location … + Seleccionar nueva ubicación ... - - - Open in browser - Abrir en el navegador + Send private link by email … + Enviar enlace privado por correo electrónico ... - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Detalles del Certificado</h3> + Share options + Opciones de uso compartido - - Common Name (CN): - Nombre Común (CN): + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + La cuenta %1 no tiene configurado el cifrado punto a punto. Por favor, configúrelo en su cuenta para habilitar el cifrado de carpetas. - - Subject Alternative Names: - Nombres Alternativos del Asunto: + The following folder was encrypted successfully: "%1" + La siguiente carpeta fue cifrada correctamente: "%1" - - Organization (O): - Organización (O): + Unlock file + Desbloquear archivo + + + OCC::SslButton - - Organizational Unit (OU): - Unidad Organizacional (OU): + %1 + %1 - - State/Province: - Estado/Provincia: + %1 (self-signed) + %1 (auto-firmado) - - Country: - País: + <h3>Certificate Details</h3> + <h3>Detalles del Certificado</h3> - - Serial: - Serial: + <h3>Fingerprints</h3> + <h3>Huellas</h3> - <h3>Issuer</h3> <h3>Quien emitió</h3> - - Issuer: - Quien emitió: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Nota:</b> Este certificado fue aprobado manualmente</p> - - Issued on: - Reportado en: + Certificate information: + Información del certificado: + + + Common Name (CN): + Nombre Común (CN): + + + Country: + País: - Expires on: Expira el: - - <h3>Fingerprints</h3> - <h3>Huellas</h3> + Issued on: + Reportado en: - - SHA-256: - SHA-256: + Issuer: + Quien emitió: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + No hay soporte para tickets/identificadores de sesiones SSL - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Nota:</b> Este certificado fue aprobado manualmente</p> + Organization (O): + Organización (O): - - %1 (self-signed) - %1 (auto-firmado) + Organizational Unit (OU): + Unidad Organizacional (OU): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - Esta conexión fue encriptada usando %1 bit %2. - + SHA-256: + SHA-256: + + + Serial: + Serial: - Server version: %1 Versión del servidor: %1 - - No support for SSL session tickets/identifiers - No hay soporte para tickets/identificadores de sesiones SSL + State/Province: + Estado/Provincia: - - Certificate information: - Información del certificado: + Subject Alternative Names: + Nombres Alternativos del Asunto: - The connection is not secure La conexión no es segura + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Esta conexión NO es segura ya que no está encriptado. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Confiar en este certificado de cualquier modo + &lt;not specified&gt; + &lt;no especificado&gt; - - Untrusted Certificate - Certificado No de Confianza + Additional errors: + Errores adicionales: - Cannot connect securely to <i>%1</i>: No se puede conectar de forma segura a <i>%1</i>: - - Additional errors: - Errores adicionales: - - - - with Certificate %1 - con Certificado %1 + Country: %1 + País: %1 - - - - &lt;not specified&gt; - &lt;no especificado&gt; + Effective Date: %1 + Fecha Efectiva: %1 - - - Organization: %1 - Organización: %1 + Expiration Date: %1 + Fecha de Expiración: %1 - - - Unit: %1 - Unidad: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Huella digital (SHA-256): <tt>%1</tt> - - - Country: %1 - País: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Huella digital (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Huekka (SHA1):<tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Huella digital (SHA-256): <tt>%1</tt> + Issuer: %1 + Emitido por: %1 + + + Organization: %1 + Organización: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Huella digital (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Confiar en este certificado de cualquier modo - - Effective Date: %1 - Fecha Efectiva: %1 + Unit: %1 + Unidad: %1 - - Expiration Date: %1 - Fecha de Expiración: %1 + Untrusted Certificate + Certificado No de Confianza - - Issuer: %1 - Emitido por: %1 + with Certificate %1 + con Certificado %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (omitido por un error previo, intentando de nuevo en %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Solo tiene %1 disponible, se necesita de al menos %2 para iniciar - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - No fue posible abrir o crear la base de datos de sincronización local. Asegúrate de que tengas permisos de escritura en la carpeta de sincronización. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Espacio en disco bajo: Las descargas que podrían reducir el espacio por debajo de %1 se omitieron. + Cannot open the sync journal + No se puede abrir el diario de sincronización - - - There is insufficient space available on the server for some uploads. - No hay espacio disponible en el servidor para algunas cargas. + + Could not set file record to local DB: %1 + No se pudo establecer el registro del archivo en la base de datos local: %1 - - Unresolved conflict. - Conflicto no resuelto. + Could not update file metadata: %1 + No se pudieron actualizar los metadatos del archivo: %1 - Could not update file: %1 No se pudo actualizar el archivo: %1 - Could not update virtual file metadata: %1 No se pudieron actualizar los metadatos del archivo virtual: %1 - - Could not update file metadata: %1 - No se pudieron actualizar los metadatos del archivo: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Espacio en disco bajo: Las descargas que podrían reducir el espacio por debajo de %1 se omitieron. - - Could not set file record to local DB: %1 - No se pudo establecer el registro del archivo en la base de datos local: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Solo tiene %1 disponible, se necesita de al menos %2 para iniciar - - Using virtual files with suffix, but suffix is not set - Usando archivos virtuales con sufijo, pero el sufijo no está establecido + There is insufficient space available on the server for some uploads. + No hay espacio disponible en el servidor para algunas cargas. - - Unable to read the blacklist from the local database - No fue posible leer la lista negra de la base de datos local + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + No fue posible abrir o crear la base de datos de sincronización local. Asegúrate de que tengas permisos de escritura en la carpeta de sincronización. - Unable to read from the sync journal. No es posible leer desde el diario de sincronización. - - Cannot open the sync journal - No se puede abrir el diario de sincronización + Unable to read the blacklist from the local database + No fue posible leer la lista negra de la base de datos local - - - OCC::SyncStatusSummary - - - - Offline - Sin conexión + Unresolved conflict. + Conflicto no resuelto. - - You need to accept the terms of service - + Using virtual files with suffix, but suffix is not set + Usando archivos virtuales con sufijo, pero el sufijo no está establecido + + + OCC::SyncStatusSummary - - Reauthorization required - + %1 of %2 + %1 de %2 - - Please grant access to your sync folders - + %1 of %2 · %3 left + %1 de %2 · %3 restantes - - - All synced! ¡Todo está sincronizado! - - Some files couldn't be synced! - ¡Algunos archivos no pudieron sincronizarse! + Checking folder changes + Comprobando cambios en la carpeta + + + Offline + Sin conexión - See below for errors Ver los errores abajo - - Checking folder changes - Comprobando cambios en la carpeta + See below for warnings + Ver las advertencias abajo - - Syncing changes - Sincronizando cambios - - - - Sync paused - Sincronización pausada + Some files could not be synced! + ¡Algunos archivos no pudieron sincronizarse! - - Some files could not be synced! + Some files couldn't be synced! ¡Algunos archivos no pudieron sincronizarse! - - See below for warnings - Ver las advertencias abajo + Sync paused + Sincronización pausada - Syncing Sincronizando - - %1 of %2 · %3 left - %1 de %2 · %3 restantes - - - - %1 of %2 - %1 de %2 + Syncing changes + Sincronizando cambios - Syncing file %1 of %2 Sincronizando archivo %1 de %2 - - - No synchronisation configured - + + You need to accept the terms of service + - + OCC::Systray - + Add account + Agregar cuenta + + Download Descargar - - Add account - Agregar cuenta + Exit %1 + Salir de %1 + + + Help + Ayuda - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. - + - - Pause sync Pausar sincronización - - + Pause sync for all + Pausar sincronización para todos + + Resume sync Reanudar sincronización - + Resume sync for all + Reanudar sincronización para todos + + Settings Configuraciones + + + OCC::TermsOfServiceCheckWidget - - Help - Ayuda + Copy Link + Copiar enlace + + + Link copied to clipboard. + Enlace copiado al portapapeles. - - Exit %1 - Salir de %1 + Open Browser + - - Pause sync for all - Pausar sincronización para todos + Polling + - - Resume sync for all - Reanudar sincronización para todos + Waiting for terms to be accepted + - + - OCC::TermsOfServiceCheckWidget + OCC::Theme - - Waiting for terms to be accepted - + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + - - Polling - + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Usando el complemento para archivos virtuales: %1</small></p> - - Link copied to clipboard. - + <p>This release was supplied by %1.</p> + <p>Esta versión fue suministrada por %1.</p> - - Open Browser - + ExpandMemory-Link + - - Copy Link - + ExpandMemory-Link_STRATO + - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - + Help-Link + - - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - + Help-Link_STRATO + - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Usando el complemento para archivos virtuales: %1</small></p> + LegalNotice-Link + - - <p>This release was supplied by %1.</p> - <p>Esta versión fue suministrada por %1.</p> + LegalNotice-Link_STRATO + - + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. No se pudieron obtener los proveedores. - Failed to fetch search providers for '%1'. Error: %2 No se pudieron obtener los proveedores de búsqueda para '%1'. Error: %2 - - Search has failed for '%2'. - La búsqueda falló para '%2'. - - - Search has failed for '%1'. Error: %2 La búsqueda falló para '%1'. Error: %2 - + + Search has failed for '%2'. + La búsqueda falló para '%2'. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - No se pudieron actualizar los metadatos de la carpeta. + Failed to finalize item. + No se pudo finalizar el ítem. - - + Failed to unlock encrypted folder. No se pudo desbloquear la carpeta cifrada. - - Failed to finalize item. - No se pudo finalizar el ítem. + Failed to update folder metadata. + No se pudieron actualizar los metadatos de la carpeta. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Error al actualizar los metadatos de una carpeta %1 + Could not add or remove user %1 to access folder %2 + No se pudo añadir o eliminar al usuario %1 para acceder a la carpeta %2 - Could not fetch public key for user %1 No se pudo obtener la llave pública para el usuario %1 - Could not find root encrypted folder for folder %1 No se pudo encontrar la raíz de la carpeta cifrada para la carpeta %1 - - Could not add or remove user %1 to access folder %2 - No se pudo añadir o eliminar al usuario %1 para acceder a la carpeta %2 + Error updating metadata for a folder %1 + Error al actualizar los metadatos de una carpeta %1 - Failed to unlock a folder. No se pudo desbloquear una carpeta. OCC::User - - - End-to-end certificate needs to be migrated to a new one - - - - - Trigger the migration - - - %n notification(s) - - - - - - “%1” was not synchronized - - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - - - - - Insufficient storage on the server. The file requires %1. - - - - - Insufficient storage on the server. - - - - - There is insufficient space available on the server for some uploads. - - - - - Retry all uploads - Reintentar todas las subidas + + + + - - - Resolve conflict - Resolver conflicto - - - - Rename file - - - - - Public Share Link - + End-to-end certificate needs to be migrated to a new one + - Open %1 Assistant in browser The placeholder will be the application name. Please keep it - + - Open %1 Talk in browser The placeholder will be the application name. Please keep it - - - - - Open %1 Assistant - The placeholder will be the application name. Please keep it - + - - Assistant is not available for this account. - - - - - Assistant is already processing a request. - + Public Share Link + - - Sending your request… - + Quota Warning - %1 percent or more storage in use + - - - Sending your request … - + + Quota is updated; %1 percent of the total space is used. + - - No response yet. Please try again later. - + Rename file + Renombrar archivo - - No supported assistant task types were returned. - + Resolve conflict + Resolver conflicto - - Waiting for the assistant response… - + Retry all uploads + Reintentar todas las subidas - - Assistant request failed (%1). - + Trigger the migration + + + + OCC::UserModel - - Quota is updated; %1 percent of the total space is used. - + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>¿Realmente desea eliminar la conexión a la cuenta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> eliminará ningún archivo.</p> - - Quota Warning - %1 percent or more storage in use - + Cancel + Cancelar - - - OCC::UserModel - Confirm Account Removal Confirmar la eliminación de la cuenta - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>¿Realmente desea eliminar la conexión a la cuenta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> eliminará ningún archivo.</p> + Leave share + - + Remove account + + + Remove connection Eliminar conexión + + + OCC::UserStatusSelectorModel + + %n day(s) + + + + + + + %n hour(s) + + + + + + + %n minute(s) + + + + + - - Cancel - Cancelar + 1 hour + 1 hora - - Leave share - + 30 minutes + 30 minutos - - Remove account - + 4 hours + 4 horas + + + Could not clear status message. Make sure you are connected to the server. + No se pudo limpiar el mensaje de estado. Asegúrese de estar conectado al servidor. - - - OCC::UserStatusSelectorModel - Could not fetch predefined statuses. Make sure you are connected to the server. No se pudieron obtener los estados predefinidos. Asegúrese de estar conectado al servidor. - Could not fetch status. Make sure you are connected to the server. No se pudo obtener el estado. Asegúrese de estar conectado al servidor. - - Status feature is not supported. You will not be able to set your status. - La característica de estados no está soportada. No podrá establecer su estado. - - - - Emojis are not supported. Some status functionality may not work. - Los emoticonos no están soportados. Algunas funcionalidades de estado pueden no funcionar. - - - Could not set status. Make sure you are connected to the server. No se pudo establecer el estado. Asegúrese de estar conectado al servidor. - - Could not clear status message. Make sure you are connected to the server. - No se pudo limpiar el mensaje de estado. Asegúrese de estar conectado al servidor. - - - - Don't clear No limpiar - - 30 minutes - 30 minutos - - - - 1 hour - 1 hora + Emojis are not supported. Some status functionality may not work. + Los emoticonos no están soportados. Algunas funcionalidades de estado pueden no funcionar. - - 4 hours - 4 horas + Less than a minute + Menos de un minuto - - - Today - Hoy + Status feature is not supported. You will not be able to set your status. + La característica de estados no está soportada. No podrá establecer su estado. - - This week Esta semana - - Less than a minute - Menos de un minuto - - - - %n minute(s) - - - - - %n hour(s) - - - - - %n day(s) - + Today + Hoy - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. - - - - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + - Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + + + OCC::VfsDownloadErrorDialog - - Download error - Error al descargar + %1 could not be downloaded. + no se pudo descargar %1. - - - Error downloading - Error al descargar + + > More details + > Más detalles - Could not be downloaded - + - - > More details - > Más detalles + Download error + Error al descargar - - More details - Más detalles + Error downloading + Error al descargar - Error downloading %1 Error al descargar %1 - - %1 could not be downloaded. - no se pudo descargar %1. + More details + Más detalles - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida @@ -6085,8 +5034,6 @@ El servidor respondió con el error: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida @@ -6094,12 +5041,10 @@ El servidor respondió con el error: %2 OCC::WebEnginePage - Invalid certificate detected Certificado inválido detectado - The host "%1" provided an invalid certificate. Continue? El anfitrión "%1" proporcionó un certificado inválido. ¿Continuar? @@ -6107,769 +5052,642 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Ha sido cerrada la sesión de su cuenta %1 en %2. Por favor, inicie sesión de nuevo. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formulario - - Log in - Iniciar sesión - - - - Sign up with provider - Registrarse con un proveedor + Host your own server + Aloje su propio servidor - - + Keep your data secure and under your control Mantenga sus datos seguros y bajo control - - Secure collaboration & file exchange - Colaboración segura e intercambio de archivos - - - - Easy-to-use web mail, calendaring & contacts - Correo web, calendario y contactos fáciles de usar - - - - Screensharing, online meetings & web conferences - Compartir pantalla, reuniones en línea y conferencias web + Log in + Iniciar sesión - - Host your own server - Aloje su propio servidor + Sign up with provider + Registrarse con un proveedor - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - + HTTP(S) proxy + Proxy HTTP(S) - Hostname of proxy server - + Nombre del servidor proxy - - Username for proxy server - - - - Password for proxy server - + Contraseña del servidor proxy - - HTTP(S) proxy - + Proxy Settings + Dialog window title for proxy settings + Configuraciones del Proxy - SOCKS5 proxy - + Proxy SOCKS5 - + + Username for proxy server + Nombre de usuario del servidor proxy + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Por favor inicia sesión + &Local Folder + Carpeta &Local - - - There are no sync folders configured. - No se han configurado carpetas para sincronizar + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si esta opción está seleccionada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marques esta opción si el contenido local debe ser cargado a la carpeta de los servidores.</p></body></html> - - Disconnected from %1 - Desconectado de %1 + Ask before syncing folders larger than + Preguntar antes sincronizar carpetas mayores a - - Unsupported Server Version - Versión del Servidor No Soportada + Choose different folder + Elegir una carpeta diferente - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - El servidor de la cuenta %1 ejecuta una versión no soportada %2. Usar este cliente con versiones del servidor no soportadas no ha sido probado y puede ser peligroso. Proceda bajo su propio riesgo. + Choose what to sync + Elige qué sincronizar - - Terms of service - + Erase local folder and start a clean sync + Borrar la carpeta local y comenzar una sincronización limpia - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - + Keep local data + Mantener los datos locales - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - + Local Folder + Carpeta local - - macOS VFS for %1: Sync is running. - macOS VFS para %1: Sincronización en progreso. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Last sync was successful. - macOS VFS para %1: La última sincronización fue exitosa. + Server address + Dirección del servidor - - macOS VFS for %1: A problem was encountered. - macOS VFS para %1: Ocurrió un problema. + Sync Logo + Logotipo de sincronización - - macOS VFS for %1: An error was encountered. - + Synchronize everything from server + Sincronizar todo desde el servidor - - Checking for changes in remote "%1" - Buscando cambios en el remoto "%1" + Username + Nombre de usuario + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Buscando cambios en el local "%1" + &Password + &Contraseña - - - Internal link copied - + + &Username + &Nombre de Usuario + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Dirección del servidor - - Disconnected from accounts: - Desconectado de las cunetas: + This is the link to your %1 web interface when you open it in the browser. + Este es el enlace a su interfaz web de %1 cuando lo abre en el navegador. + + + progress - - Account %1: %2 - Cuenta %1 : %2 + Deleted + Borrado - - Account synchronization is disabled - La sincronización de cuentas está deshabilitada + Deleting + Eliminando - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Descargado - - - OwncloudAdvancedSetupPage - - Username - Nombre de usuario + Downloading + Descargando - - Local Folder - Carpeta local + Error + Error - - Choose different folder - Elegir una carpeta diferente + Filesystem access error + Error de acceso al sistema de archivos - - Server address - Dirección del servidor + Ignored + Ignorado - - Sync Logo - Logotipo de sincronización + Ignoring + Ignorando - - Synchronize everything from server - Sincronizar todo desde el servidor + Moved to %1 + Se movió a %1 - - Ask before syncing folders larger than - Preguntar antes sincronizar carpetas mayores a + Moving + Moviendo - - Ask before syncing external storages - Preguntar antes de sincronizar almacenamientos externos + Replaced by virtual file + Reemplazado por un archivo virtual - - Keep local data - Mantener los datos locales + Server version downloaded, copied changed local file into case conflict conflict file + Versión del servidor descargada, archivo local modificado copiado al archivo en conflicto de mayúsculas/minúsculas - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Si esta opción está seleccionada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marques esta opción si el contenido local debe ser cargado a la carpeta de los servidores.</p></body></html> + Server version downloaded, copied changed local file into conflict file + Versión del servidor descargada, se copío el archivo local cambiado a un archivo en conflicto - - Erase local folder and start a clean sync - Borrar la carpeta local y comenzar una sincronización limpia + Unknown + Desconocido - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated end-to-end encryption metadata + - - Choose what to sync - Elige qué sincronizar + Updated local metadata + Actualizando los metadatos locales - - &Local Folder - Carpeta &Local + Updated local virtual files metadata + Metadatos de los archivos virtuales locales actualizados - - - OwncloudHttpCredsPage - - &Username - &Nombre de Usuario + Updating end-to-end encryption metadata + + + + Updating local metadata + Actualizando los metadatos locales - - &Password - &Contraseña + Updating local virtual files metadata + Actualizando los metadatos locales de los archivos virtuales - - - OwncloudSetupPage - - Logo - Logotipo + Uploaded + Cargado - - Server address - Dirección del servidor + Uploading + Cargando - - This is the link to your %1 web interface when you open it in the browser. - Este es el enlace a su interfaz web de %1 cuando lo abre en el navegador. + Virtual file created + Archivo virtual creado - + ProxySettings - Form - + Formulario - - Proxy Settings - + Host + Servidor - Manually specify proxy - + Especificar proxy manualmente - - Host - + No proxy + Sin proxy - - - Proxy server requires authentication - + + Note: proxy settings have no effects for accounts on localhost + Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local - - Note: proxy settings have no effects for accounts on localhost - + Proxy Settings + Configuraciones del Proxy - - Use system proxy - + Proxy server requires authentication + El servidor Proxy requiere de autenticación - - No proxy - + Use system proxy + Usar el sistema de proxy - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %ndía%ndías%ndías - - - - in the future - en el futuro + + %ndía + %ndías + - %nh delay in hours after an activity - %nhora%nhoras%nhoras + + %nhora + %nhoras + - - - now - ahora + + %nmin + delay in minutes after an activity + + + + - 1min one minute after activity date and time - - - - - %nmin - delay in minutes after an activity - + - - Some time ago - Hace algún tiempo + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! - - New folder - Nueva carpeta + Error deleting the file + - Failed to create debug archive No se pudo crear el archivo de depuración - - Could not create debug archive in selected location! - ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! - - - - Could not create debug archive in temporary location! - + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + - - Could not remove existing file at destination! - + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + - - Could not move debug archive to selected location! - + New folder + Nueva carpeta - - You renamed %1 - Renombró %1 + Paths beginning with '#' character are not supported in VFS mode. + Las rutas que empiecen con el caracter '#' no están soportadas en el modo VFS. - - You deleted %1 - Eliminó %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + - - You created %1 - Creó %1 + Some time ago + Hace algún tiempo - - You changed %1 - Cambió %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + - Synced %1 Sincronizado %1 - - Error deleting the file - + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + - - Paths beginning with '#' character are not supported in VFS mode. - Las rutas que empiecen con el caracter '#' no están soportadas en el modo VFS. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - + The server does not recognize the request method. Please contact your server administrator for help. + - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - + The server does not support the version of the connection being used. Contact your server administrator for help. + - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - + This file type isn’t supported. Please contact your server administrator for assistance. + - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + - - This file type isn’t supported. Please contact your server administrator for assistance. - + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - + You changed %1 + Cambió %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - + You created %1 + Creó %1 - - The server does not recognize the request method. Please contact your server administrator for help. - + You deleted %1 + Eliminó %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + - - The server does not support the version of the connection being used. Contact your server administrator for help. - + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - + You renamed %1 + Renombró %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - + - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - + in the future + en el futuro - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + now + ahora - + ResolveConflictsDialog - - - Solve sync conflicts - Resolver los conflictos de sincronización - - %1 files in conflict indicate the number of conflicts to resolve - - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Elija si quiere mantener la versión local, la versión del servidor o ambas. Si elige ambas, el archivo local tendrá un número añadido a su nombre. + + + + - All local versions Todas las versiones locales - All server versions Todas las versiones del servidor - + Cancel + Cancelar + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Elija si quiere mantener la versión local, la versión del servidor o ambas. Si elige ambas, el archivo local tendrá un número añadido a su nombre. + + Resolve conflicts Resolver conflictos - - Cancel - Cancelar + Solve sync conflicts + Resolver los conflictos de sincronización + + + + SesErrorBox + + Error + Error + + SesTrayHeader + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + ShareDelegate - Copied! ¡Copiado! + + Share options + Opciones de uso compartido + ShareDetailsPage - - An error occurred setting the share password. - Ocurrió un error al establecer la contraseña del recurso compartido - - - - Edit share - Editar recurso compartido + Add another link + Añadir otro enlace - - Share label - Etiqueta del recurso compartido + Allow resharing + Permitir volver a compartir - - Allow upload and editing Permitir la carga y edición - - View only - Sólo lectura + An error occurred setting the share password. + Ocurrió un error al establecer la contraseña del recurso compartido - - File drop (upload only) - Soltar archivo (sólo carga) + Copy share link + Copiar enlace de uso compartido + + + Custom Permissions + - - Allow resharing - Permitir volver a compartir + Enter a note for the recipient + + + + File drop (upload only) + Soltar archivo (sólo carga) - Hide download Ocultar descarga - + Note to recipient + Nota al destinatario + + Password protection - + - Set expiration date Establecer fecha de caducidad - - Note to recipient - Nota al destinatario - - - - Enter a note for the recipient - + Share link copied! + ¡Enlace de uso compartido copiado! - Unshare Dejar de compartir - - Add another link - Añadir otro enlace + View only + Sólo lectura + + + ShareeSearchField - - Share link copied! - ¡Enlace de uso compartido copiado! + Search for users or groups… + Buscar usuarios o grupos... - - Copy share link - Copiar enlace de uso compartido + Sharing is not available for this folder + Compartir no está disponible para esta carpeta ShareView - + Expires in %1 + + + Password required for new share Se requiere una contraseña para el nuevo recurso compartido - Share password Contraseña del recurso compartido - Shared with you by %1 - + - - Expires in %1 - - - - Sharing is disabled Compartir está deshabilitado - - This item cannot be shared. - No se puede compartir este elemento. - - - Sharing is disabled. Compartir está deshabilitado. - - - ShareeSearchField - - - Search for users or groups… - Buscar usuarios o grupos... - - - - Sharing is not available for this folder - Compartir no está disponible para esta carpeta + + This item cannot be shared. + No se puede compartir este elemento. - + SyncJournalDb - Failed to connect database. No se pudo conectar a la base de datos. @@ -6877,35 +5695,25 @@ El servidor respondió con el error: %2 SyncStatus - - Sync now - Sincronizar ahora + Open browser + - - + Resolve conflicts Resolver conflictos - - Open browser - - - - - Open settings - + Sync now + Sincronizar ahora - + TalkReplyTextField - Reply to … Responder a ... - Send reply to chat message Enviar respuesta al mensaje de chat @@ -6913,76 +5721,176 @@ El servidor respondió con el error: %2 TermsOfServiceCheckWidget - - Terms of Service - - - - Logo - + Logotipo - Switch to your browser to accept the terms of service - + - + + Terms of Service + + + - TrayFoldersMenuButton + theme - - Open local folder - Abrir carpeta local + Error occurred during setup + Ocurrió un error durante la configuración - - Open local or team folders - + Error occurred during sync + Ocurrió un error durante la sincronización - - Open local folder "%1" - Abrir carpeta local "%1" + Preparing to sync + Preparando para sincronizar - - Open team folder "%1" - + Stopping sync + Deteniendo la sincronización - - Open %1 in file explorer - Abrir %1 en el explorador de archivos + Sync is paused + La sincronización está pausada + + + Sync is running + La Sincronización está en curso - - User group and local folders menu - Menú de carpetas de grupo de usuarios y local + Sync status is unknown + Estado de sincronización desconocido - - - TrayWindowHeader - - Open local or team folders - + Sync was successful + La sincronización fue exitosa - - More apps - + Sync was successful but some files were ignored + La sincronización fue exitosa pero algunos archivos fueron ignorados - - Open %1 in browser - + Waiting to start syncing + Esperando para empezar la sincronización + + + + TrayFoldersMenuButton + + Files + + + + Open %1 in file explorer + Abrir %1 en el explorador de archivos + + + Open local folder + Abrir carpeta local + + + Open local folder "%1" + Abrir carpeta local "%1" + + + Open local or team folders + + + + Open team folder "%1" + + + + User group and local folders menu + Menú de carpetas de grupo de usuarios y local + + TrayWindowAccountMenu + + Account switcher and settings menu + + + + Add account + + + + Current account + Cuenta actual + + + Current account avatar + Avatar de la cuenta actual + + + Current account status is do not disturb + El estado actual de la cuenta es no molestar + + + Current account status is online + El estado actual de la cuenta es en línea + + + Exit + Salir + + + Pause sync for all + Pausar sincronización para todos + + + Resume sync for all + Reanudar sincronización para todos + + + Settings + + + + + TrayWindowHeader + + More apps + + + + Open %1 in browser + + + + Open local or team folders + + + + + TrayWindowHeaderBar + + More apps + + + + Open %1 in browser + + + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Buscar archivos, mensajes, eventos ... @@ -6990,15 +5898,13 @@ El servidor respondió con el error: %2 UnifiedSearchPlaceholderView - Start typing to search - + UnifiedSearchResultFetchMoreTrigger - Load more results Cargar más resultados @@ -7006,7 +5912,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Esqueleto de resultados de búsqueda. @@ -7014,7 +5919,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultListItem - Load more results Cargar más resultados @@ -7022,7 +5926,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultNothingFound - No results for No hay resultados para @@ -7030,7 +5933,6 @@ El servidor respondió con el error: %2 UnifiedSearchResultSectionItem - Search results section %1 Sección de resultados de búsqueda %1 @@ -7038,518 +5940,217 @@ El servidor respondió con el error: %2 UserLine - - Switch to account - Cambiar a la cuenta - - - - Current account status is online - El estado actual de la cuenta es en línea - - - - Current account status is do not disturb - El estado actual de la cuenta es no molestar - - - - Account sync status requires attention - - - - Account actions Acciones de la cuenta - - Set status - Establecer estado - - - - Status message - + Log in + Iniciar sesión - Log out Salir de la sesión - - Log in - Iniciar sesión + Remove account + - + + Switch to account + Cambiar a la cuenta + + UserStatusMessageView - - Status message - + Apply + Aplicar - - - What is your status? - + + Cancel + Cancelar - - Clear status message after - + Clear + - - Cancel - + Clear status message after + - - Clear - + Status message + - - Apply - + What is your status? + - + UserStatusSetStatusView - - Online status - - - - - Online - + Appear offline + - Away - + - Busy - + - Do not disturb - + + + + Invisible + - Mute all notifications - + - - Invisible - + Online + - - Appear offline - + Online status + - Status message - + Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - - - - - %n month(s) - - - - %n day(s) - + + + + - %n hour(s) - + + + + - %n minute(s) - + + + + - - %n second(s) - - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - El encabezado de la suma de comprobación está mal formado. - - - - The checksum header contained an unknown checksum type "%1" - El encabezado de suma de comprobación contiene un tipo de comprobación desconocido "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - El archivo descargado no coincide con la suma de comprobación, se reanudará. "%1" != "%2" - - - - main.cpp - - - System Tray not available - La Bandeja del Sistema no está disponible. - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 requiere una bandeja del sistema en funcionamiento. Si está usando XFCE, siga <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">estas instrucciones</a>. De lo contrario, instale una bandeja del sistema como "trayer" y vuelva a intentarlo. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Construido de la revisión Git <a href="%1">%2</a> en %3, %4 usando Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Archivo virtual creado - - - - Replaced by virtual file - Reemplazado por un archivo virtual - - - - Downloaded - Descargado - - - - Uploaded - Cargado - - - - Server version downloaded, copied changed local file into conflict file - Versión del servidor descargada, se copío el archivo local cambiado a un archivo en conflicto - - - - Server version downloaded, copied changed local file into case conflict conflict file - Versión del servidor descargada, archivo local modificado copiado al archivo en conflicto de mayúsculas/minúsculas - - - - Deleted - Borrado - - - - Moved to %1 - Se movió a %1 - - - - Ignored - Ignorado - - - - Filesystem access error - Error de acceso al sistema de archivos - - - - - Error - Error - - - - Updated local metadata - Actualizando los metadatos locales - - - - Updated local virtual files metadata - Metadatos de los archivos virtuales locales actualizados - - - - Updated end-to-end encryption metadata - - - - - - Unknown - Desconocido - - - - Downloading - Descargando - - - - Uploading - Cargando - - - - Deleting - Eliminando - - - - Moving - Moviendo - - - - Ignoring - Ignorando - - - - Updating local metadata - Actualizando los metadatos locales + %n month(s) + + + + - - - Updating local virtual files metadata - Actualizando los metadatos locales de los archivos virtuales + + %n second(s) + + + + - - - Updating end-to-end encryption metadata - + + %n year(s) + + + + - + - theme - - - Sync status is unknown - Estado de sincronización desconocido - - - - Waiting to start syncing - Esperando para empezar la sincronización - - - - Sync is running - La Sincronización está en curso - - - - Sync was successful - La sincronización fue exitosa - - - - Sync was successful but some files were ignored - La sincronización fue exitosa pero algunos archivos fueron ignorados - - - - Error occurred during sync - Ocurrió un error durante la sincronización - - - - Error occurred during setup - Ocurrió un error durante la configuración - - - - Stopping sync - Deteniendo la sincronización - + utility - - Preparing to sync - Preparando para sincronizar + Always available locally + Disponible localmente siempre - - Sync is paused - La sincronización está pausada + Available online only + Disponible sólo en línea - - - utility - Could not open browser No fue posible abrir el navegador - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Se presentó un error al abir el navegador para ir a la URL %1. ¿Tal vez no hay un navegador por omisión cofigurado? - - - Could not open email client No fue posible abir el cliente de correo electrónico - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Se presentó un error al abrir el cliente de correo electrónico para crear un nuevo mensaje. ¿Tal vez no se ha configurado un cliente de correo electrónico por defecto? - - - - Always available locally - Disponible localmente siempre - - - Currently available locally Disponible localmente ahora - - Some available online only - Algunos sólo disponibles en línea - - - - Available online only - Disponible sólo en línea - - - - Make always available locally - Hacer que esté siempre disponible localmente - - - Free up local space Liberar espacio local - - - FileProviderEvictionDialog - - - Remove local copies - - - - - Local copies - - - - - Reload - Recargar + + Make always available locally + Hacer que esté siempre disponible localmente - - - FileProviderStorageInfo - - Local storage use - Uso de almacenamiento local + Some available online only + Algunos sólo disponibles en línea - - %1 GB of %2 GB remote files synced - %1 GB de %2 GB de archivos remotos sincronizados + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Se presentó un error al abir el navegador para ir a la URL %1. ¿Tal vez no hay un navegador por omisión cofigurado? - - Free up space … - + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Se presentó un error al abrir el cliente de correo electrónico para crear un nuevo mensaje. ¿Tal vez no se ha configurado un cliente de correo electrónico por defecto? - + - FileProviderSyncStatus - - - Syncing - Sincronizando - + ValidateChecksumHeader - - All synced! - ¡Todo está sincronizado! + The checksum header contained an unknown checksum type "%1" + El encabezado de suma de comprobación contiene un tipo de comprobación desconocido "%1" - - Request sync - + The checksum header is malformed. + El encabezado de la suma de comprobación está mal formado. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + El archivo descargado no coincide con la suma de comprobación, se reanudará. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_fr.ts b/translations/client_fr.ts index 8d5bfb287e102..d82c9cf7fad19 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Ouvrir %1 localement - - - In %1 Dans %1 - + + Open %1 locally + Ouvrir %1 localement + + ActivityItemContent - - Open file details - Ouvrir les détails du fichier - - - - File details - Détails du fichier - - - - File actions - Actions sur les fichiers - - - Dismiss Rejeter - + + Open file details + Ouvrir les détails du fichier + + ActivityList - Activity list Liste des activités - - Scroll to top - Défiler vers le haut - - - No activities yet Pas encore d'activité - + + Scroll to top + Défiler vers le haut + + CallNotificationDialog - - Talk notification caller avatar - Avatar de l'appelant de la notification Talk - - - Answer Talk call notification Répondre à la notification d'appel de Talk - Decline Décliner - Decline Talk call notification Décliner la notification d'appel de Talk - + + Talk notification caller avatar + Avatar de l'appelant de la notification Talk + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Vérification des modifications dans "%1" - - Syncing %1 of %2 (%3 left) - Synchronisation de %1 sur %2 (%3 restant) - - - - Syncing %1 of %2 - Synchronisation de %1 sur %2 - - - - Syncing %1 (%2 left) - Synchronisation de %1 (%2 restant) + Help + Aide - - Syncing %1 - Synchronisation de %1 + Log out + Se déconnecter - - No recently changed files Aucun fichier modifié récemment - - Sync paused - Synchronisation en pause - - - - Syncing - Synchronisation en cours - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Ouvrir %1 Desktop - Open in browser Ouvrir dans le navigateur - - Recently changed - Modifié récemment - - - Pause synchronization Suspendre la synchronisation - - Help - Aide + Quit sync client + Quitter le client de synchro + + + Recently changed + Modifié récemment - Settings Paramètres - - Log out - Se déconnecter + Sync paused + Synchronisation en pause - - Quit sync client - Quitter le client de synchro + Syncing + Synchronisation en cours - + + Syncing %1 + Synchronisation de %1 + + + Syncing %1 (%2 left) + Synchronisation de %1 (%2 restant) + + + Syncing %1 of %2 + Synchronisation de %1 sur %2 + + + Syncing %1 of %2 (%3 left) + Synchronisation de %1 sur %2 (%3 restant⸱s) + + ConflictDelegate - Local version Version locale - Server version Version serveur @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Compte actuel - - - - - Resume sync for all - Reprendre la synchronisation pour tous - - - - - Pause sync for all - Mettre en pause la synchronisation pour tous + Account switcher and settings menu + Sélecteur de compte et menu de paramètres - - + Add account Ajouter un compte - Add new account Ajouter un nouveau compte - - Settings - Paramètres - - - - Exit - Quitter + Current account + Compte actuel - Current account avatar Avatar du compte actuel - + Current account status is do not disturb + Le statuts de compte actuel est ne pas déranger + + Current account status is online Le statuts de compte actuel est en ligne - - Current account status is do not disturb - Le statuts de compte actuel est ne pas déranger + Exit + Quitter - - Account switcher and settings menu - Sélecteur de compte et menu de paramètres + Pause sync for all + Mettre en pause la synchronisation pour tous - + + Resume sync for all + Reprendre la synchronisation pour tous + + + Settings + Paramètres + + EditFileLocallyLoadingDialog - Opening file for local editing Ouverture du fichier pour édition locale @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis Pas d'émojis récents @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Découverte des certificats stockés sur votre jeton USB @@ -266,44 +210,42 @@ ErrorBox - Error Erreur - - FileActionsWindow - - - File actions for %1 - - - FileDetailsPage - - Activity - Activité - - - - Sharing - Partage + Dismiss + FileDetailsWindow - File details of %1 · %2 Détails du fichier de %1 · %2 + + FileProviderEvictionDialog + + Local copies + Copies locales + + + Reload + Recharger + + + Remove local copies + Supprimer les copies locales + + FileProviderFileDelegate - Delete Supprimer @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Paramètres des fichiers virtuels + Enable virtual files + Activer les fichiers virtuels - General settings Paramètres généraux - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - Les fichiers virtuels apparaissent comme des fichiers classiques, sauf qu’ils n’occupent pas d’espace de stockage local. Leur contenu se télécharge automatiquement lors de l’ouverture. Les fichiers virtuels et la synchronisation classique ne peuvent pas être utilisés en même temps. + Reset virtual files environment + Réinitialiser l'environnement de fichiers virtuels + + + Virtual files settings + Paramètres des fichiers virtuels + + + FileProviderStorageInfo - - Enable virtual files - Activer les fichiers virtuels + %1 GB of %2 GB remote files synced + %1 Go sur %2 Go de fichiers distants synchronisés - - Reset virtual files environment - Réinitialiser l'environnement de fichiers virtuels + Free up space … + Libérer de l’espace… - + + Local storage use + Utilisation du stockage local + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Erreur lors de la suppression de "%1" : %2 + All synced! + Tout est synchronisé ! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Synchroniser les modifications pour l'environnement VFS. + macOS peut ignorer ou retarder cette demande. + + Request sync + Synchroniser + + + Syncing + Synchronisation + + + + FileSystem - Could not remove folder "%1" Impossible de supprimer le dossier "%1" - + + Error removing "%1": %2 + Erreur lors de la suppression de "%1" : %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Une erreur est survenue pendant la connexion. Veuillez ré-essayer. + + Browser Authentication Authentification avec le navigateur Internet - + Copy Link + Copier le lien + + Logo Logo - Switch to your browser to connect your account Basculez sur votre navigateur pour connecter votre compte + + + FolderWizardSelectiveSync + + Add Folder Sync + + - - An error occurred while connecting. Please try again. - Une erreur est survenue pendant la connexion. Veuillez ré-essayer. + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Sélectionnez un dossier local de votre ordinateur à synchroniser + &Choose + + + + Add Folder Sync + - - &Choose … - &Sélectionner … + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Veuillez sélectionner un dossier distant + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Créer un dossier - + Folders + Dossiers + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Rafraîchir - - Folders - Dossiers + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Contenu principal - - Issue with account %1 - Problème avec le compte %1 + New activities + Nouvelles activités - - - Issues with several accounts - Problèmes avec plusieurs comptes + + Unified search results list + Liste des résultats de la recherche unifiée + + + nextcloudTheme::aboutInfo() - - Start new conversation? - + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Généré à partir de la révision Git <a href="%1">%2</a> du %3, %4 en utilisant Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. - - Cancel - Annuler + The server enforces strict transport security and does not accept untrusted certificates. + Le serveur applique une sécurité de transport stricte et n’accepte pas les certificats non approuvés. - - - This will clear the existing conversation. - + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + Le serveur a mis trop de temps à répondre. Vérifiez votre connexion et réessayez la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. + + + OCC::Account - - Ask Assistant … - + File %1 is already locked by %2. + Le fichier %1 est déjà verrouillé par %2. - - Ask Assistant… - - - - - Send assistant question - - - - - Start a new assistant chat - - - - - Unified search results list - Liste des résultats de la recherche unifiée - - - - New activities - Nouvelles activités - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - Le serveur a mis trop de temps à répondre. Vérifiez votre connexion et réessayez la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. - - - - The server enforces strict transport security and does not accept untrusted certificates. - Le serveur applique une sécurité de transport stricte et n’accepte pas les certificats non approuvés. + Lock operation on %1 failed with error %2 + L'opération de verrouillage de %1 a échoué avec l'erreur %2 - - - OCC::Account - Public Share Link Lien de partage public - - File %1 is already locked by %2. - Le fichier %1 est déjà verrouillé par %2. - - - - Lock operation on %1 failed with error %2 - L'opération de verrouillage de %1 a échoué avec l'erreur %2 - - - Unlock operation on %1 failed with error %2 L'opération de déverrouillage de %1 a échoué avec l'erreur %2 @@ -520,546 +459,393 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? Un compte a été détecté à partir d’un ancien client de synchronisation bureau. Le compte doit-il être importé ? - - - Legacy import - Importation de l'héritage + Could not import accounts from legacy client configuration. + Impossible d'importer des comptes à partir de l'ancienne configuration client. - - + Import Importer - - Skip - Ignorer + Legacy import + Importation de l'héritage - - Could not import accounts from legacy client configuration. - Impossible d'importer des comptes à partir de l'ancienne configuration client. + Skip + Ignorer - + OCC::AccountSettings - - Virtual files - Fichiers virtuels + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) utilisés sur %2. Certains dossiers, montés depuis le réseau ou partagés, peuvent avoir des limites différentes. - - Classic sync - Synchronisation classique + %1 as %2 + %1 avec le compte %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Les dossiers décochés seront <b>supprimés</b> de votre disque local et ne seront plus synchronisés avec cet ordinateur. + %1 in use + %1 utilisé(s) - - Storage space: … - Espace de stockage : ... + %1 of %2 in use + %1 utilisés sur %2 - - Synchronize all - Tout synchroniser + (experimental) + (expérimental) - - Synchronize none - Ne rien synchroniser + <p>Could not create local folder <i>%1</i>.</p> + <p>Impossible de créer le dossier local <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Voulez-vous vraiment arrêter de synchroniser le dossier <i>%1</i> ?</p><p><b>Note :</b> Aucun fichier ne sera supprimé.</p> + + + Apply + Appliquer - Apply manual changes Appliquer les changements manuels - - Standard file sync - Synchronisation standard des fichiers + Availability + Disponibilités - - Virtual file sync - Synchronisation de fichiers virtuels + Cancel + Annuler - - Connection settings - Paramètres de connexion + Choose what to sync + Sélectionner le contenu à synchroniser - - Apply - Appliquer + Confirm Folder Sync Connection Removal + Confirmer le retrait de la synchronisation de dossier - - - - Cancel - Annuler + Connected to %1. + Connecté au serveur %1. - Connected with <server> as <user> Connecté au serveur <server> avec le compte <user> - - No account configured. - Aucun compte configuré. - - - - End-to-end Encryption with Virtual Files - Chiffrement de bout en bout avec fichiers virtuels + Connecting to %1 … + Connexion à %1 ... - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Il semble que la fonctionnalité des Fichiers Virtuels soit activée sur ce dossier. Pour l'instant, il n'est pas possible de télécharger implicitement des fichiers virtuels qui sont chiffrés de bout en bout. Pour bénéficier d'une expérience optimale avec les fichiers virtuels et le chiffrement de bout en bout, assurez-vous que le dossier chiffré soit marqué par l'option "Toujours rendre disponible localement". + Connection settings + Paramètres de connexion - - - Do not encrypt folder - Ne pas chiffrer le dossier + Could not encrypt folder because the folder does not exist anymore + Impossible de chiffrer le dossier car il n'existe plus - - - Encrypt folder - Chiffrer le dossier + Create new folder + Créer un nouveau dossier - - End-to-end Encryption - Chiffrement de bout en bout + Currently there is no storage usage information available. + Actuellement aucune information d'utilisation de stockage n'est disponible. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Cela va chiffrer votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé de chiffrement mnémonique. -<b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir le faire ?</b> + Disable support + Désactiver le support - - End-to-end encryption has not been initialized on this account. - Le chiffrement de bout en bout n'a pas été initialisé sur ce compte. + Disable virtual file support … + Désactiver la prise en charge du fichier virtuel… - - Forget encryption setup - Oublier la configuration du chiffrement + Disable virtual file support? + Désactiver le support des fichiers virtuels ? - Display mnemonic Afficher la phrase secrète - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - Le chiffrement est configuré. Souvenez-vous de <b>Chiffrer</b> un dossier pour chiffrer de bout en bout chaque nouveau fichier qui lui sera ajouté. - - - - Warning - Attention + Do not encrypt folder + Ne pas chiffrer le dossier - - Please wait for the folder to sync before trying to encrypt it. - Merci d'attendre que le dossier soit synchronisé avant d'essayer de le chiffrer. + Do you want to forget the end-to-end encryption settings for %1 on this device? + Voulez-vous oublier les paramètres de chiffrement de bout en bout pour %1 sur cet appareil ? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - Le dossier a un défaut de synchronisation mineur. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. + Edit Ignored Files + Modifier les fichiers exclus - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - Le dossier a une erreur de synchronisation. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. + Enable virtual file support %1 … + Activer la prise en charge du fichier virtuel %1 … - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - Vous ne pouvez pas chiffrer ce dossier puisque le chiffrement n'est pas encore configuré sur cet appareil. Voulez-vous le faire maintenant ? + Encrypt + Chiffrer - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - Vous ne pouvez pas chiffrer un dossier avec son contenu, veuillez enlever les fichiers. Attendez une nouvelle synchronisation puis chiffrez le dossier. + Encrypt folder + Chiffrer le dossier - Encryption failed Le chiffrement a échoué - - Could not encrypt folder because the folder does not exist anymore - Impossible de chiffrer le dossier car il n'existe plus + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + Le chiffrement est configuré. Souvenez-vous de <b>Chiffrer</b> un dossier pour chiffrer de bout en bout chaque nouveau fichier qui lui sera ajouté. - - Encrypt - Chiffrer + End-to-end Encryption + Chiffrement de bout en bout - - - Edit Ignored Files - Modifier les fichiers exclus + End-to-end Encryption with Virtual Files + Chiffrement de bout en bout avec fichiers virtuels - - - Create new folder - Créer un nouveau dossier + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + Le chiffrement de bout en bout a été activé sur ce compte avec un autre appareil.<br>Entrez votre phrase secrète pour synchroniser les dossiers chiffrés sur cet appareil. - - - Availability - Disponibilités + End-to-end encryption has not been initialized on this account. + Le chiffrement de bout en bout n'a pas été initialisé sur ce compte. - - Choose what to sync - Sélectionner le contenu à synchroniser + End-to-end encryption mnemonic + Phrase secrète du chiffrement de bout en bout + + + Expand Memory + + + + Folder creation failed + Échec de la création du dossier - Force sync now Forcer la synchronisation maintenant - - Restart sync - Redémarrer la synchronisation + Forget encryption setup + Oublier la configuration du chiffrement - - Remove folder sync connection - Retirer la connexion de synchronisation de dossier + Forget the end-to-end encryption on this device + Oublier le chiffrement de bout en bout sur cet appareil - - Disable virtual file support … - Désactiver la prise en charge du fichier virtuel… + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Oublier le chiffrement de bout en bout supprimera les données sensibles et tous les fichiers chiffrés sur cet appareil. <br> Cependant, les fichiers chiffrés resteront sur le serveur et sur vos autres appareils, si le chiffrement est configuré. - - Enable virtual file support %1 … - Activer la prise en charge du fichier virtuel %1 … + Migrate certificate to a new one + Migrer le certificat vers une nouvelle clé - - (experimental) - (expérimental) + No %1 connection configured. + Aucune connexion à %1 configurée - - Folder creation failed - Échec de la création du dossier + No account configured. + Aucun compte configuré. - - Confirm Folder Sync Connection Removal - Confirmer le retrait de la synchronisation de dossier + Open folder + Ouvrir le dossier + + + Pause sync + Mettre en pause la synchronisation + + + Please wait for the folder to sync before trying to encrypt it. + Merci d'attendre que le dossier soit synchronisé avant d'essayer de le chiffrer. - Remove Folder Sync Connection Retirer la synchronisation de ce dossier - - Grant access to sync folder - Accorder l’accès au dossier de synchronisation + Remove folder sync connection + Retirer la connexion de synchronisation de dossier - - Access Error - + Restart sync + Redémarrer la synchronisation - - Could not acquire access to the selected folder. Please try again. - Impossible d’obtenir l’accès au dossier sélectionné. Veuillez réessayer. + Resume sync + Reprendre la synchronisation - - Wrong Folder - + Server %1 is currently being redirected, or your connection is behind a captive portal. + Le serveur %1 est actuellement redirigé ou votre connexion est derrière un portail captif. - - Please select the original sync folder: %1 - + Server %1 is currently in maintenance mode. + Le serveur %1 est en cours de maintenance. - - - Bookmark Error - + Server %1 is temporarily unavailable. + Le serveur %1 est temporairement indisponible. - - Could not create a security bookmark for the folder. Please try again. - + Server configuration error: %1 at %2. + Erreur de configuration serveur : %1 à %2. - - Could not resolve the security bookmark. Please try again. - + Set up encryption + Configurer le chiffrement - - Disable virtual file support? - Désactiver le support des fichiers virtuels ? + Signed out from %1. + Session sur %1 fermée. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Cette action désactivera la prise en charge du fichier virtuel. Par conséquent, les contenus des dossiers habituellement marqués comme "disponibles en ligne seulement" seront téléchargés. -Le seul avantage de désactiver la prise en charge du fichier virtuel est que les fonctionnalités de synchronisation sélective seront de nouveau disponibles. -Cette action entraînera l'interruption de toute synchronisation en cours. - - - - Disable support - Désactiver le support - - - - End-to-end encryption mnemonic - Phrase secrète du chiffrement de bout en bout - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour configurer la synchronisation de dossiers chiffrés sur vos autres appareils. - - - - Forget the end-to-end encryption on this device - Oublier le chiffrement de bout en bout sur cet appareil + Standard file sync + Synchronisation standard des fichiers - - Do you want to forget the end-to-end encryption settings for %1 on this device? - Voulez-vous oublier les paramètres de chiffrement de bout en bout pour %1 sur cet appareil ? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Oublier le chiffrement de bout en bout supprimera les données sensibles et tous les fichiers chiffrés sur cet appareil. <br> Cependant, les fichiers chiffrés resteront sur le serveur et sur vos autres appareils, si le chiffrement est configuré. + Storage space: … + Espace de stockage : ... - Sync Running Synchronisation en cours - - The syncing operation is running.<br/>Do you want to terminate it? - La synchronisation est en cours.<br/>Voulez-vous l'arrêter ? + Synchronize all + Tout synchroniser - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) utilisés sur %2. Certains dossiers, montés depuis le réseau ou partagés, peuvent avoir des limites différentes. + Synchronize none + Ne rien synchroniser - - Currently there is no storage usage information available. - Actuellement aucune information d'utilisation de stockage n'est disponible. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + Le dossier a un défaut de synchronisation mineur. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. - - %1 in use - %1 utilisé(s) + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + Le dossier a une erreur de synchronisation. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. - - Connected to %1 (%2). - Connecté à %1 (%2). + The server version %1 is unsupported! Proceed at your own risk. + La version %1 du serveur n'est pas maintenue ! +Vous prenez vos propres risques. - - Migrate certificate to a new one - Migrer le certificat vers une nouvelle clé + The syncing operation is running.<br/>Do you want to terminate it? + La synchronisation est en cours.<br/>Voulez-vous l'arrêter ? - There are folders that have grown in size beyond %1MB: %2 Il y a des dossiers qui ont augmenté de taille au-delà de %1 Mo : %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - Le chiffrement de bout en bout a été activé sur ce compte avec un autre appareil.<br>Entrez votre phrase secrète pour synchroniser les dossiers chiffrés sur cet appareil. - - - - This account supports end-to-end encryption, but it needs to be set up first. - Ce compte supporte le chiffrement de bout en bout, mais il est d'abord nécessaire de le configurer. - - - - The virtual files integration does not support end-to-end encryption yet. - L’intégration des fichiers virtuels ne prend pas en charge le chiffrement de bout en bout pour l’instant. - - - - Set up encryption - Configurer le chiffrement - - - - Connected to %1. - Connecté au serveur %1. - - - - Server %1 is temporarily unavailable. - Le serveur %1 est temporairement indisponible. - - - - Server %1 is currently in maintenance mode. - Le serveur %1 est en cours de maintenance. - - - - Signed out from %1. - Session sur %1 fermée. - - - - There are folders that were not synchronized because they are too big: - Certains dossiers n'ont pas été synchronisés parce qu'ils sont de taille trop importante : - - - - There are folders that were not synchronized because they are external storages: - Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe : - - - - There are folders that were not synchronized because they are too big or external storages: - Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe ou qu'ils sont de taille trop importante : + There are folders that were not synchronized because they are external storages: + - - - Open folder - Ouvrir le dossier + There are folders that were not synchronized because they are too big or external storages: + - - Resume sync - Reprendre la synchronisation + There are folders that were not synchronized because they are too big: + - - Pause sync - Mettre en pause la synchronisation + This account supports end-to-end encryption, but it needs to be set up first. + Ce compte supporte le chiffrement de bout en bout, mais il est d'abord nécessaire de le configurer. - - <p>Could not create local folder <i>%1</i>.</p> - <p>Impossible de créer le dossier local <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Cette action désactivera la prise en charge du fichier virtuel. Par conséquent, les contenus des dossiers habituellement marqués comme "disponibles en ligne seulement" seront téléchargés. +Le seul avantage de désactiver la prise en charge du fichier virtuel est que les fonctionnalités de synchronisation sélective seront de nouveau disponibles. +Cette action entraînera l'interruption de toute synchronisation en cours. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Voulez-vous vraiment arrêter de synchroniser le dossier <i>%1</i> ?</p><p><b>Note :</b> Aucun fichier ne sera supprimé.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Cela va chiffrer votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé de chiffrement mnémonique. +<b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir le faire ?</b> - - %1 of %2 in use - %1 utilisés sur %2 + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour configurer la synchronisation de dossiers chiffrés sur vos autres appareils. - - %1 as %2 - %1 avec le compte %2 + Unable to connect to %1. + Impossible de se connecter à %1. - - The server version %1 is unsupported! Proceed at your own risk. - La version %1 du serveur n'est pas maintenue ! -Vous prenez vos propres risques. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Les dossiers décochés seront <b>supprimés</b> de votre disque local et ne seront plus synchronisés avec cet ordinateur. - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Le serveur %1 est actuellement redirigé ou votre connexion est derrière un portail captif. + Virtual file sync + Synchronisation de fichiers virtuels - - Connecting to %1 … - Connexion à %1 ... + Warning + Attention - - Unable to connect to %1. - Impossible de se connecter à %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + Vous ne pouvez pas chiffrer un dossier avec son contenu, veuillez enlever les fichiers. Attendez une nouvelle synchronisation puis chiffrez le dossier. - - Server configuration error: %1 at %2. - Erreur de configuration serveur : %1 à %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + Vous ne pouvez pas chiffrer ce dossier puisque le chiffrement n'est pas encore configuré sur cet appareil. Voulez-vous le faire maintenant ? - You need to accept the terms of service at %1. Vous devez accepter les conditions d'utilisation ici %1. - - No %1 connection configured. - Aucune connexion à %1 configurée + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Il semble que la fonctionnalité des Fichiers Virtuels soit activée sur ce dossier. Pour l'instant, il n'est pas possible de télécharger implicitement des fichiers virtuels qui sont chiffrés de bout en bout. Pour bénéficier d'une expérience optimale avec les fichiers virtuels et le chiffrement de bout en bout, assurez-vous que le dossier chiffré soit marqué par l'option "Toujours rendre disponible localement". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La requête authentifiée au serveur a été redirigée vers « %1 ». L'URL est mauvaise, le serveur est mal configuré. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accès refusé par le serveur. Pour vérifier que vous disposez d'un accès approprié, <a href="%1">cliquez ici</a> pour accéder au service avec votre navigateur Web. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La requête authentifiée au serveur a été redirigée vers « %1 ». L'URL est mauvaise, le serveur est mal configuré. + + There was an invalid response to an authenticated WebDAV request Réponse invalide reçue suite à une requête WebDav authentifiée. @@ -1067,57 +853,46 @@ Vous prenez vos propres risques. OCC::AccountState - - Signed out - Session fermée + Asking Credentials + informations d'identification demandées - - Disconnected - Déconnecté + Configuration error + Erreur de configuration - Connected Connecté - - Service unavailable - Service indisponible + Disconnected + Déconnecté - Maintenance mode mode maintenance - - Redirect detected - Redirection détectée + Need the user to accept the terms of service + Besoin que l'utilisateur accepte les conditions générales d'utilisation - Network error Erreur réseau - - Configuration error - Erreur de configuration + Redirect detected + Redirection détectée - - Asking Credentials - informations d'identification demandées + Service unavailable + Service indisponible - - Need the user to accept the terms of service - Besoin que l'utilisateur accepte les conditions générales d'utilisation + Signed out + Session fermée - Unknown account state État du compte inconnu @@ -1125,17 +900,14 @@ Vous prenez vos propres risques. OCC::ActivityListModel - - For more activities please open the Activity app. - Pour plus d'activités veuillez lancer l'application Activité. - - - Fetching activities … Récupération des activités... - + For more activities please open the Activity app. + Pour plus d'activités veuillez lancer l'application Activité. + + Network error occurred: client will retry syncing. Une erreur de réseau est survenue : le client va réessayer la synchronisation. @@ -1143,119 +915,67 @@ Vous prenez vos propres risques. OCC::AddCertificateDialog - - SSL client certificate authentication - Authentification par certificat SSL client + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Un paquet pkcs12 chiffré est vivement recommandé vu qu'une copie sera stockée dans le fichier de configuration. - - This server probably requires a SSL client certificate. - Ce serveur requiert probablement un certificat SSL client. + Browse … + Parcourir … - Certificate & Key (pkcs12): Certificat & clé (pkcs12) : - + Certificate files (*.p12 *.pfx) + Fichiers de certificats (*.p12 *.pfx) + + Certificate password: Mot de passe du certificat : - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Un paquet pkcs12 chiffré est vivement recommandé vu qu'une copie sera stockée dans le fichier de configuration. - - - - Browse … - Parcourir … + SSL client certificate authentication + Authentification par certificat SSL client - Select a certificate Sélectionner un certificat - - Certificate files (*.p12 *.pfx) - Fichiers de certificats (*.p12 *.pfx) - - - - Could not access the selected certificate file. - + This server probably requires a SSL client certificate. + Ce serveur requiert probablement un certificat SSL client. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Des paramètres ont été configurés dans des versions %1 de ce client et utilisent des fonctionnalités non disponibles dans la version actuelle. <br><br>Continuer impliquera que <b>ces paramètres seront %2</b>.<br><br> Le fichier de configuration actuel a été sauvegardé dans <i>%3</i>. - - - - newer - newer software version - ultérieures - - - - older - older software version - antérieures - - - - ignoring - ignorés - - - - deleting - supprimés - - - - Quit - Quitter - - - - Continue - Continuer - - - %1 accounts number of accounts imported %1 comptes - - 1 account - 1 compte - - - %1 folders number of folders imported %1 dossiers - + 1 account + 1 compte + + 1 folder 1 dossier - - Legacy import - Importation héritée + Continue + Continuer + + + Error accessing the configuration file + Erreur lors de l'accès au fichier de configuration - Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1263,48 +983,66 @@ Vous prenez vos propres risques. %3 - - Error accessing the configuration file - Erreur lors de l'accès au fichier de configuration + Legacy import + Importation héritée + + + Quit + Quitter + + + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Des paramètres ont été configurés dans des versions %1 de ce client et utilisent des fonctionnalités non disponibles dans la version actuelle. <br><br>Continuer impliquera que <b>ces paramètres seront %2</b>.<br><br> Le fichier de configuration actuel a été sauvegardé dans <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Une erreur est survenue lors de l'accès au fichier de configuration à %1. Merci de vérifier que le fichier est accessible du compte système. - - - OCC::AuthenticationDialog + + deleting + supprimés + - - Authentication Required - Authentification requise + ignoring + ignorés - - Enter username and password for "%1" at %2. - Saisir le nom d’utilisateur et le mot de passe pour « %1 » sur %2. + newer + newer software version + ultérieures - - &Username: - &Username: + older + older software version + antérieures + + + OCC::AuthenticationDialog - &Password: &Password: - + + &Username: + &Username: + + + Authentication Required + Authentification requise + + + Enter username and password for "%1" at %2. + Saisir le nom d’utilisateur et le mot de passe pour « %1 » sur %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". « %1 Impossible de déverrouiller le dossier chiffré %2 ». - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur retournée est « %1 %2 ». @@ -1312,245 +1050,195 @@ Vous prenez vos propres risques. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Erreur lors de la mise à jour des métadonnées : %1 + + File %1 can not be downloaded because of a local file name clash! Le fichier %1 ne peut pas être téléchargé en raison d'un conflit de nom de fichier local ! - + The file %1 is currently in use + Le fichier %1 est en cours d'utilisation + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossible de mettre à jour les métadonnées du nouveau fichier %1. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - Erreur lors de la mise à jour des métadonnées : %1 - - - - The file %1 is currently in use - Le fichier %1 est en cours d'utilisation + Erreur à la mise à jour des méta-données : %1 - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Le fichier %1 ne peut être téléversé parce qu'un autre fichier avec le même nom hormis la casse existe - - File contains leading or trailing spaces and couldn't be renamed - Le fichier contient des espaces en début ou en fin de fichier et n'a pas pu être renommé + File %1 has invalid modification time. Do not upload to the server. + Le fichier %1 présente une heure de modification invalide. Téléversement vers le serveur impossible. - File %1 has invalid modified time. Do not upload to the server. Le fichier %1 présente une heure de modification invalide. Téléversement vers le serveur impossible. - File Removed (start upload) %1 Fichier retiré (début du téléversement) %1 - - File %1 has invalid modification time. Do not upload to the server. - Le fichier %1 présente une heure de modification invalide. Téléversement vers le serveur impossible. - - - - Local file changed during syncing. It will be resumed. - Fichier local modifié pendant la synchronisation. La synchronisation sera reprise. + File contains leading or trailing spaces and couldn't be renamed + Le fichier contient des espaces en début ou en fin de fichier et n'a pas pu être renommé - - Local file changed during sync. Fichier local modifié pendant la synchronisation. - + Local file changed during syncing. It will be resumed. + Fichier local modifié pendant la synchronisation. La synchronisation sera reprise. + + Network error: %1 Erreur réseau : %1 - - Error updating metadata: %1 - Erreur à la mise à jour des méta-données : %1 + Restoration failed: %1 + Échec de la restauration : %1 - - + The file %1 is currently in use Le fichier %1 est en cours d'utilisation - The local file was removed during sync. Le fichier local a été supprimé pendant la synchronisation. - - - Restoration failed: %1 - Échec de la restauration : %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Impossible de renommer le fichier parce qu'un fichier portant le même nom existe déjà sur le serveur. Veuillez choisir un autre nom. - Could not rename file. Please make sure you are connected to the server. Impossible de renommer le fichier. Assurez-vous de bien être connecté au serveur. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Vous n'avez pas les permissions de renommer ce fichier. Veuillez demander à son auteur de le renommer. - - - Failed to fetch permissions with error %1 Échec de récupération de permissions avec l'erreur %1 - Filename contains leading and trailing spaces. Le nom de fichier contient des espaces de début et de fin. - Filename contains leading spaces. Le nom de fichier contient des espaces de début. - Filename contains trailing spaces. Le nom de fichier contient des espaces de fin. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Vous n'avez pas les permissions de renommer ce fichier. Veuillez demander à son auteur de le renommer. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 ne supporte pas les noms de fichiers identiques avec seulement des différences de casse de caractère. + + + 0 byte + 0 octets + + Case Clash Conflict Conflit de casse - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - Le fichier n'a pas pu être synchronisé parce qu'il génère un conflit de casse avec un fichier existant dans ce système. + Case clashing file + Fichier avec conflit de casse - Error Erreur - Existing file Fichier existant - - file A - fichier A - - - - - today - aujourd'hui + Filename contains illegal characters: %1 + Le nom du fichier contient des caractères illégaux : %1 - - - - 0 byte - 0 octets + + Filename contains leading and trailing spaces. + Le nom de fichier contient des espaces de début et de fin. - - - Open existing file - Ouvrir un fichier existant + Filename contains leading spaces. + Le nom de fichier contient des espaces de début. - - Case clashing file - Fichier avec conflit de casse + Filename contains trailing spaces. + Le nom de fichier contient des espaces de fin. - - file B - fichier B + New filename + Nouveau nom de fichier - - Open clashing file Ouvrir le fichier conflictuel - - Please enter a new name for the clashing file: - Veuillez saisir un nouveau nom pour le fichier conflictuel : + Open existing file + Ouvrir un fichier existant - - New filename - Nouveau nom de fichier + Please enter a new name for the clashing file: + Veuillez saisir un nouveau nom pour le fichier conflictuel : - Rename file Renomer le fichier - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. Le fichier "%1" n'a pas pu être synchronisé à cause d'un conflit de casse avec un fichier existant dans ce système. - - %1 does not support equal file names with only letter casing differences. - %1 ne supporte pas les noms de fichiers identiques avec seulement des différences de casse de caractère. - - - - Filename contains leading and trailing spaces. - Le nom de fichier contient des espaces de début et de fin. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Le fichier n'a pas pu être synchronisé parce qu'il génère un conflit de casse avec un fichier existant dans ce système. - - Filename contains leading spaces. - Le nom de fichier contient des espaces de début. + Use invalid name + Nom invalide - - Filename contains trailing spaces. - Le nom de fichier contient des espaces de fin. + file A + fichier A - - Use invalid name - Nom invalide + file B + fichier B - - Filename contains illegal characters: %1 - Le nom du fichier contient des caractères illégaux : %1 + today + aujourd'hui - + OCC::CleanupPollsJob - Error writing metadata to the database Erreur à l'écriture des métadonnées dans la base de données @@ -1558,136 +1246,117 @@ Vous prenez vos propres risques. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - Saisir le code PIN - - - Enter Certificate USB Token PIN: Entrez le PIN du jeton USB de certificat: - + Enter E2E passphrase + Entrez la phrase secrète E2E + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Saisir le code PIN + + Invalid PIN. Login failed PIN invalide. Connexion échouée - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! La connexion au token a échoué après la saisie du code PIN. Il est peut-être invalide ou erroné. Veuillez réessayer ! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Veuillez entrer votre phrase de passe de chiffrement de bout en bout :<br><br>Nom d'utilisateur : %2<br>Compte : %3<br> - - - Enter E2E passphrase - Entrez la phrase secrète E2E - - + OCC::ConflictDialog - - Sync Conflict - Conflit de synchronisation - - - - - Conflicting versions of %1. - Versions en conflit de %1. + 0 byte + 0 octet - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Quelle version du fichier souhaitez-vous garder ?<br/>Si vous sélectionnez les deux versions, le fichier local aura un numéro ajouté à son nom. + <a href="%1">Open local version</a> + <a href="%1">Ouvrir la version locale</a> - - Local version - Version locale + <a href="%1">Open server version</a> + <a href="%1">Ouvrir la version serveur</a> - - Click to open the file Cliquez pour ouvrir le fichier - - - today - aujourd'hui + Conflicting versions of %1. + Versions en conflit de %1. - - - 0 byte - 0 octet + Keep both versions + Conserver les deux versions - - <a href="%1">Open local version</a> - <a href="%1">Ouvrir la version locale</a> + Keep local version + Conserver la version locale - - Server version - Version du serveur + Keep selected version + Conserver la version sélectionnée - - <a href="%1">Open server version</a> - <a href="%1">Ouvrir la version serveur</a> + Keep server version + Conserver la version serveur - - - - Keep selected version - Conserver la version sélectionnée + + Local version + Version locale - Open local version Ouvrir la version locale - Open server version Ouvrir la version serveur - - Keep both versions - Conserver les deux versions + Server version + Version du serveur - - Keep local version - Conserver la version locale + Sync Conflict + Conflit de synchronisation - - Keep server version - Conserver la version serveur + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Quelle version du fichier souhaitez-vous garder ?<br/>Si vous sélectionnez les deux versions, le fichier local aura un numéro ajouté à son nom. - + + today + aujourd'hui + + OCC::ConflictSolver - - - Error - Erreur + Confirm deletion + Confirmer la suppression + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + Voulez-vous supprimer le dossier <i>%1</i> et tout son contenu définitivement ? + + + Do you want to delete the file <i>%1</i> permanently? + Voulez-vous supprimer le fichier <i>%1</i> définitivement ? + + + Error + Erreur - - Moving file failed: %1 @@ -1695,224 +1364,212 @@ Vous prenez vos propres risques. %1 + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - Voulez-vous supprimer le dossier <i>%1</i> et tout son contenu définitivement ? + Authentication error: Either username or password are wrong. + Erreur d'authentification : nom d’utilisateur et/ou mot de passe incorrect(s). - - Do you want to delete the file <i>%1</i> permanently? - Voulez-vous supprimer le fichier <i>%1</i> définitivement ? + No %1 account configured + The placeholder will be the application name. Please keep it + Aucun compte %1 n'est configuré - - Confirm deletion - Confirmer la suppression + Please update to the latest server and restart the client. + Veuillez mettre à jour le serveur vers la dernière version et redémarrer le client. - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - Aucun compte %1 n'est configuré + The configured server for this client is too old + Le serveur configuré pour ce client est trop vieux - + The provided credentials are not correct + Les informations d'identification fournies ne sont pas correctes + + Timeout Délai d'attente + + + OCC::DataProtectionPage - - The configured server for this client is too old - Le serveur configuré pour ce client est trop vieux + Agree + - - Please update to the latest server and restart the client. - Veuillez mettre à jour le serveur vers la dernière version et redémarrer le client. + Form + Formulaire - - Authentication error: Either username or password are wrong. - Erreur d'authentification : nom d’utilisateur et/ou mot de passe incorrect(s). + Settings + Paramètres - - The provided credentials are not correct - Les informations d'identification fournies ne sont pas correctes + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Erreur lors de l'annulation de la suppression d'un fichier + Back + Retour - - Error while canceling deletion of %1 - Erreur lors de l'annulation de la suppression de %1 + Form + Formulaire + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Erreur du serveur : La réponse PROPFIND n'est pas au format XML ! + Error while canceling deletion of %1 + Erreur lors de l'annulation de la suppression de %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - Le serveur a renvoyé une réponse inattendue et illisible. Veuillez contacter l'administrateur de votre serveur. + + Error while canceling deletion of a file + Erreur lors de l'annulation de la suppression d'un fichier + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Erreur lors de la configuration des métadonnées chiffrées ! - Encrypted metadata setup error: initial signature from server is empty. Erreur de configuration des métadonnées chiffrées: la signature initiale du serveur est vide. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Erreur du serveur : La réponse PROPFIND n'est pas au format XML ! + - - Error while opening directory %1 - Erreur à l’ouverture du dossier %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + Le serveur a renvoyé une réponse inattendue et illisible. Veuillez contacter l'administrateur de votre serveur. + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Dossier non accessible au client, permission refusée - Directory not found: %1 Dossier non trouvé : %1 - - Filename encoding is not valid - L’encodage du nom de fichier n’est pas valide + Error while opening directory %1 + Erreur à l’ouverture du dossier %1 - Error while reading directory %1 Erreur de lecture du dossier %1 - + + Filename encoding is not valid + L’encodage du nom de fichier n’est pas valide + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Impossible de démarrer l'édition localement. + An error occurred during data retrieval. + Une erreur est survenue pendant le rapatriement des données. - - An error occurred during setup. Une erreur est survenue pendant l'installation - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Impossible de trouver le fichier pour l'édition locale. Assurez-vous que le chemin est valide et qu'il est synchronisé localement. + An error occurred trying to synchronise the file to edit locally. + Une erreur est survenue lors de la synchronisation du fichier à éditer localement. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Impossible de trouver le fichier pour l'édition locale. Assurez-vous qu'il n'est pas exclus par un filtre de synchronisation. - - - - An error occurred during data retrieval. - Une erreur est survenue pendant le rapatriement des données. - - - - - An error occurred trying to synchronise the file to edit locally. - Une erreur est survenue lors de la synchronisation du fichier à éditer localement. - - - - Server error: PROPFIND reply is not XML formatted! - Erreur de serveur : La réponse de PROPFIND n'est pas formatée en XML ! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Impossible de trouver le fichier pour l'édition locale. Assurez-vous que le chemin est valide et qu'il est synchronisé localement. - Could not find a remote file info for local editing. Make sure its path is valid. Impossible de trouver une info fichier distante pour l'édition locale. Assurez-vous que son chemin est valide. - - Invalid local file path. - Chemin d'accès au fichier local non valide. - - - Could not open %1 Impossible d'ouvrir %1 - - Please try again. - Merci de réessayer. + Could not start editing locally. + Impossible de démarrer l'édition localement. - File %1 already locked. Fichier %1 déjà verrouillé. - - + File %1 could not be locked. + Impossible de verrouiller le fichier %1. + + + File %1 now locked. + Fichier %1 désormais verrouillé. + + + Invalid local file path. + Chemin d'accès au fichier local non valide. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Le verrouillage durera %1 minutes. Vous pouvez également déverrouiller ce fichier manuellement une fois que vous avez terminé l'édition. - - File %1 now locked. - Fichier %1 désormais verrouillé. + Please try again. + Merci de réessayer. - - File %1 could not be locked. - Impossible de verrouiller le fichier %1. + Server error: PROPFIND reply is not XML formatted! + Erreur de serveur : La réponse de PROPFIND n'est pas formatée en XML ! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Impossible de valider la requête pour ouvrir un fichier du serveur. - Please try again. Merci de réessayer. @@ -1920,405 +1577,308 @@ Vous prenez vos propres risques. OCC::EditLocallyVerificationJob - - Invalid token received. - Le jeton reçu est invalide. - - - - - - Please try again. - Merci de réessayer. - - - - Invalid file path was provided. - Un chemin d'accès au fichier invalide a été fourni. + An error occurred trying to verify the request to edit locally. + Une erreur est survenue, tentative de vérification de la requête pour éditer localement. - - + Could not find an account for local editing. Impossible de trouver un compte pour l'édition locale. - Could not start editing locally. Impossible de démarrer l'édition locale. - - An error occurred trying to verify the request to edit locally. - Une erreur est survenue, tentative de vérification de la requête pour éditer localement. + Invalid file path was provided. + Un chemin d'accès au fichier invalide a été fourni. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Impossible de générer les métadonnées pour le chiffrement, déverrouillage du dossier. -Cela peut être un problème avec vos bibliothèques OpenSSL. + Invalid token received. + Le jeton reçu est invalide. - + + Please try again. + Merci de réessayer. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Erreur dans la récupération de l’ID du dossier chiffré. + + Error fetching metadata. Erreur à la récupération des méta-données. - - - Error locking folder. Erreur de verrouillage du dossier. - - Error fetching encrypted folder ID. - Erreur dans la récupération de l’ID du dossier chiffré. - - - Error parsing or decrypting metadata. Erreur lors du parsing ou du déchiffrement des métadonnées. - Failed to upload metadata Échec du téléversement des métadonnées - OCC::FileActionsModel - - - Your account is offline %1. - account url - Votre compte est hors ligne %1. - - - - The file ID is empty for %1. - file name - L’ID du fichier est vide pour %1. - - - - The file type for %1 is not valid. - file name - Le type de fichier pour %1 n’est pas valide. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - Le serveur n'a retourné aucune action pour fichiers %1. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - L’opération %1 a échoué, veuillez réessayer plus tard. Pour obtenir de l’aide, contactez votre administrateur serveur. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 terminé. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Impossible de générer les métadonnées pour le chiffrement, déverrouillage du dossier. +Cela peut être un problème avec vos bibliothèques OpenSSL. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - Il y a %1 secondeIl y a %1 seconde(s)Il y a %1 seconde(s) - - - - %1 minute(s) ago - minutes elapsed since file last modified - Il y a %1 minuteIl y a %1 minute(s)Il y a %1 minute(s) + %1 day(s) ago + days elapsed since file last modified + + Il y a %1 jour + Il y a %1 jour(s) + - %1 hour(s) ago hours elapsed since file last modified - Il y a %1 heureIl y a %1 heure(s)Il y a %1 heure(s) + + Il y a %1 heure + Il y a %1 heure(s) + - - %1 day(s) ago - days elapsed since file last modified - Il y a %1 jourIl y a %1 jour(s)Il y a %1 jour(s) + %1 minute(s) ago + minutes elapsed since file last modified + + Il y a %1 minute + Il y a %1 minute(s) + - %1 month(s) ago months elapsed since file last modified - il y a %1 moisil y a %1 moisil y a %1 mois + + il y a %1 mois + il y a %1 mois + + + + %1 second(s) ago + seconds elapsed since file last modified + + Il y a %1 seconde + Il y a %1 seconde(s) + - %1 year(s) ago years elapsed since file last modified - il y a %1 anil y a %1 ansil y a %1 ans + + il y a %1 an + il y a %1 ans + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Verrouillé par %1 - Expire dans%2 minuteVerrouillé par %1 - Expire dans %2 minutesVerrouillé par %1 - Expire dans %2 minutes + + Verrouillé par %1 - Expire dans%2 minute + Verrouillé par %1 - Expire dans %2 minutes + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. L'URL renvoyée par le serveur ne commence pas par HTTPS alors que l'URL de connexion commence par HTTPS. La connexion ne sera pas possible car cela pourrait être un problème de sécurité. Veuillez contacter votre administrateur. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. - + - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. + + + + OCC::Flow2AuthWidget - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + Copy Link + Copier le lien - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + Error + Erreur - - - OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Impossible d'ouvrir le navigateur, veuillez copier le lien dans votre navigateur Web. + Link copied to clipboard. + Lien copié dans le presse-papier - - Waiting for authorization - En attente de l'autorisation + Open Browser + Ouvrir le navigateur - Polling for authorization En attente de l'autorisation - Starting authorization Démarrage de l'autorisation - - Link copied to clipboard. - Lien copié dans le presse-papier + Switch to your browser to connect your account + Basculez sur votre navigateur pour connecter votre compte - - - Open Browser - Ouvrir le navigateur + + Unable to open the Browser, please copy the link to your Browser. + Impossible d'ouvrir le navigateur, veuillez copier le lien dans votre navigateur Web. - - Copy Link - Copier le lien + Waiting for authorization + En attente de l'autorisation - + OCC::Folder - - - %1 has been removed. - %1 names a file. - %1 a été supprimé. - - - - %1 has been updated. - %1 names a file. - %1 a été mis à jour. + + %1 and %n other file(s) are currently locked. + + %1 et %n autre fichier sont verrouillés. + %1 et %n autres fichiers sont verrouillés. + - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 a été renommé en %2. + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 ne peut pas être synchronisé en raison d'erreurs. Consultez les logs pour les détails. + %1 et %n autres fichiers n'ont pas pu être synchronisés en raison d'erreurs. Consultez les logs pour les détails. + - - - %1 has been moved to %2. - %1 a été déplacé vers %2. + + %1 and %n other file(s) have been added. + + %1 et %n autre fichier ont été ajoutés. + %1 et %n autres fichiers ont été ajoutés. + - %1 and %n other file(s) have been removed. - %1 a été supprimé.%1 et %n autres fichiers ont été supprimés.%1 et %n autre(s) fichier(s) ont été supprimés. + + %1 a été supprimé. + %1 et %n autres fichiers ont été supprimés. + - - - Please choose a different location. The folder %1 doesn't exist. - Veuillez choisir un emplacement différent. Le dossier %1 n'existe pas. + + %1 and %n other file(s) have been updated. + + %1 a été mis à jour. + %1 et %n autres fichiers ont été mis à jour. + - - Please choose a different location. %1 isn't a valid folder. - Veuillez choisir un emplacement différent. %1 n'est pas un dossier valide. + %1 could not be synced due to an error. See the log for details. + %1 n'a pu être synchronisé pour cause d'erreur. Consultez les logs pour les détails. - - Please choose a different location. %1 isn't a readable folder. - Veuillez choisir un emplacement différent. %1 n'est pas un dossier lisible. + %1 has a sync conflict. Please check the conflict file! + %1 a un problème de synchronisation. Merci de vérifier le fichier conflit ! - - %1 and %n other file(s) have been added. - %1 et %n autre fichier ont été ajoutés.%1 et %n autres fichiers ont été ajoutés.%1 et %n autres fichiers ont été ajoutés. + %1 has and %n other file(s) have sync conflicts. + + %1 a un conflit de synchronisation. + %1 et %n autres fichiers ont des problèmes de synchronisation. + - %1 has been added. %1 names a file. %1 a été ajouté. - - %1 and %n other file(s) have been updated. - %1 a été mis à jour.%1 et %n autres fichiers ont été mis à jour.%1 et %n autres fichiers ont été mis à jour. - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 a été renommé en %2.%1 a été renommé en %2 et %n autres fichiers ont été renommés.%1 a été renommé en %2 et %n autres fichiers ont été renommés. - - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 a été déplacé vers %2.%1 a été déplacé vers %2 et %n autres fichiers ont été déplacés.%1 a été déplacé vers %2 et %n autres fichiers ont été déplacés. - - - - %1 has and %n other file(s) have sync conflicts. - %1 a un conflit de synchronisation.%1 et %n autres fichiers ont des problèmes de synchronisation.%1 et %n autres fichiers ont des problèmes de synchronisation. + + %1 a été déplacé vers %2. + %1 a été déplacé vers %2 et %n autres fichiers ont été déplacés. + - - %1 has a sync conflict. Please check the conflict file! - %1 a un problème de synchronisation. Merci de vérifier le fichier conflit ! - - - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 ne peut pas être synchronisé en raison d'erreurs. Consultez les logs pour les détails.%1 et %n autres fichiers n'ont pas pu être synchronisés en raison d'erreurs. Consultez les logs pour les détails.%1 et %n autres fichiers n'ont pas pu être synchronisés en raison d'erreurs. Consultez les logs pour les détails. + %1 has been moved to %2. + %1 a été déplacé vers %2. - - %1 could not be synced due to an error. See the log for details. - %1 n'a pu être synchronisé pour cause d'erreur. Consultez les logs pour les détails. + %1 has been removed. + %1 names a file. + %1 a été supprimé. - - %1 and %n other file(s) are currently locked. - %1 et %n autre fichier sont verrouillés.%1 et %n autres fichiers sont verrouillés.%1 et %n autres fichiers sont verrouillés. - - - - %1 is currently locked. - %1 est actuellement verrouillé. - - - - Sync Activity - Activité de synchronisation + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 a été renommé en %2. + %1 a été renommé en %2 et %n autres fichiers ont été renommés. + - - Could not read system exclude file - Impossible de lire le fichier d'exclusion du système + %1 has been renamed to %2. + %1 and %2 name files. + %1 a été renommé en %2. - - A new folder larger than %1 MB has been added: %2. - - Un nouveau dossier de taille supérieure à %1 Mo a été ajouté : %2. - + %1 has been updated. + %1 names a file. + %1 a été mis à jour. - - A folder from an external storage has been added. - - Un nouveau dossier localisé sur un stockage externe a été ajouté. - - + %1 is currently locked. + %1 est actuellement verrouillé. - - Please go in the settings to select it if you wish to download it. - Merci d'aller dans les Paramètres pour indiquer si vous souhaitez le télécharger. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Un dossier a dépassé la taille limite fixée de %1 Mo : %2. %3 - - Keep syncing - Continuer la synchronisation - - - - Stop syncing - Arrêter la synchronisation - - - - The folder %1 has surpassed the set folder size limit of %2MB. - Le dossier %1 a dépassé la taille limite fixée de %2 Mo. - - - - Would you like to stop syncing this folder? - Voulez vous arrêter la synchronisation de ce dossier ? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Un grand nombre de fichiers du serveur ont été supprimés. +Veuillez confirmer si vous souhaitez procéder à ces suppressions. +Vous pouvez également restaurer tous les fichiers supprimés en les téléversant depuis le dossier '%1' vers le serveur. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - Le dossier %1 a été créé mais il était exclu de la synchronisation auparavant. Les données qu'il contient ne seront pas synchronisées. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Un grand nombre de fichiers de votre dossier local '%1' ont été supprimés. +Veuillez confirmer si vous souhaitez procéder à ces suppressions. +Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le serveur. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Le fichier %1 a été créé mais il était exclu de la synchronisation auparavant. Il ne sera pas synchronisé. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2331,210 +1891,206 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - Le téléchargement du fichier virtuel a échoué avec le code "%1", statut "%2" et le message d'erreur "%3" + Could not read system exclude file + Impossible de lire le fichier d'exclusion du système - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Un grand nombre de fichiers du serveur ont été supprimés. -Veuillez confirmer si vous souhaitez procéder à ces suppressions. -Vous pouvez également restaurer tous les fichiers supprimés en les téléversant depuis le dossier '%1' vers le serveur. + Keep syncing + Continuer la synchronisation - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - Un grand nombre de fichiers de votre dossier local '%1' ont été supprimés. -Veuillez confirmer si vous souhaitez procéder à ces suppressions. -Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le serveur. + Please choose a different location. %1 isn't a readable folder. + Veuillez choisir un emplacement différent. %1 n'est pas un dossier lisible. - - Remove all files? - Supprimer tous les fichiers ? + Please choose a different location. %1 isn't a valid folder. + Veuillez choisir un emplacement différent. %1 n'est pas un dossier valide. + + + Please choose a different location. The folder %1 doesn't exist. + Veuillez choisir un emplacement différent. Le dossier %1 n'existe pas. + + + Please go in the settings to select it if you wish to download it. + Merci d'aller dans les Paramètres pour indiquer si vous souhaitez le télécharger. - Proceed with Deletion Procéder à la suppression - - Restore Files to Server - Restaurer les fichiers sur le serveur + Remove all files? + Supprimer tous les fichiers ? - Restore Files from Server Restaurer des fichiers à partir du serveur - + + Restore Files to Server + Restaurer les fichiers sur le serveur + + + Stop syncing + Arrêter la synchronisation + + + Sync Activity + Activité de synchronisation + + + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Le fichier %1 a été créé mais il était exclu de la synchronisation auparavant. Il ne sera pas synchronisé. + + + The folder %1 has surpassed the set folder size limit of %2MB. + Le dossier %1 a dépassé la taille limite fixée de %2 Mo. + + + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Le dossier %1 a été créé mais il était exclu de la synchronisation auparavant. Les données qu'il contient ne seront pas synchronisées. + + + Virtual file download failed with code "%1", status "%2" and error message "%3" + Le téléchargement du fichier virtuel a échoué avec le code "%1", statut "%2" et le message d'erreur "%3" + + + Would you like to stop syncing this folder? + Voulez vous arrêter la synchronisation de ce dossier ? + + OCC::FolderCreationDialog - + %1 Create new folder + + + + Could not create a folder! Check your write permissions. + Impossible de créer le dossier ! Veuillez vérifier vos permissions d’écriture. + + Create new folder Créer un nouveau dossier - Enter folder name Saisissez le nom du dossier - - Folder already exists - Le dossier existe déjà - - - Error Erreur - - Could not create a folder! Check your write permissions. - Impossible de créer le dossier ! Veuillez vérifier vos permissions d’écriture. + Folder already exists + Le dossier existe déjà - + OCC::FolderMan - - Could not reset folder state - Impossible de réinitialiser l'état du dossier + %1 (Sync is paused) + %1 (Synchronisation en pause) - - - (backup) - (sauvegarde) + + (backup %1) + - - (backup %1) - (sauvegarde %1) + (backup) + - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Un ancien fichier journal "%1" a été trouvé, mais ne peut être supprimé. Veuillez vous assurer qu’aucune application ne l'utilise en ce moment. - - Undefined state. - Statut indéfini. + Could not reset folder state + Impossible de réinitialiser l'état du dossier - - Waiting to start syncing. - En attente de synchronisation. + Last sync was successful. + Synchronisation terminée avec succès - - Preparing for sync. - Préparation de la synchronisation. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation pour %2. - - Syncing %1 of %2 (A few seconds left) - Synchronisation de %1 sur %2 (il reste quelques secondes) + Please choose a different location. %1 is already being used as a sync folder. + Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation. - - Syncing %1 of %2 (%3 left) - Synchronisation de %1 sur %2 (%3 restant⸱s) + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Veuillez choisir un emplacement différent. %1 est déjà contenu dans un dossier utilisé comme dossier de synchronisation. - - Syncing %1 of %2 - Synchronisation de %1 sur %2 + Please choose a different location. The path %1 doesn't exist. + Veuillez choisir un emplacement différent. Le chemin %1 n'existe pas. - - Syncing %1 (A few seconds left) - Synchronisation de %1 (il reste quelques secondes) + Please choose a different location. The path %1 isn't a folder. + Veuillez choisir un emplacement différent. Le chemin %1 n'est pas un dossier. - - Syncing %1 (%2 left) - Synchronisation de %1 (%2 restant⸱s) + Please choose a different location. The selected folder isn't valid. + Veuillez choisir un emplacement différent. Le dossier sélectionné n'est pas valide. - - Syncing %1 - Synchronisation de %1 + Please choose a different location. You don't have enough permissions to write to %1. + folder location + Veuillez choisir un emplacement différent. Vous ne disposez pas d'autorisations suffisantes pour écrire dans %1. - - Sync is running. - Synchronisation en cours + Preparing for sync. + Préparation de la synchronisation. + + + Setup error. + Erreur de paramétrage. - Sync finished with unresolved conflicts. Synchronisation terminée avec des conflits non résolus. - - Last sync was successful. - Synchronisation terminée avec succès + Sync is paused. + La synchronisation est en pause. - - Setup error. - Erreur de paramétrage. + Sync is running. + Synchronisation en cours - Sync request was cancelled. La requête de synchronisation a été annulée. - - Please choose a different location. The selected folder isn't valid. - Veuillez choisir un emplacement différent. Le dossier sélectionné n'est pas valide. + Syncing %1 + Synchronisation de %1 - - - Please choose a different location. %1 is already being used as a sync folder. - Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation. + Syncing %1 (%2 left) + Synchronisation de %1 (%2 restant⸱s) - - Please choose a different location. The path %1 doesn't exist. - Veuillez choisir un emplacement différent. Le chemin %1 n'existe pas. - - - - Please choose a different location. The path %1 isn't a folder. - Veuillez choisir un emplacement différent. Le chemin %1 n'est pas un dossier. + Syncing %1 (A few seconds left) + Synchronisation de %1 (il reste quelques secondes) - - - Please choose a different location. You don't have enough permissions to write to %1. - folder location - Veuillez choisir un emplacement différent. Vous ne disposez pas d'autorisations suffisantes pour écrire dans %1. + Syncing %1 of %2 + Synchronisation de %1 sur %2 - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Veuillez choisir un emplacement différent. %1 est déjà contenu dans un dossier utilisé comme dossier de synchronisation. + Syncing %1 of %2 (%3 left) + Synchronisation de %1 sur %2 (%3 restant⸱s) - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation pour %2. + Syncing %1 of %2 (A few seconds left) + Synchronisation de %1 sur %2 (il reste quelques secondes) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2545,207 +2101,161 @@ Pour résoudre ce problème: veuillez enlever %1 d'un des comptes et créer Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichiers de bases de données de synchronisation dans un seul dossier. Veuillez vérifier si %1 contient des fichiers .sync_*.db périmés ou inutilisés et supprimez-les. - - Sync is paused. - La synchronisation est en pause. - - - - Please open the app settings to grant access to the sync folders. - Veuillez ouvrir les paramètres de l’application pour accorder l’accès aux dossiers de synchronisation. + Undefined state. + Statut indéfini. - - %1 (Sync is paused) - %1 (Synchronisation en pause) + Waiting to start syncing. + En attente de synchronisation. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Ajouter une synchronisation de dossier - - - - - - Grant access - Accorder l’accès + Add Folder Sync + - File Fichier - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Vous devez être connecté pour ajouter un dossier + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Cliquez sur ce bouton pour ajouter un dossier à synchroniser. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 sur %4) - - Could not decrypt! - Déchiffrage impossible ! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Une erreur est survenue lors du chargement de la liste des dossiers depuis le serveur. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 sur %2, fichier %3 sur %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - Suite à de récentes améliorations en matière de sécurité, le client n’a plus accès au dossier. Votre approbation est nécessaire une seule fois pour rétablir l’accès. Veuillez sélectionner la racine du dossier de synchronisation. + %5 left, %1 of %2, file %3 of %4 + %5 restantes, %1 sur %2, fichier %3 sur %4 - - Virtual file support is enabled. - Support des fichiers virtuels activé. + , + , - - Signed out - Session fermée + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Quelques secondes restantes, %1 de %2, fichier %3 parmi %4 - - Synchronizing virtual files in local folder - Synchronisation des fichiers virtuels dans le dossier local + About to start syncing + Sur le point de démarrer la synchronisation - - Synchronizing files in local folder - Synchronisation des fichiers dans le dossier local + Checking for changes in local "%1" + Vérification des modifications dans "%1" local - Checking for changes in remote "%1" Vérification des modifications dans "%1" distant - - Checking for changes in local "%1" - Vérification des modifications dans "%1" local - - - - Syncing local and remote changes - Synchronisation des changements locaux et distants + Click this button to add a folder to synchronize. + Cliquez sur ce bouton pour ajouter un dossier à synchroniser. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + Déchiffrage impossible ! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Télécharger %1/s - - File %1 of %2 - Fichier %1 sur %2 - - - - There are unresolved conflicts. Click for details. - Il y a des conflits non résolus. Cliquez pour plus de détails. - - - - - , - , + Error while loading the list of folders from the server. + Une erreur est survenue lors du chargement de la liste des dossiers depuis le serveur. - Fetching folder list from server … Récupération de la liste des dossiers depuis le serveur... - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Fichier %1 sur %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Téléverser %1/s + Preparing to sync … + Préparation de la synchronisation... + + + Signed out + Session fermée - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Synchronisation des fichiers dans le dossier local - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 sur %4) + Synchronizing virtual files in local folder + Synchronisation des fichiers virtuels dans le dossier local - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Synchronisation des changements locaux et distants - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Quelques secondes restantes, %1 de %2, fichier %3 parmi %4 + There are unresolved conflicts. Click for details. + Il y a des conflits non résolus. Cliquez pour plus de détails. - - %5 left, %1 of %2, file %3 of %4 - %5 restantes, %1 sur %2, fichier %3 sur %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Téléverser %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 sur %2, fichier %3 sur %4 + Virtual file support is enabled. + Support des fichiers virtuels activé. - Waiting for %n other folder(s) … - En attente de %n autre dossier…En attente de %n autres dossiers…En attente de %n autres dossiers… + + En attente de %n autre dossier… + En attente de %n autres dossiers… + - - About to start syncing - Sur le point de démarrer la synchronisation + You need to be connected to add a folder + Vous devez être connecté pour ajouter un dossier - - Preparing to sync … - Préparation de la synchronisation... + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. L'observateur n'a pas reçu de notification de test. @@ -2753,7 +2263,6 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Ce problème survient généralement lorsque les points de surveillance inotify sont épuisés. Consultez la FAQ pour plus de détails. @@ -2761,12 +2270,10 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizard - Add Folder Sync Connection Ajouter une connexion de synchronisation de dossiers - Add Sync Connection Ajouter la synchronisation @@ -2774,490 +2281,453 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Cliquez pour choisir un dossier local à synchroniser. - Enter the path to the local folder. Entrez le chemin du dossier local. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Sélectionnez le dossier source - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Créer un dossier distant + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Entrez le nom du nouveau dossier à créer dans "%1" : + Authentication failed accessing %1 + Erreur d'authentification lors de l'accès à %1 - - Folder was successfully created on %1. - Le dossier a été créé sur %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Erreur d'authentification lors de l'accès à %1 + Choose this to sync the entire account + Sélectionnez ceci pour synchroniser l'ensemble du compte + + + Create Remote Folder + Créer un dossier distant + + + Create folder + Créer un dossier + + + Enter the name of the new folder to be created below "%1": + Entrez le nom du nouveau dossier à créer dans "%1" : - Failed to create the folder on %1. Please check manually. Échec à la création du dossier sur %1. Veuillez vérifier manuellement. - Failed to list a folder. Error: %1 Impossible de lister un dossier. Erreur : %1 - - Choose this to sync the entire account - Sélectionnez ceci pour synchroniser l'ensemble du compte + Folder was successfully created on %1. + Le dossier a été créé sur %1 - - Please choose a different location. %1 is already being synced to %2. Veuillez choisir un emplacement différent. %1 est déjà synchronisé avec %2. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Rafraîchir + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. Vous synchronisez déjà le sous-dossier %1 à %2. - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Utiliser les fichiers virtuels au lieu de télécharger le contenu immédiatement %1 - - - - (experimental) (expérimental) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Vous ne pouvez pas définir la racine d'une partition Windows pour votre dossier local. Veuillez choisir un (sous)dossier de la partition. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + + + + Use virtual files instead of downloading content immediately %1 + Utiliser les fichiers virtuels au lieu de télécharger le contenu immédiatement %1 - Virtual files are not supported at the selected location Les fichiers virtuels ne sont pas pris en charge à l'emplacement sélectionné - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Vous ne pouvez pas définir la racine d'une partition Windows pour votre dossier local. Veuillez choisir un (sous)dossier de la partition. + + - OCC::GETFileJob + OCC::GeneralSettings - - No E-Tag received from server, check Proxy/Gateway - Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle + &Automatically check for updates + &Vérifier automatiquement les mises à jour - - We received a different E-Tag for resuming. Retrying next time. - Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois. + &Launch on System Startup + &Lancer au démarrage du système - - We received an unexpected download Content-Length. - Nous avons reçu un téléchargement de Contenu-Longeur inattendu + &Restart && Update + Redémarrer et Mettre à jour - - Server returned wrong content-range - Le serveur a retourné une gamme de contenu erronée + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - bêta: contient des versions avec de nouvelles fonctionnalités qui ne peuvent pas être testées en profondeur +- quotidien: contient des versions créées quotidiennement uniquement à des fins de test et de développement + +La rétrogradation des versions n'est pas possible immédiatement: passer de la version bêta à la version stable signifie attendre la nouvelle version stable. - - Connection Timeout - Délai d'attente de connexion dépassé + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - entreprise: contient des versions stables pour les clients. + +La rétrogradation des versions n'est pas possible immédiatement: passer de stable à entreprise signifie attendre la nouvelle version d'entreprise. - - - OCC::GeneralSettings - - Show Call Notifications - Afficher les notifications d'appel + Advanced + Avancés - - For System Tray - Pour la zone de notification système + Ask for confirmation before synchronizing external storages + Demander confirmation avant de synchroniser des stockages externes - - Show Chat Notifications - Afficher les notifications de discussion + Ask for confirmation before synchronizing new folders larger than + Demander confirmation avant de synchroniser les dossiers plus grands que - - Show Server &Notifications - Afficher les &notifications serveur + Automatically disable synchronisation of folders that overcome limit + Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite fixée - - Advanced - Avancés + Cancel + Annuler - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - Mo + Change update channel + Changer de canal de mise à jour - - Ask for confirmation before synchronizing external storages - Demander confirmation avant de synchroniser des stockages externes + Changing update channel? + Changement du canal de mise à jour ? - - &Launch on System Startup - &Lancer au démarrage du système + Check Now + Vérifier maintenant - - General Settings - Paramètres généraux + Create Debug Archive + Créer une archive de débogage - - General settings - Paramètres généraux + Data Protection + - - Use &Monochrome Icons - Utiliser les icônes &monochromes + Debug Archive Created + Archive de débogage créée - - Show &Quota Warning Notifications - Afficher les notifications d'avertissement de &quota + Desktop client x.x.x + Client de bureau x.x.x - - Ask for confirmation before synchronizing new folders larger than - Demander confirmation avant de synchroniser les dossiers plus grands que + Edit &Ignored Files + Modifier les fichiers exclus - - Notify when synchronised folders grow larger than specified limit - Notifier lorsque les dossiers synchronisés dépassent la limite spécifiée + For System Tray + Pour la zone de notification système - - Automatically disable synchronisation of folders that overcome limit - Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite fixée + General Settings + Paramètres généraux - - Move removed files to trash - Déplacer les fichiers supprimés vers la corbeille + Legal Notice + Mentions légales - - Show sync folders in &Explorer's navigation pane - Afficher les dossiers synchronisés dans le panneau de navigation de l'&Explorateur de fichiers + MB + Trailing part of "Ask confirmation before syncing folder larger than" + Mo - - Server poll interval - Intervalle de vérification du serveur + More Information + + + + Move removed files to trash + Déplacer les fichiers supprimés vers la corbeille - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - secondes (si le Client Push n'est pas disponible) + Necessary data + - - Edit &Ignored Files - Modifier les fichiers exclus + Notify when synchronised folders grow larger than specified limit + Notifier lorsque les dossiers synchronisés dépassent la limite spécifiée - - - Create Debug Archive - Créer une archive de débogage + Open Source Software + - - Info - Informations + Privacy Policy + - - Desktop client x.x.x - Client de bureau x.x.x + Redact information deemed sensitive before sharing! Debug archive created at %1 + Veuillez masquer les informations sensibles avant de les partager ! Archive de débogage créée dans %1 - - Update channel - Canal de mise à jour + Required to ensure that the software can be used as expected + - - &Automatically check for updates - &Vérifier automatiquement les mises à jour + Restore &Default + Restaurer les valeurs par défaut - - Check Now - Vérifier maintenant + Restore to &%1 + Rétablir vers &%1 - - Usage Documentation - Documentation d'utilisation + Send anonymous use + - - Legal Notice - Mentions légales + Server notifications that require attention. + Notifications du serveur requérant votre attention. - - Restore &Default - Restaurer les valeurs par défaut + Server poll interval + Intervalle de vérification du serveur - - &Restart && Update - Redémarrer et Mettre à jour + Show &Quota Warning Notifications + Afficher les notifications d'avertissement de &quota - - Server notifications that require attention. - Notifications du serveur requérant votre attention. + Show Call Notifications + Afficher les notifications d'appel - - Show chat notification dialogs. - Afficher les boîtes de dialogue de notification de chat. + Show Chat Notifications + Afficher les notifications de discussion + + + Show Server &Notifications + Afficher les &notifications serveur - Show call notification dialogs. Montre les fenêtres de notification d'appel. - - Show notification when quota usage exceeds 80%. - Afficher une notification lorsque l’utilisation du quota dépasse 80 %. + Show chat notification dialogs. + Afficher les boîtes de dialogue de notification de chat. - - You cannot disable autostart because system-wide autostart is enabled. - Vous ne pouvez pas désactiver le démarrage automatique parce que le démarrage automatique à l'échelle du système est activé. + Show notification when quota usage exceeds 80%. + Afficher une notification lorsque l’utilisation du quota dépasse 80 %. - - Restore to &%1 - Rétablir vers &%1 + Show sync folders in &Explorer's navigation pane + Afficher les dossiers synchronisés dans le panneau de navigation de l'&Explorateur de fichiers - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - Connecté à un système d'entreprise. Le canal de mise à jour (%1) ne peut pas être modifié. + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + Le canal détermine quelles mises à niveau seront proposées à l'installation: + - stable: contient des versions testées et considérées comme fiables + - - stable - stable + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - beta - bêta + Update channel + Canal de mise à jour - - daily - quotidien + Updates + - - enterprise - enterprise + Usage Documentation + Documentation d'utilisation - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - bêta: contient des versions avec de nouvelles fonctionnalités qui ne peuvent pas être testées en profondeur -- quotidien: contient des versions créées quotidiennement uniquement à des fins de test et de développement - -La rétrogradation des versions n'est pas possible immédiatement: passer de la version bêta à la version stable signifie attendre la nouvelle version stable. + Use &Monochrome Icons + Utiliser les icônes &monochromes - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - entreprise: contient des versions stables pour les clients. - -La rétrogradation des versions n'est pas possible immédiatement: passer de stable à entreprise signifie attendre la nouvelle version d'entreprise. + You cannot disable autostart because system-wide autostart is enabled. + Vous ne pouvez pas désactiver le démarrage automatique parce que le démarrage automatique à l'échelle du système est activé. - - Changing update channel? - Changement du canal de mise à jour ? + Zip Archives + Archives Zip - - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - Le canal détermine quelles mises à niveau seront proposées à l'installation: - - stable: contient des versions testées et considérées comme fiables - + beta + bêta - - Change update channel - Changer de canal de mise à jour + daily + quotidien - - Cancel - Annuler + enterprise + enterprise - - Login Item Requires Approval - L’élément d’ouverture de session nécessite une approbation + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + secondes (si le Client Push n'est pas disponible) - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - L’élément d’ouverture de session a été enregistré, mais nécessite votre approbation pour être activé. Veuillez ouvrir les Réglages système → Général → Ouverture et activez %1. + stable + stable + + + OCC::GETFileJob - - Zip Archives - Archives Zip + Connection Timeout + Délai d'attente de connexion dépassé - - - Failed to Access File - + + No E-Tag received from server, check Proxy/Gateway + Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle - - Could not access the selected location. Please try again or choose a different location. - + Server returned wrong content-range + Le serveur a retourné une gamme de contenu erronée - - Debug Archive Created - Archive de débogage créée + We received a different E-Tag for resuming. Retrying next time. + Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois. - - Redact information deemed sensitive before sharing! Debug archive created at %1 - Veuillez masquer les informations sensibles avant de les partager ! Archive de débogage créée dans %1 + We received an unexpected download Content-Length. + Nous avons reçu un téléchargement de Contenu-Longeur inattendu - + OCC::GetOrCreatePublicLinkShare - + Could not retrieve or create the public link share. Error: + +%1 + Impossible de récupérer ou de créer le partage par lien public. + +%1 + + Password for share required Mot de passe requis - Please enter a password for your link share: Veuillez saisir un mot de passe pour votre lien partagé : - Sharing error Erreur de partage - - - Could not retrieve or create the public link share. Error: - -%1 - Impossible de récupérer ou de créer le partage par lien public. - -%1 - - + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + <a href="%1">Cliquez ici</a> pour demander un mot de passe d'application depuis l'interface web. + + + Enter Password + Saisissez le mot de passe + + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Merci de saisir %1 mot de passe :<br><br>Identifiant : %2<br>Compte : %3<br> - Reading from keychain failed with error: "%1" La lecture à partir du trousseau a échoué avec l'erreur : "%1" - - - Enter Password - Saisissez le mot de passe - - - - <a href="%1">Click here</a> to request an app password from the web interface. - <a href="%1">Cliquez ici</a> pour demander un mot de passe d'application depuis l'interface web. - - + OCC::IgnoreListEditor - - Ignored Files Editor - Éditeur d'exclusion de fichiers + Files Ignored by Patterns + Fichiers ignorés par modèles - Global Ignore Settings Paramètres globaux d'exclusion - - Sync hidden files - Synchroniser les fichiers cachés + Ignored Files Editor + Éditeur d'exclusion de fichiers - - Files Ignored by Patterns - Fichiers ignorés par modèles + Sync hidden files + Synchroniser les fichiers cachés - This entry is provided by the system at "%1" and cannot be modified in this view. Cette entrée est fournie par le système dans "%1" et ne peut être modifiée dans cette vue. @@ -3265,32 +2735,26 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d OCC::IgnoreListTableWidget - - Pattern - Modèle - + Add + Ajouter + - + Add a new ignore pattern: + Ajouter un nouveau modèle d'exclusion : + + Allow Deletion Autoriser la suppression - - Add - Ajouter - - - - Remove - Retirer + Cannot write changes to "%1". + Impossible d'écrire les modifications sur "%1". - - Remove all - Tout retirer + Could not open file + Impossible d'ouvrir le fichier - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3298,158 +2762,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Les éléments dont la suppression est autorisée seront supprimés s'ils empêchent la suppression d'un répertoire. Cette fonction est utile pour les métadonnées. - - Could not open file - Impossible d'ouvrir le fichier + Ignore Pattern + - - Cannot write changes to "%1". - Impossible d'écrire les modifications sur "%1". + Pattern + Modèle - - Add Ignore Pattern - Ajouter un modèle d'exclusion + Remove + Retirer - - Add a new ignore pattern: - Ajouter un nouveau modèle d'exclusion : + Remove all + Tout retirer - + OCC::InvalidFilenameDialog - - Invalid filename - Nom de fichier invalide + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Impossible de renommer le fichier parce qu'un fichier avec le même nom existe déjà sur le serveur. Merci de choisir un autre nom. - - The file could not be synced because it contains characters which are not allowed on this system. - Le fichier n'a pas pu être synchronisé parce qu'il contiens des caractères invalides ou non-supportés par votre système. + Checking rename permissions … + Vérification des permissions de renommage... - - Error - Erreur + Could not rename file. Please make sure you are connected to the server. + Impossible de renommer le fichier. Veuillez vous certifier que vous êtes bien connecté au serveur. - - Please enter a new name for the file: - Veuillez saisir le nouveau nom du fichier : + Could not rename local file. %1 + Impossible de renommer le dossier local %1 - - - New filename - Nouveau nom de fichier + + Error + Erreur - - Rename file - Renommer le fichier + Failed to fetch permissions with error %1 + Erreur à la récupération des permissions : %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - Le fichier "%1" n'a pas pu être synchronisé car son nom contient des caractères qui ne sont pas autorisés sur ce système. + Filename contains illegal characters: %1 + Le nom du fichier contiens des caractères illégaux: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - Les caractères suivants ne sont pas autorisés sur ce système : \ / : ? * " < > | espaces en début et fin de chaîne + Filename contains leading and trailing spaces. + Le nom de fichier contient des espaces en début ou en fin de chaîne. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - Le fichier "%1" n'a pas pu être synchronisé, car le nom contient des caractères qui ne sont pas autorisés sur le serveur. + Filename contains leading spaces. + Le nom du fichier contient des espaces au début. - - The following characters are not allowed: %1 - Les caractères suivants ne sont pas autorisés : %1 + Filename contains trailing spaces. + Le nom de fichier contient des espaces à la fin. - - The following basenames are not allowed: %1 - Les noms de base suivants de fichiers ne sont pas autorisés : %1 + Invalid filename + Nom de fichier invalide - - The following filenames are not allowed: %1 - Les noms de fichiers suivants ne sont pas autorisés : %1 + New filename + Nouveau nom de fichier - - The following file extensions are not allowed: %1 - Les extensions de fichiers suivantes ne sont pas autorisées : %1 + Please enter a new name for the file: + Veuillez saisir le nouveau nom du fichier : - - Checking rename permissions … - Vérification des permissions de renommage... + Rename file + Renommer le fichier - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Vous n'avez pas la permission de renommer ce fichier. Veuillez demander à son auteur de le renommer. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + Le fichier "%1" n'a pas pu être synchronisé, car le nom contient des caractères qui ne sont pas autorisés sur le serveur. - - Failed to fetch permissions with error %1 - Erreur à la récupération des permissions : %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + Le fichier "%1" n'a pas pu être synchronisé car son nom contient des caractères qui ne sont pas autorisés sur ce système. - - Filename contains leading and trailing spaces. - Le nom de fichier contient des espaces en début ou en fin de chaîne. + The file could not be synced because it contains characters which are not allowed on this system. + Le fichier n'a pas pu être synchronisé parce qu'il contiens des caractères invalides ou non-supportés par votre système. - - Filename contains leading spaces. - Le nom du fichier contient des espaces au début. + The following basenames are not allowed: %1 + Les noms de base suivants de fichiers ne sont pas autorisés : %1 - - Filename contains trailing spaces. - Le nom de fichier contient des espaces à la fin. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + Les caractères suivants ne sont pas autorisés sur ce système : \ / : ? * " < > | espaces en début et fin de chaîne - - Use invalid name - Nom invalide + The following characters are not allowed: %1 + Les caractères suivants ne sont pas autorisés : %1 - - Filename contains illegal characters: %1 - Le nom du fichier contiens des caractères illégaux: %1 + The following file extensions are not allowed: %1 + Les extensions de fichiers suivantes ne sont pas autorisées : %1 - - Could not rename file. Please make sure you are connected to the server. - Impossible de renommer le fichier. Veuillez vous certifier que vous êtes bien connecté au serveur. + The following filenames are not allowed: %1 + Les noms de fichiers suivants ne sont pas autorisés : %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Impossible de renommer le fichier parce qu'un fichier avec le même nom existe déjà sur le serveur. Merci de choisir un autre nom. + Use invalid name + Nom invalide - - Could not rename local file. %1 - Impossible de renommer le dossier local %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Vous n'avez pas la permission de renommer ce fichier. Veuillez demander à son auteur de le renommer. - + OCC::LegacyAccountSelectionDialog - Legacy import Importation héritée - Select the accounts to import from the legacy configuration: Sélectionnez les comptes à importer à partir de la configuration héritée : @@ -3457,36 +2891,37 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e OCC::LegalNotice - - - Legal notice - Notice légale + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + - + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> + <p>Sous licence GNU General Public License (GPL) Version 2.0 ou supérieure.</p> + + Close Fermer - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - - - - - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - <p>Sous licence GNU General Public License (GPL) Version 2.0 ou supérieure.</p> + Legal notice + Notice légale - + OCC::LogBrowser - + Enable logging to temporary folder + Activer la journalisation dans le dossier temporaire + + Log Output Consigner la sortie dans des fichiers de log - + Open folder + Ouvrir le dossier + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3495,415 +2930,393 @@ Comme ces fichiers de log peuvent devenir lourds, le client en commence un nouve Si activés, les logs seront écrits dans %1 - - Enable logging to temporary folder - Activer la journalisation dans le dossier temporaire - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Ce paramètre persiste lors des redémarrages du client. Notez que l'utilisation de toute option de ligne de commande de journalisation remplacera ce paramètre. - - - Open folder - Ouvrir le dossier - - + OCC::Logger - - - Error - Erreur - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Le fichier "%1"<br/>ne peut pas être ouvert en écriture.<br/><br/>Le fichier de log <b>ne peut pas</b> être sauvegardé !</nobr> - + + Error + Erreur + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Impossible de démarrer l'édition locale. - - - An error occurred during setup. Une erreur est survenue pendant l'installation - Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossible de trouver un fichier à modifier localement. Assurez-vous que son chemin est valide et qu'il est synchronisé localement. - Could not get file ID. Impossible d'obtenir l'identifiant du fichier. - Could not get file identifier. Impossible d'obtenir l'identifiant du fichier. - + Could not start editing locally. + Impossible de démarrer l'édition locale. + + The file identifier is empty. L'identifiant du fichier est vide. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Nouvelle version disponible + Download Bandwidth + Bande passante de réception - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Une nouvelle version du client %1 est disponible.</p><p><b>%2</b> est disponible en téléchargement. La version actuellement installée est %3.<p> + HTTP(S) proxy + Proxy HTTP(S) - - Update Failed - Échec de mise à jour + Host + Hôte - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Une nouvelle version du Client %1 est disponible mais la mise à jour a échoué.</p><p><b>%2</b> a été téléchargé. La version installée est %3. Si vous confirmez le redémarrage et la mise à jour, votre ordinateur peut redémarrer pour terminer l'installation.</p> + Hostname of proxy server + Nom d'hôte du serveur proxy - - Ask again later - Demander plus tard + KBytes/s + Ko/s - - Restart and update - Redémarrer et mettre à jour + Limit automatically + Limiter automatiquement - - Update manually - Mettre à jour manuellement + Limit to + Limiter à - - Skip this time - Ignorer pour cette fois + Limit to 3/4 of estimated bandwidth + Limiter aux 3/4 de la bande passante estimée - - Get update - Télécharger la version + Manually specify proxy + Spécifier manuellement le serveur proxy - - - OCC::NetworkSettings - - Proxy Settings - Paramètres de serveur proxy + No limit + Aucune limite - - Use system proxy - Utiliser les paramètres du système + No proxy + Aucun serveur proxy - - Host - Hôte + Note: proxy settings have no effects for accounts on localhost + Remarque: les paramètres de proxy n'ont aucun effet sur les comptes sur localhost - - Proxy server requires authentication - Le serveur proxy requiert une authentification + Password for proxy server + Mot de passe pour le serveur proxy - - Download Bandwidth - Bande passante de réception + Proxy Settings + Paramètres de serveur proxy - - - Limit to - Limiter à + Proxy server requires authentication + Le serveur proxy requiert une authentification - - - Limit to 3/4 of estimated bandwidth - Limiter aux 3/4 de la bande passante estimée + SOCKS5 proxy + Proxy SOCKS5 - - - - Limit automatically - Limiter automatiquement + + Upload Bandwidth + Bande passante d'émission - - - KBytes/s - Ko/s + Use system proxy + Utiliser les paramètres du système - - Note: proxy settings have no effects for accounts on localhost - Remarque: les paramètres de proxy n'ont aucun effet sur les comptes sur localhost - - - - Manually specify proxy - Spécifier manuellement le serveur proxy + Username for proxy server + Nom d’utilisateur pour le serveur proxy + + + OCC::NSISUpdater - - No proxy - Aucun serveur proxy + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Une nouvelle version du Client %1 est disponible mais la mise à jour a échoué.</p><p><b>%2</b> a été téléchargé. La version installée est %3. Si vous confirmez le redémarrage et la mise à jour, votre ordinateur peut redémarrer pour terminer l'installation.</p> - - - No limit - Aucune limite + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Une nouvelle version du client %1 est disponible.</p><p><b>%2</b> est disponible en téléchargement. La version actuellement installée est %3.<p> - - Upload Bandwidth - Bande passante d'émission + Ask again later + Demander plus tard - - Hostname of proxy server - Nom d'hôte du serveur proxy + Get update + Télécharger la version + + + New Version Available + Nouvelle version disponible - - Username for proxy server - Nom d’utilisateur pour le serveur proxy + Restart and update + Redémarrer et mettre à jour - - Password for proxy server - Mot de passe pour le serveur proxy + Skip this time + Ignorer pour cette fois - - HTTP(S) proxy - Proxy HTTP(S) + Update Failed + Échec de mise à jour - - SOCKS5 proxy - Proxy SOCKS5 + Update manually + Mettre à jour manuellement - + OCC::OCUpdater - - Could not check for new updates. - Impossible de vérifier la présence de nouvelles mises à jour. + %1 available. Restart application to start the update. + %1 disponible. Redémarrez l'application pour effectuer la mise à jour. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Une nouvelle mise à jour pour %1 est sur le point d'être installée. Le dispositif de mise à jour peut demander des autorisations supplémentaires au cours du processus. Votre ordinateur peut nécessiter un redémarrage pour terminer l'installation. - Checking update server … Vérification du serveur de mises à jour ... - - New %1 update ready - Une nouvelle mise à jour de %1 est disponible + Could not check for new updates. + Impossible de vérifier la présence de nouvelles mises à jour. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Une nouvelle mise à jour pour %1 est sur le point d'être installée. Le dispositif de mise à jour peut demander des autorisations supplémentaires au cours du processus. Votre ordinateur peut nécessiter un redémarrage pour terminer l'installation. + Could not download update. Please open %1 to download the update manually. + Impossible de télécharger la mise à jour. Ouvrez %1 pour télécharger manuellement la mise à jour. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Impossible de télécharger la mise à jour. Merci d'ouvrir <a href='%1'>%1</a> pour télécharger la mise à jour manuellement. - Downloading %1 … Téléchargement de %1 … - - %1 available. Restart application to start the update. - %1 disponible. Redémarrez l'application pour effectuer la mise à jour. + New %1 is available. Please open %2 to download the update. + Un nouveau %1 est disponible. Merci d'ouvrir %2 pour télécharger la mise à jour. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Impossible de télécharger la mise à jour. Merci d'ouvrir <a href='%1'>%1</a> pour télécharger la mise à jour manuellement. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + Un nouveau %1 est disponible. Merci d'ouvrir <a href='%2'>%2</a> pour télécharger la mise à jour. - - Could not download update. Please open %1 to download the update manually. - Impossible de télécharger la mise à jour. Ouvrez %1 pour télécharger manuellement la mise à jour. + New %1 update ready + Une nouvelle mise à jour de %1 est disponible - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - Un nouveau %1 est disponible. Merci d'ouvrir <a href='%2'>%2</a> pour télécharger la mise à jour. + No updates available. Your installation is the latest version. + Aucune mise à jour n'est disponible. Votre installation est la dernière version. - - New %1 is available. Please open %2 to download the update. - Un nouveau %1 est disponible. Merci d'ouvrir %2 pour télécharger la mise à jour. + Update Check + Recherche de mise à jour - - + Update status is unknown: Did not check for new updates. L'état du processus de mise à jour est inconnu. Impossible de vérifier la présence de mises à jour. - You are using the %1 update channel. Your installation is the latest version. Vous utilisez le canal de mise à jour %1. Votre installation est la dernière version. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - Aucune mise à jour n'est disponible. Votre installation est la dernière version. + %1 folder "%2" is synced to local folder "%3" + Le dossier %1 "%2" est synchronisé avec le dossier local "%3". - - Update Check - Recherche de mise à jour + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + espace libre %1 - - - OCC::OwncloudAdvancedSetupPage - - Connect - Connexion + (%1) + (%1) - - (experimental) (expérimental) - - - Use &virtual files instead of downloading content immediately %1 - Utiliser les fichiers virtuels plutôt que de télécharger le contenu immédiatement %1 + Connect + Connexion - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Les fichiers virtuels ne sont pas pris en charge pour les racines de partition Windows en tant que dossier local. Veuillez choisir un sous-dossier valide sous la lettre du lecteur. + In Finder's "Locations" sidebar section + Dans la section « Emplacements » du panneau latéral du Finder - - - %1 folder "%2" is synced to local folder "%3" - Le dossier %1 "%2" est synchronisé avec le dossier local "%3". + + Local Sync Folder + Dossier de synchronisation local - Sync the folder "%1" Synchroniser le dossier "%1" - - Warning: The local folder is not empty. Pick a resolution! - Avertissement : Le dossier local n'est pas vide. Choisissez une option. + There isn't enough free space in the local folder! + L'espace libre dans le dossier local est insuffisant ! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - espace libre %1 + Use &virtual files instead of downloading content immediately %1 + Utiliser les fichiers virtuels plutôt que de télécharger le contenu immédiatement %1 - Virtual files are not supported at the selected location Les fichiers virtuels ne sont pas pris en charge à l'emplacement sélectionné - - Local Sync Folder - Dossier de synchronisation local + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Les fichiers virtuels ne sont pas pris en charge pour les racines de partition Windows en tant que dossier local. Veuillez choisir un sous-dossier valide sous la lettre du lecteur. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Avertissement : Le dossier local n'est pas vide. Choisissez une option. + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - L'espace libre dans le dossier local est insuffisant ! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Impossible de se connecter à l'adresse sécurisée <em>%1</em>. Que souhaitez-vous faire ?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Impossible de se connecter au serveur via l'adresse sécurisée indiquée. Que souhaitez-vous faire ?</p></body></html> - - In Finder's "Locations" sidebar section - Dans la section « Emplacements » du panneau latéral du Finder + Configure client-side TLS certificate + Configurer le certificat TLS client - - - OCC::OwncloudConnectionMethodDialog - Connection failed Échec de la connexion - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Impossible de se connecter au serveur via l'adresse sécurisée indiquée. Que souhaitez-vous faire ?</p></body></html> + Retry unencrypted over HTTP (insecure) + Essayer en clair sur HTTP (non sécurisé) - Select a different URL Choisir une URL différente + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Essayer en clair sur HTTP (non sécurisé) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1 : %2 - - Configure client-side TLS certificate - Configurer le certificat TLS client + Account %1: %2 + Compte %1 : %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Impossible de se connecter à l'adresse sécurisée <em>%1</em>. Que souhaitez-vous faire ?</p></body></html> + Account synchronization is disabled + La synchronisation est en pause - + + Checking for changes in local "%1" + Vérification des modifications dans "%1" local + + + Checking for changes in remote "%1" + Vérification des modifications dans "%1" distant + + + Disconnected from %1 + Déconnecté de %1 + + + Disconnected from accounts: + Déconnecté des comptes : + + + Please sign in + Veuillez vous connecter + + + Terms of service + Conditions d'utilisation + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + Le serveur sur le compte %1 fonctionne avec une version non-supportée %2. Utiliser ce client avec des versions non-supportées du serveur n'est pas testé et est potentiellement dangereux. Procédez à vos risques et périls. + + + There are no sync folders configured. + Aucun dossier à synchroniser n'est configuré + + + Unsupported Server Version + Version du Serveur non prise en charge + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Votre compte %1 vous demande d'accepter les conditions générales d'utilisation de votre serveur. Vous serez redirigé vers %2 pour confirmer que vous l'avez lu et que vous l'acceptez. + + + macOS VFS for %1: A problem was encountered. + macOS VFS pour %1: Une erreur est survenue. + + + macOS VFS for %1: Last sync was successful. + macOS VFS pour %1: La dernière synchronisation a réussi. + + + macOS VFS for %1: Sync is running. + macOS VFS pour %1: Synchronisation en cours. + + OCC::OwncloudHttpCredsPage - &Email &Adresse mail - Connect to %1 Connexion à %1 - Enter user credentials Saisissez les identifiants de connexion de l'utilisateur @@ -3911,8 +3324,6 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Impossible de récupérer la date de modification du fichier en conflit %1 @@ -3920,220 +3331,184 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - Adresse URL visible dans la barre d'adresse de votre navigateur Web lorsque vous êtes connecté à %1. - - - &Next > &Suivant > - + Could not load certificate. Maybe wrong password? + Impossible de charger le certificat. Vérifiez le mot de passe saisi. + + Server address does not seem to be valid L'adresse du serveur ne semble pas être valide - - Could not load certificate. Maybe wrong password? - Impossible de charger le certificat. Vérifiez le mot de passe saisi. + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + Adresse URL visible dans la barre d'adresse de votre navigateur Web lorsque vous êtes connecté à %1. - + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b> Compte basé sur un fournisseur de fichiers %1 créé avec succès ! </b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Dossier de synchronisation local %1 créé avec succès !</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connecté avec succès à %1 : %2 version %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Échec de la connexion à %1 sur %2 :<br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">La création du dossier distant a échoué, probablement parce que les informations d'identification fournies sont fausses.</font><br/>Veuillez revenir en arrière et les vérifier.</p> - - Timeout while trying to connect to %1 at %2. - Délai d'attente dépassé lors de la connexion à %1 sur %2. + A sync connection from %1 to remote directory %2 was set up. + Une synchronisation entre le dossier local %1 et le dossier distant %2 a été configurée. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accès impossible. Afin de vérifier l'accès au serveur, <a href="%1">cliquez ici</a> et connectez-vous au service avec votre navigateur web. - - Invalid URL - URL invalide + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Impossible de supprimer et sauvegarder le dossier parce que le dossier ou un fichier qu'il contient est ouvert dans un autre programme. Merci de fermer le dossier ou le fichier et recommencer ou annuler la configuration. - - - Trying to connect to %1 at %2 … - Tentative de connexion à %1 sur %2 ... + Connection to %1 could not be established. Please check again. + La connexion à %1 n'a pu être établie. Veuillez réessayer. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La demande authentifiée au serveur a été redirigée vers "%1". L'URL est mauvaise, le serveur est mal configuré. + Could not create local folder %1 + Impossible de créer le dossier local %1 - - There was an invalid response to an authenticated WebDAV request - Il y a eu une réponse invalide à une demande WebDAV authentifiée + Creating local sync folder %1 … + Création du dossier local de synchronisation %1... - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - Le dossier de synchronisation local %1 existe déjà, configuration de la synchronisation.<br/><br/> + Error: %1 + Erreur : %1 - - Creating local sync folder %1 … - Création du dossier local de synchronisation %1... + Failed to connect to %1 at %2:<br/>%3 + Échec de la connexion à %1 sur %2 :<br/>%3 - - OK - OK + Folder rename failed + Echec du renommage du dossier - - failed. - échoué. + Invalid URL + URL invalide - - Could not create local folder %1 - Impossible de créer le dossier local %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Le dossier de synchronisation local %1 existe déjà, configuration de la synchronisation.<br/><br/> - No remote folder specified! Aucun dossier distant spécifié ! - - Error: %1 - Erreur : %1 - - - - creating folder on Nextcloud: %1 - Création du dossier sur Nextcloud : %1 + OK + OK - Remote folder %1 created successfully. Le dossier distant %1 a été créé avec succès. - - The remote folder %1 already exists. Connecting it for syncing. - Le dossier distant %1 existe déjà. Connexion. - - - - - The folder creation resulted in HTTP error code %1 - La création du dossier a généré le code d'erreur HTTP %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + La création du dossier distant "%1" a échouée avec l'erreur <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - La création du dossier distant a échoué car les identifiants de connexion sont erronés !<br/>Veuillez revenir en arrière et vérifier ces derniers.</p> + Successfully connected to %1! + Connecté avec succès à %1 ! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">La création du dossier distant a échoué, probablement parce que les informations d'identification fournies sont fausses.</font><br/>Veuillez revenir en arrière et les vérifier.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La demande authentifiée au serveur a été redirigée vers "%1". L'URL est mauvaise, le serveur est mal configuré. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - La création du dossier distant "%1" a échouée avec l'erreur <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + La création du dossier a généré le code d'erreur HTTP %1 - - A sync connection from %1 to remote directory %2 was set up. - Une synchronisation entre le dossier local %1 et le dossier distant %2 a été configurée. + The remote folder %1 already exists. Connecting it for syncing. + Le dossier distant %1 existe déjà. Connexion. - - Successfully connected to %1! - Connecté avec succès à %1 ! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + La création du dossier distant a échoué car les identifiants de connexion sont erronés !<br/>Veuillez revenir en arrière et vérifier ces derniers.</p> - - Connection to %1 could not be established. Please check again. - La connexion à %1 n'a pu être établie. Veuillez réessayer. + There was an invalid response to an authenticated WebDAV request + Il y a eu une réponse invalide à une demande WebDAV authentifiée - - Folder rename failed - Echec du renommage du dossier + Timeout while trying to connect to %1 at %2. + Délai d'attente dépassé lors de la connexion à %1 sur %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Impossible de supprimer et sauvegarder le dossier parce que le dossier ou un fichier qu'il contient est ouvert dans un autre programme. Merci de fermer le dossier ou le fichier et recommencer ou annuler la configuration. + Trying to connect to %1 at %2 … + Tentative de connexion à %1 sur %2 ... - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b> Compte basé sur un fournisseur de fichiers %1 créé avec succès ! </b></font> + creating folder on Nextcloud: %1 + Création du dossier sur Nextcloud : %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Dossier de synchronisation local %1 créé avec succès !</b></font> + failed. + échoué. - + OCC::OwncloudWizard - Add %1 account Ajout du compte %1 - - Skip folders configuration - Ignorer la configuration des dossiers + Back + Next button text in new account wizard + Retour - Cancel Annuler - - Proxy Settings - Proxy Settings button text in new account wizard - Paramètres de serveur proxy + Enable experimental feature? + Activer la fonction expérimentale ? + + + Enable experimental placeholder mode + Activer la fonction expérimentale de fichiers virtuels ? - Next Next button text in new account wizard Suivant - - Back - Next button text in new account wizard - Retour + Proxy Settings + Proxy Settings button text in new account wizard + Paramètres de serveur proxy - - Enable experimental feature? - Activer la fonction expérimentale ? + Skip folders configuration + Ignorer la configuration des dossiers - + Stay safe + Restez en sécurité + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4149,26 +3524,14 @@ Le passage à ce mode annulera toute synchronisation en cours. Il s'agit d'un nouveau mode expérimental. Si vous décidez de l'utiliser, veuillez signaler tout problème qui surviendrait. - - - Enable experimental placeholder mode - Activer la fonction expérimentale de fichiers virtuels ? - - - - Stay safe - Restez en sécurité - - + OCC::PasswordInputDialog - Password for share required Mot de passe requis pour le partage - Please enter a password for your share: Veuillez saisir un mot de passe pour votre partage : @@ -4176,7 +3539,6 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PollJob - Invalid JSON reply from the poll URL L'URL de sondage a renvoyé une réponse JSON non valide @@ -4184,344 +3546,259 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Les liens symboliques ne sont pas pris en charge par la synchronisation. + Cannot be renamed or uploaded. + Ne peut être renommé ou téléversé. + + + Cannot modify encrypted item because the selected certificate is not valid. + Impossible de modifier l'élément chiffré car le certificat sélectionné n'est pas valide. + + + Cannot sync due to invalid modification time + Impossible de synchroniser à cause d'une date de modification invalide + + + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflit de casse : fichier serveur téléchargé et renommé pour éviter le conflit. + + + Conflict: Server version downloaded, local copy renamed and not uploaded. + Conflit : la version du serveur a été téléchargée, la version locale a été renommée, mais pas téléversée. + + + Could not upload file, because it is open in "%1". + Impossible de téléverser le fichier, car il est ouvert dans « %1 ». + + + Error while deleting file record %1 from the database + Erreur à la suppression de l'enregistrement du fichier %1 de la base de données - - File is locked by another application. - Le fichier est verrouillé par une autre application. + Error while reading the database + Erreur de lecture de la base de données + + + File has extension reserved for virtual files. + Le fichier a une extension réservée pour les fichiers virtuels. - File is listed on the ignore list. Le fichier est présent dans la liste des fichiers exclus. - - File names ending with a period are not supported on this file system. - Les noms de fichier se terminant par un point ne sont pas pris en charge sur votre système. + File is not accessible on the server. + server error + Fichier non accessible sur le serveur. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Les noms de dossiers contenant le caractère "%1" ne sont pas pris en charge par ce système de fichiers. + File name contains at least one invalid character + Le nom du fichier contient au moins un caractère interdit + + + File name is a reserved name on this file system. + Le nom du fichier est un nom réservé sur ce système de fichiers. - File names containing the character "%1" are not supported on this file system. %1: the invalid character Les noms de fichiers contenant le caractère "%1" ne sont pas pris en charge par ce système de fichiers. - - Folder name contains at least one invalid character - Le nom du dossier contient au moins un caractère interdit + File names ending with a period are not supported on this file system. + Les noms de fichier se terminant par un point ne sont pas pris en charge sur votre système. - - File name contains at least one invalid character - Le nom du fichier contient au moins un caractère interdit + File/Folder is ignored because it's hidden. + Le fichier/dossier est exclu, car il est caché. - - Folder name is a reserved name on this file system. - Le nom du dossier est un nom réservé sur ce système de fichiers. + Filename contains leading and trailing spaces. + Nom de fichier contenant des espaces au début et à la fin. - - File name is a reserved name on this file system. - Le nom du fichier est un nom réservé sur ce système de fichiers. + Filename contains leading spaces. + Nom de fichier contenant des espaces au début. - Filename contains trailing spaces. Le nom du fichier finit par des espaces. - - - - - Cannot be renamed or uploaded. - Ne peut être renommé ou téléversé. + Filename is too long. + Le nom du fichier est trop long. - - Filename contains leading spaces. - Nom de fichier contenant des espaces au début. + Folder is not accessible on the server. + server error + Dossier non accessible sur le serveur. - - Filename contains leading and trailing spaces. - Nom de fichier contenant des espaces au début et à la fin. + Folder name contains at least one invalid character + Le nom du dossier contient au moins un caractère interdit - - Filename is too long. - Le nom du fichier est trop long. + Folder name is a reserved name on this file system. + Le nom du dossier est un nom réservé sur ce système de fichiers. - - File/Folder is ignored because it's hidden. - Le fichier/dossier est exclu, car il est caché. + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Les noms de dossiers contenant le caractère "%1" ne sont pas pris en charge par ce système de fichiers. - - Stat failed. - Stat échoué. + Ignored because of the "choose what to sync" blacklist + Exclus en raison de la liste noire "Sélectionner le contenu à synchroniser". - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Conflit : la version du serveur a été téléchargée, la version locale a été renommée, mais pas téléversée. + Moved to invalid target, restoring + Déplacé vers une cible invalide, restauration - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Conflit de casse : fichier serveur téléchargé et renommé pour éviter le conflit. + Not allowed because you don't have permission to add files in that folder + Non autorisé car vous n'avez pas la permission d'ajouter des fichiers dans ce dossier - - The filename cannot be encoded on your file system. - Le nom de fichier ne peut pas être encodé sur votre système de fichiers. + Not allowed because you don't have permission to add subfolders to that folder + Non autorisé car vous n'avez pas la permission d'ajouter des sous-dossiers dans ce dossier - - The filename is blacklisted on the server. - Le nom du fichier est sur la liste noire du serveur. + Not allowed to remove, restoring + Suppression non autorisée, restauration en cours - - Reason: the entire filename is forbidden. - Motif : le nom de fichier entier est interdit. + Not allowed to upload this file because it is read-only on the server, restoring + Non autorisé à téléverser ce fichier, car il est en lecture seule sur le serveur, restauration en cours - - Reason: the filename has a forbidden base name (filename start). - Motif : le nom de fichier a un nom de base interdit (début du nom de fichier). + Reason: the entire filename is forbidden. + Motif : le nom de fichier entier est interdit. - Reason: the file has a forbidden extension (.%1). Motif : le fichier a une extension interdite (.%1). - Reason: the filename contains a forbidden character (%1). Motif : le nom du fichier contient un caractère interdit (%1). - - File has extension reserved for virtual files. - Le fichier a une extension réservée pour les fichiers virtuels. + Reason: the filename has a forbidden base name (filename start). + Motif : le nom de fichier a un nom de base interdit (début du nom de fichier). - - Folder is not accessible on the server. - server error - Dossier non accessible sur le serveur. + Stat failed. + Stat échoué. - - File is not accessible on the server. - server error - Fichier non accessible sur le serveur. + Symbolic links are not supported in syncing. + Les liens symboliques ne sont pas pris en charge par la synchronisation. - - Cannot sync due to invalid modification time - Impossible de synchroniser à cause d'une date de modification invalide + The filename cannot be encoded on your file system. + Le nom de fichier ne peut pas être encodé sur votre système de fichiers. - - Upload of %1 exceeds %2 of space left in personal files. - Le téléversement de %1 dépasse les %2 d'espace restant de l'espace personnel. + The filename is blacklisted on the server. + Le nom du fichier est sur la liste noire du serveur. - Upload of %1 exceeds %2 of space left in folder %3. Le téléversement de %1 dépasse les %2 d'espace restant du dossier %3. - - Could not upload file, because it is open in "%1". - Impossible de téléverser le fichier, car il est ouvert dans « %1 ». - - - - Error while deleting file record %1 from the database - Erreur à la suppression de l'enregistrement du fichier %1 de la base de données - - - - - Moved to invalid target, restoring - Déplacé vers une cible invalide, restauration - - - - Cannot modify encrypted item because the selected certificate is not valid. - Impossible de modifier l'élément chiffré car le certificat sélectionné n'est pas valide. - - - - Ignored because of the "choose what to sync" blacklist - Exclus en raison de la liste noire "Sélectionner le contenu à synchroniser". - - - - Not allowed because you don't have permission to add subfolders to that folder - Non autorisé car vous n'avez pas la permission d'ajouter des sous-dossiers dans ce dossier - - - - Not allowed because you don't have permission to add files in that folder - Non autorisé car vous n'avez pas la permission d'ajouter des fichiers dans ce dossier - - - - Not allowed to upload this file because it is read-only on the server, restoring - Non autorisé à téléverser ce fichier, car il est en lecture seule sur le serveur, restauration en cours - - - - Not allowed to remove, restoring - Suppression non autorisée, restauration en cours - - - - Error while reading the database - Erreur de lecture de la base de données + Upload of %1 exceeds %2 of space left in personal files. + Le téléversement de %1 dépasse les %2 d'espace restant de l'espace personnel. - + OCC::PropagateDirectory - Could not delete file %1 from local DB Impossible de supprimer le fichier %1 de la base de données locale - Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide - - - - - - - The folder %1 cannot be made read-only: %2 - Le dossier %1 ne peut pas être mis en lecture seule : %2 - - - - - unknown exception - Exception inconnue - - - Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 - File is currently in use Le fichier est actuellement en cours d'utilisation - + + The folder %1 cannot be made read-only: %2 + Le dossier %1 ne peut pas être mis en lecture seule : %2 + + + unknown exception + Exception inconnue + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale + + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale - + Error updating metadata: %1 + Erreur lors de la mise à jour des métadonnées : %1 + + File %1 cannot be downloaded because encryption information is missing. Le fichier %1 ne peut pas être téléchargé car les informations de chiffrement sont manquantes. - - - Could not delete file record %1 from local DB - Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale + File %1 downloaded but it resulted in a local file name clash! + Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! - - The download would reduce free local disk space below the limit - Le téléchargement réduira l'espace disque libre en dessous de la limite + File %1 has invalid modified time reported by server. Do not save it. + Le fichier %1 présente une date de modification invalide sur le serveur. Enregistrement impossible. - - Free space on disk is less than %1 - Il y a moins de %1 d'espace libre sur le disque + File has changed since discovery + Le fichier a changé depuis sa découverte - - + File was deleted from server Le fichier a été supprimé du serveur - - The file could not be downloaded completely. - Le fichier n'a pas pu être téléchargé intégralement. - - - - The downloaded file is empty, but the server said it should have been %1. - Le fichier téléchargé est vide bien que le serveur indique que sa taille devrait être de %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - Le fichier %1 présente une date de modification invalide sur le serveur. Enregistrement impossible. + Free space on disk is less than %1 + Il y a moins de %1 d'espace libre sur le disque - - File %1 downloaded but it resulted in a local file name clash! - Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! + The download would reduce free local disk space below the limit + Le téléchargement réduira l'espace disque libre en dessous de la limite - - Error updating metadata: %1 - Erreur lors de la mise à jour des métadonnées : %1 + The downloaded file is empty, but the server said it should have been %1. + Le fichier téléchargé est vide bien que le serveur indique que sa taille devrait être de %1. - The file %1 is currently in use Le fichier %1 est en cours d'utilisation - - - File has changed since discovery - Le fichier a changé depuis sa découverte + The file could not be downloaded completely. + Le fichier n'a pas pu être téléchargé intégralement. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. Restauration échouée : %2 - - - ; Restoration Failed: %1 ; Échec de la restauration : %1 - A file or folder was removed from a read only share, but restoring failed: %1 Un fichier ou un dossier a été supprimé d'un partage en lecture seule, mais la restauration a échoué : %1 @@ -4529,130 +3806,102 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - impossible de supprimer le fichier %1. Erreur : %2 + Could not create folder %1 + Impossible de créer le dossier %1 + + + Error updating metadata: %1 + Erreur lors de la mise à jour des métadonnées : %1 - Folder %1 cannot be created because of a local file or folder name clash! Le dossier %1 n'a pu être créé à cause d'un conflit local de nom de fichier ou de dossier ! - - Could not create folder %1 - Impossible de créer le dossier %1 + The file %1 is currently in use + Le fichier %1 est en cours d'utilisation - - - - + The folder %1 cannot be made read-only: %2 Le dossier %1 ne peut être rendu en lecture seule : %2 - - unknown exception - Exception inconnue - - - - Error updating metadata: %1 - Erreur lors de la mise à jour des métadonnées : %1 + could not delete file %1, error: %2 + impossible de supprimer le fichier %1. Erreur : %2 - - The file %1 is currently in use - Le fichier %1 est en cours d'utilisation + unknown exception + Exception inconnue - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale + + Could not remove %1 because of a local file name clash Impossible de retirer %1 en raison d'un conflit de nom de fichier local - - - Temporary error when removing local item removed from server. Erreur temporaire lors de la suppression d'un élément local supprimé du serveur. - - - Could not delete file record %1 from local DB - Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - Le dossier %1 n’a pu être renommé à cause d’un conflit local de nom de fichier ou de dossier ! - - - - File %1 downloaded but it resulted in a local file name clash! - Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! + Could not delete file record %1 from local DB + Impossible de récupérer le fichier %1 depuis la base de données locale - - - + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale - - Error setting pin state Erreur lors de la modification de l'état du fichier - Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 - - The file %1 is currently in use - Le fichier %1 est en cours d'utilisation - - - Failed to propagate directory rename in hierarchy Impossible de propager le renommage du dossier dans la hiérarchie - Failed to rename file Échec lors du changement de nom du fichier - - Could not delete file record %1 from local DB - Impossible de récupérer le fichier %1 depuis la base de données locale + File %1 downloaded but it resulted in a local file name clash! + Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur reçue est "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + Le dossier %1 n’a pu être renommé à cause d’un conflit local de nom de fichier ou de dossier ! + + + The file %1 is currently in use + Le fichier %1 est en cours d'utilisation + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur reçue est "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur retournée est "%1 %2". @@ -4660,203 +3909,152 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". + Error writing metadata to the database: %1 + Erreur d'écriture des métadonnées dans la base de données : %1 - Failed to encrypt a folder %1 Échec du chiffrement d'un dossier %1 - - Error writing metadata to the database: %1 - Erreur d'écriture des métadonnées dans la base de données : %1 - - - The file %1 is currently in use Le fichier %1 est en cours d'utilisation - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Impossible de récupérer le fichier %1 depuis la base de données locale + + + Could not get file %1 from local DB + Impossible de récupérer le fichier %1 depuis la base de données locale + + Could not rename %1 to %2, error: %3 Impossible de renommer %1 en %2, erreur: %3 - - + Error setting pin state + Erreur lors de la modification de l'état du fichier + + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 - - + Error writing metadata to the database + Erreur à l'écriture des métadonnées dans la base de données + + The file %1 is currently in use Le fichier %1 est en cours d'utilisation - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - Impossible de récupérer le fichier %1 depuis la base de données locale - - - - Could not delete file record %1 from local DB - Impossible de récupérer le fichier %1 depuis la base de données locale + Error updating metadata: %1 + Erreur lors de la mise à jour des métadonnées : %1 - - Error setting pin state - Erreur lors de la modification de l'état du fichier + Failed to unlock encrypted folder. + Impossible de déverrouiller le dossier chiffré. - - Error writing metadata to the database - Erreur à l'écriture des métadonnées dans la base de données + Failed to upload encrypted file. + Échec de téléversement du fichier chiffré. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Impossible de téléverser le fichier %1 car un autre fichier de même nom existe, différent seulement par la casse. - - - File %1 has invalid modification time. Do not upload to the server. Le fichier %1 présente une heure de modification invalide. Ne téléversez pas sur le serveur. - - Local file changed during syncing. It will be resumed. - Fichier local modifié pendant la synchronisation. Elle va reprendre. + File Removed (start upload) %1 + Fichier supprimé (début du téléversement) %1 - - + Local file changed during sync. Fichier local modifié pendant la synchronisation. - - Failed to unlock encrypted folder. - Impossible de déverrouiller le dossier chiffré. - - - - Unable to upload an item with invalid characters - Impossible de téléverser un élément contenant des caractères non valides - - - - Error updating metadata: %1 - Erreur lors de la mise à jour des métadonnées : %1 + Local file changed during syncing. It will be resumed. + Fichier local modifié pendant la synchronisation. Elle va reprendre. - The file %1 is currently in use Le fichier %1 est en cours d'utilisation - - - Upload of %1 exceeds the quota for the folder - Le téléversement de %1 provoque un dépassement du quota du dossier - - - - Failed to upload encrypted file. - Échec de téléversement du fichier chiffré. + Unable to upload an item with invalid characters + Impossible de téléverser un élément contenant des caractères non valides - - File Removed (start upload) %1 - Fichier supprimé (début du téléversement) %1 + Upload of %1 exceeds the quota for the folder + Le téléversement de %1 provoque un dépassement du quota du dossier - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - - - - - The local file was removed during sync. - Fichier local supprimé pendant la synchronisation. + File is not accessible on the server. + server error + Fichier non accessible sur le serveur. + + + Folder is not accessible on the server. + server error + Dossier non accessible sur le serveur. - Local file changed during sync. Fichier local modifié pendant la synchronisation. - - Poll URL missing - URL du sondage manquante - - - - Unexpected return code from server (%1) - Le serveur a retourné un code inattendu (%1) - - - Missing File ID from server L'identifiant de fichier est manquant sur le serveur - - Folder is not accessible on the server. - server error - Dossier non accessible sur le serveur. + Poll URL missing + URL du sondage manquante - - File is not accessible on the server. - server error - Fichier non accessible sur le serveur. + The local file was removed during sync. + Fichier local supprimé pendant la synchronisation. - + + Unexpected return code from server (%1) + Le serveur a retourné un code inattendu (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + Local file changed during sync. + Fichier local modifié pendant la synchronisation. - Poll URL missing URL de sondage manquante - The local file was removed during sync. Fichier local supprimé pendant la synchronisation. - - Local file changed during sync. - Fichier local modifié pendant la synchronisation. - - - The server did not acknowledge the last chunk. (No e-tag was present) Le serveur n'a pas confirmé la réception du dernier morceau. (Aucun e-tag n'était présent). @@ -4864,35 +4062,29 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ProxyAuthDialog - + Password: + Mot de passe : + + Proxy authentication required Authentification requise sur le proxy - - Username: - Nom d’utilisateur : - - - Proxy: Proxy : - The proxy server needs a username and password. Le serveur proxy requiert un identifiant et un mot de passe. - - Password: - Mot de passe : + Username: + Nom d’utilisateur : - + OCC::SelectiveSyncDialog - Choose What to Sync Sélectionner le contenu à synchroniser @@ -4900,78 +4092,103 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::SelectiveSyncWidget - - Loading … - Chargement… + An error occurred while loading the list of sub folders. + Une erreur est survenue lors du chargement de la liste des sous-dossiers. - - + Deselect remote folders you do not wish to synchronize. Désélectionnez les sous-dossiers distants que vous ne souhaitez pas synchroniser. - - Name - Nom + Loading … + Chargement… - - Size - Taille + Name + Nom - - No subfolders currently on the server. Aucun sous-dossier sur le serveur. - - An error occurred while loading the list of sub folders. - Une erreur est survenue lors du chargement de la liste des sous-dossiers. + Size + Taille - + OCC::ServerNotificationHandler - + Dismiss + Ignorer + + Reply Répondre + + + OCC::sesSnackBar - - Dismiss - Ignorer + Error + Erreur - - - OCC::SettingsDialog - - Settings - Paramètres + Success + + + + Warning + Attention + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud Paramètres %1 - + Account + Compte + + General Général - - Account - Compte + New account + - + + Settings + Paramètres + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Résultats de la recherche globale + + + No results found + Aucun résultat trouvé + + + Search globally + Rechercher globalement + + OCC::ShareManager - Error Erreur @@ -4979,126 +4196,61 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ShareModel - %1 days %1 jours - - %1 day - - - - 1 day 1 jour - - Today - Aujourd'hui - - - - Secure file drop link - Lien de dépôt sécurisé de fichier + Could not find local folder for %1 + Impossible de trouver le dossier local pour %1 - - - Share link - Partager un lien + + Internal link + Lien interne - Link share Lien de partage - - Internal link - Lien interne - - - Secure file drop Dépôt de fichier sécurisé - - Could not find local folder for %1 - Impossible de trouver le dossier local pour %1 - - - - OCC::ShareeModel - - - - Search globally - Rechercher globalement - - - - No results found - Aucun résultat trouvé + Secure file drop link + Lien de dépôt sécurisé de fichier - - Global search results - Résultats de la recherche globale + Share link + Partager un lien - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Aujourd'hui - + OCC::SocketApi - - Context menu share - Partage du menu contextuel - - - - I shared something with you - J'ai partagé quelque chose avec vous + Activity + Activité - - - Share options - Options de partage + Context menu share + Partage du menu contextuel - - Send private link by email … - Envoyer le lien privé par e-mail... + Copy internal link + Copier le lien interne - Copy private link to clipboard Copier le lien privé dans le presse-papier - - Failed to encrypt folder at "%1" - Échec du chiffrement du dossier à "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - Le compte %1 n'a pas de chiffrement de bout en bout configuré. Veuillez le configurer dans les paramètres de votre compte pour activer le chiffrement des dossiers. - - - - Failed to encrypt folder - Échec du chiffrement du dossier - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5107,990 +4259,787 @@ Server replied with error: %2 Le serveur a répondu avec l'erreur : %2 - - Folder encrypted successfully - Dossier chiffré avec succès + Delete + Supprimer - - The following folder was encrypted successfully: "%1" - Le dossier suivant a été chiffré avec succès : "%1" + Delete local changes + Supprimer les modifications locales - - Select new location … - Sélectionnez le nouvel emplacement... + Encrypt + Chiffrer - - - - File actions - Actions sur les fichiers + + Expires in %1 minutes + remaining time before lock expires + + Expire dans %1 minute + Expire dans %1 minutes + - - - Activity - Activité + Failed to encrypt folder + Échec du chiffrement du dossier - - Leave this share - Quitter ce partage + Failed to encrypt folder at "%1" + Échec du chiffrement du dossier à "%1" - - Resharing this file is not allowed - Repartager ce fichier est interdit + Folder encrypted successfully + Dossier chiffré avec succès - - Resharing this folder is not allowed - Repartager ce dossier est interdit + I shared something with you + J'ai partagé quelque chose avec vous - - Encrypt - Chiffrer + Leave this share + Quitter ce partage - Lock file Verrouiller le fichier - - Unlock file - Déverrouiller le fichier - - - Locked by %1 Verrouillé par %1 - - - Expires in %1 minutes - remaining time before lock expires - Expire dans %1 minuteExpire dans %1 minutesExpire dans %1 minutes - - - - Resolve conflict … - Résoudre le conflit… - - Move and rename … Déplacer et renommer... - + Move and upload … + Déplacer et téléverser… + + Move, rename and upload … Déplacer, renommer et téléverser… - - Delete local changes - Supprimer les modifications locales + Open in browser + Ouvrir dans le navigateur + + + Resharing this file is not allowed + Repartager ce fichier est interdit - - Move and upload … - Déplacer et téléverser… + Resharing this folder is not allowed + Repartager ce dossier est interdit - - Delete - Supprimer + Resolve conflict … + Résoudre le conflit… - - Copy internal link - Copier le lien interne + Select new location … + Sélectionnez le nouvel emplacement... - - - Open in browser - Ouvrir dans le navigateur + Send private link by email … + Envoyer le lien privé par e-mail... - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Détails du certificat</h3> + Share options + Options de partage - - Common Name (CN): - Nom commun (CN) : + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + Le compte %1 n'a pas de chiffrement de bout en bout configuré. Veuillez le configurer dans les paramètres de votre compte pour activer le chiffrement des dossiers. - - Subject Alternative Names: - Noms alternatifs du sujet : + The following folder was encrypted successfully: "%1" + Le dossier suivant a été chiffré avec succès : "%1" - - Organization (O): - Organisation (O) : + Unlock file + Déverrouiller le fichier + + + OCC::SslButton - - Organizational Unit (OU): - Unité d'organisation (OU) : + %1 + %1 - - State/Province: - État/Région : + %1 (self-signed) + %1 (auto-signé) - - Country: - Pays : + <h3>Certificate Details</h3> + <h3>Détails du certificat</h3> - - Serial: - Numéro de série : + <h3>Fingerprints</h3> + <h3>Empreintes numériques</h3> - <h3>Issuer</h3> <h3>Émetteur</h3> - - Issuer: - Émetteur : + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Note :</b> Ce certificat a été approuvé manuellement</p> - - Issued on: - Émis le : + Certificate information: + Informations du certificat : + + + Common Name (CN): + Nom commun (CN) : + + + Country: + Pays : - Expires on: Expire le : - - <h3>Fingerprints</h3> - <h3>Empreintes numériques</h3> + Issued on: + Émis le : - - SHA-256: - SHA-256 : + Issuer: + Émetteur : - - SHA-1: - SHA-1 : + No support for SSL session tickets/identifiers + Identifiants/tickets de sessions SSL non pris en charge - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Note :</b> Ce certificat a été approuvé manuellement</p> + Organization (O): + Organisation (O) : - - %1 (self-signed) - %1 (auto-signé) + Organizational Unit (OU): + Unité d'organisation (OU) : - - %1 - %1 + SHA-1: + SHA-1 : - - This connection is encrypted using %1 bit %2. - - Cette connexion est chiffrée en utilisant %1 bit %2. - + SHA-256: + SHA-256 : + + + Serial: + Numéro de série : - Server version: %1 Version du serveur : %1 - - No support for SSL session tickets/identifiers - Identifiants/tickets de sessions SSL non pris en charge + State/Province: + État/Région : - - Certificate information: - Informations du certificat : + Subject Alternative Names: + Noms alternatifs du sujet : - The connection is not secure La connexion n'est pas sécurisée + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Cette connexion n'est PAS sécurisée car elle n'est pas chiffrée. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Faire confiance à ce certificat malgré tout + &lt;not specified&gt; + &lt;non spécifié&gt; - - Untrusted Certificate - Certificat non fiable + Additional errors: + Erreurs supplémentaires : - Cannot connect securely to <i>%1</i>: Impossible de se connecter de manière sécurisée à <i>%1</i> : - - Additional errors: - Erreurs supplémentaires : - - - - with Certificate %1 - avec certificat %1 + Country: %1 + Pays : %1 - - - - &lt;not specified&gt; - &lt;non spécifié&gt; + Effective Date: %1 + Date de début de validité : %1 - - - Organization: %1 - Organisation : %1 + Expiration Date: %1 + Date d'expiration : %1 - - - Unit: %1 - Unité : %1 + Fingerprint (SHA-256): <tt>%1</tt> + Empreinte (SHA-256): <tt>%1</tt> - - - Country: %1 - Pays : %1 + Fingerprint (SHA-512): <tt>%1</tt> + Empreinte (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Empreinte (SHA1) : <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Empreinte (SHA-256): <tt>%1</tt> + Issuer: %1 + Émetteur : %1 + + + Organization: %1 + Organisation : %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Empreinte (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Faire confiance à ce certificat malgré tout - - Effective Date: %1 - Date de début de validité : %1 + Unit: %1 + Unité : %1 - - Expiration Date: %1 - Date d'expiration : %1 + Untrusted Certificate + Certificat non fiable - - Issuer: %1 - Émetteur : %1 + with Certificate %1 + avec certificat %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (ignoré à cause d'une précédente erreur, nouvel essai dans %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Seulement %1 disponibles, il faut au moins %2 pour démarrer - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Impossible d'accéder ou de créer une base de données locale de synchronisation. Assurez vous de disposer des droits d'écriture dans le dossier de synchronisation. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - L'espace disque est faible : les téléchargements qui amèneraient à réduire l'espace libre en dessous de %1 ont été ignorés. + Cannot open the sync journal + Impossible d'ouvrir le journal de synchronisation - - - There is insufficient space available on the server for some uploads. - Il n'y a pas suffisamment d’espace disponible sur le serveur pour certains téléversements. + + Could not set file record to local DB: %1 + Impossible de définir l'enregistrement du fichier dans la base de données locale : %1 - - Unresolved conflict. - conflit non résolu. + Could not update file metadata: %1 + Impossible de mettre à jour les métadonnées du fichier : %1 - Could not update file: %1 Impossible de mettre à jour le fichier : %1 - Could not update virtual file metadata: %1 Impossible de mettre à jour les métadonnées du fichier virutel : %1 - - Could not update file metadata: %1 - Impossible de mettre à jour les métadonnées du fichier : %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + L'espace disque est faible : les téléchargements qui amèneraient à réduire l'espace libre en dessous de %1 ont été ignorés. - - Could not set file record to local DB: %1 - Impossible de définir l'enregistrement du fichier dans la base de données locale : %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Seulement %1 disponibles, il faut au moins %2 pour démarrer - - Using virtual files with suffix, but suffix is not set - Utilisation de fichiers virtuels avec suffixe, mais le suffixe n'est pas défini + There is insufficient space available on the server for some uploads. + Il n'y a pas suffisamment d’espace disponible sur le serveur pour certains téléversements. - - Unable to read the blacklist from the local database - Impossible de lire la liste noire de la base de données locale + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Impossible d'accéder ou de créer une base de données locale de synchronisation. Assurez vous de disposer des droits d'écriture dans le dossier de synchronisation. - Unable to read from the sync journal. Impossible de lire le journal de synchronisation. - - Cannot open the sync journal - Impossible d'ouvrir le journal de synchronisation + Unable to read the blacklist from the local database + Impossible de lire la liste noire de la base de données locale - - - OCC::SyncStatusSummary - - - - Offline - Hors ligne + Unresolved conflict. + conflit non résolu. - - You need to accept the terms of service - Vous devez accepter les conditions d'utilisation + Using virtual files with suffix, but suffix is not set + Utilisation de fichiers virtuels avec suffixe, mais le suffixe n'est pas défini + + + OCC::SyncStatusSummary - - Reauthorization required - Réautorisation requise + %1 of %2 + %1 sur %2 - - Please grant access to your sync folders - Veuillez accorder l’accès à vos dossiers de synchronisation + %1 of %2 · %3 left + %1 sur %2 · %3 restants - - - All synced! Tout est synchronisé ! - - Some files couldn't be synced! - Certains fichiers n’ont pas pu être synchronisés ! + Checking folder changes + Vérification des modifications du dossier - - See below for errors - Voir ci-dessous pour les erreurs + Offline + Hors ligne - - Checking folder changes - Vérification des modifications du dossier + See below for errors + Voir ci-dessous pour les erreurs - - Syncing changes - Synchronisation des modifications + See below for warnings + Voir ci-dessous pour les avertissements - - Sync paused - Synchronisation mise en pause + Some files could not be synced! + Certains fichiers n’ont pas pu être synchronisés ! - - Some files could not be synced! + Some files couldn't be synced! Certains fichiers n’ont pas pu être synchronisés ! - - See below for warnings - Voir ci-dessous pour les avertissements + Sync paused + Synchronisation mise en pause - Syncing Synchronisation - - %1 of %2 · %3 left - %1 sur %2 · %3 restants - - - - %1 of %2 - %1 sur %2 + Syncing changes + Synchronisation des modifications - Syncing file %1 of %2 Synchronisation du fichier %1 sur %2 - - - No synchronisation configured - Aucune synchronisation configurée + + You need to accept the terms of service + Vous devez accepter les conditions d'utilisation - + OCC::Systray - - Download - Télécharger - - - Add account Ajouter un compte - - Open %1 Desktop - Open Nextcloud main window. Placeholer will be the application name. Please keep it. - Ouvrir %1 Desktop - - - - - Pause sync - Suspendre la synchronisation - - - - - Resume sync - Relancer la synchro + Download + Télécharger - - Settings - Paramètres + Exit %1 + Quitter %1 - Help Aide - - Exit %1 - Quitter %1 + Open %1 Desktop + Open Nextcloud main window. Placeholer will be the application name. Please keep it. + Ouvrir %1 Desktop + + + Pause sync + Suspendre la synchronisation - Pause sync for all Suspendre toutes les synchros - + Resume sync + Relancer la synchro + + Resume sync for all Relancer toutes les synchros - + + Settings + Paramètres + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - En attente de l'acceptation des conditions - - - - Polling - Vote + Copy Link + Copier le lien - - + Link copied to clipboard. Lien copié dans le presse-papiers. - Open Browser Ouvrir le navigateur - - Copy Link - Copier le lien + Polling + Vote - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - %1 client de bureau version %2 (%3 exécuté sous %4) + Waiting for terms to be accepted + En attente de l'acceptation des conditions + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Version du client de bureau %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Utilise l'extension de fichiers virtuels : %1</small></p> - <p>This release was supplied by %1.</p> <p>Cette version a été fournie par %1.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Échec de la récupération des fournisseurs. - Failed to fetch search providers for '%1'. Error: %2 Échec de la récupération des fournisseurs de recherche pour '%1'. Erreur : %2 - - Search has failed for '%2'. - La recherche de '%2' a échoué. - - - Search has failed for '%1'. Error: %2 La recherche de '%1' a échoué. Erreur : %2 - + + Search has failed for '%2'. + La recherche de '%2' a échoué. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Échec du téléversement du dossier des métadonnées. + Failed to finalize item. + Impossible de finaliser l'item. - - + Failed to unlock encrypted folder. Échec du déverrouillage du dossier chiffré. - - Failed to finalize item. - Impossible de finaliser l'item. + Failed to update folder metadata. + Échec du téléversement du dossier des métadonnées. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Erreur lors de la mise à jour des métadonnées pour un dossier %1 + Could not add or remove user %1 to access folder %2 + Impossible d’ajouter ou de supprimer l’utilisateur %1 de l’accès au dossier %2 - Could not fetch public key for user %1 Impossible de récupérer la clé publique pour l'utilisateur %1 - Could not find root encrypted folder for folder %1 Impossible de trouver le dossier racine chiffré pour le dossier %1 - - Could not add or remove user %1 to access folder %2 - Impossible d’ajouter ou de supprimer l’utilisateur %1 de l’accès au dossier %2 + Error updating metadata for a folder %1 + Erreur lors de la mise à jour des métadonnées pour un dossier %1 - Failed to unlock a folder. Échec du déverrouillage d’un dossier. OCC::User - - - End-to-end certificate needs to be migrated to a new one - Le certificat de bout en bout doit être migré vers une nouvelle clé - - - - Trigger the migration - Déclencher la migration - - %n notification(s) - %n notification%n notifications%n notifications - - - - - “%1” was not synchronized - « %1 » n’a pas été synchronisé - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - Espace de stockage insuffisant sur le serveur. Le fichier nécessite %1 mais seulement %2 sont disponibles. - - - - Insufficient storage on the server. The file requires %1. - Espace de stockage insuffisant sur le serveur. Le fichier nécessite %1. - - - - Insufficient storage on the server. - Espace de stockage insuffisant sur le serveur. - - - - There is insufficient space available on the server for some uploads. - L’espace disponible sur le serveur est insuffisant pour certains téléversements. - - - - Retry all uploads - Réessayer tous les téléversements - - - - - Resolve conflict - Résoudre le conflit - - - - Rename file - Renommer le fichier + + %n notification + %n notifications + - - Public Share Link - Lien de partage public + End-to-end certificate needs to be migrated to a new one + Le certificat de bout en bout doit être migré vers une nouvelle clé - Open %1 Assistant in browser The placeholder will be the application name. Please keep it Ouvrir l'assistant %1 dans le navigateur - Open %1 Talk in browser The placeholder will be the application name. Please keep it Ouvrir %1 Talk dans le navigateur - - Open %1 Assistant - The placeholder will be the application name. Please keep it - - - - - Assistant is not available for this account. - - - - - Assistant is already processing a request. - - - - - Sending your request… - Envoi de votre requête… - - - - Sending your request … - + Public Share Link + Lien de partage public - - No response yet. Please try again later. - + Quota Warning - %1 percent or more storage in use + Alerte quota - %1 pour cent ou plus de stockage utilisé - - - No supported assistant task types were returned. - + + Quota is updated; %1 percent of the total space is used. + Quota mis à jour ; %1 pour cent de l’espace total est utilisé. - - Waiting for the assistant response… - + Rename file + Renommer le fichier - - Assistant request failed (%1). - + Resolve conflict + Résoudre le conflit - - Quota is updated; %1 percent of the total space is used. - Quota mis à jour ; %1 pour cent de l’espace total est utilisé. + Retry all uploads + Réessayer tous les téléversements - - Quota Warning - %1 percent or more storage in use - Alerte quota - %1 pour cent ou plus de stockage utilisé + Trigger the migration + Déclencher la migration - + OCC::UserModel - - Confirm Account Removal - Confirmer le retrait du compte - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Êtes-vous certain de vouloir retirer la connexion au compte <i>%1</i> ?</p><p><b>Note :</b> cette opération <b>ne supprimera aucun de vos fichiers</b> et ne supprimera pas non plus votre compte du serveur.</p> - - Remove connection - Supprimer la connexion - - - Cancel Annuler - + Confirm Account Removal + Confirmer le retrait du compte + + Leave share Quitter le partage - Remove account Retirer le compte - + + Remove connection + Supprimer la connexion + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - Impossible de récupérer les statuts prédéfinis. Assurez-vous que vous êtes connecté au serveur. + + %n day(s) + + %n jour + %n jours + - - - Could not fetch status. Make sure you are connected to the server. - Impossible de récupérer le statut. Merci de vérifier que vous êtes bien connecté(e) au serveur. + + %n hour(s) + + %n heure + %n heures + + + + %n minute(s) + + %n minute + %n minutes + - - Status feature is not supported. You will not be able to set your status. - La fonctionnalité "statut" n'est pas supporté. Vous ne pourrez pas définir votre statut. + 1 hour + 1 heure - - Emojis are not supported. Some status functionality may not work. - Les Emojis ne sont pas supportés. Certaines fonctionnalités de statut pourront ne pas fonctionner. + 30 minutes + 30 minutes - - Could not set status. Make sure you are connected to the server. - Impossible de définir le statut. Merci de vérifier que vous êtes connecté(e) au serveur. + 4 hours + 4 heures - Could not clear status message. Make sure you are connected to the server. Impossible d'effacer le message de statut. Assurez-vous que vous êtes connecté au serveur. - - - Don't clear - Ne pas effacer - - - - 30 minutes - 30 minutes + Could not fetch predefined statuses. Make sure you are connected to the server. + Impossible de récupérer les statuts prédéfinis. Assurez-vous que vous êtes connecté au serveur. - - 1 hour - 1 heure + Could not fetch status. Make sure you are connected to the server. + Impossible de récupérer le statut. Merci de vérifier que vous êtes bien connecté(e) au serveur. - - 4 hours - 4 heures + Could not set status. Make sure you are connected to the server. + Impossible de définir le statut. Merci de vérifier que vous êtes connecté(e) au serveur. - - - Today - Aujourd'hui + Don't clear + Ne pas effacer - - - This week - Cette semaine + Emojis are not supported. Some status functionality may not work. + Les Emojis ne sont pas supportés. Certaines fonctionnalités de statut pourront ne pas fonctionner. - Less than a minute Il y a moins d'une minute - - - %n minute(s) - %n minute%n minutes%n minutes + + Status feature is not supported. You will not be able to set your status. + La fonctionnalité "statut" n'est pas supporté. Vous ne pourrez pas définir votre statut. - - - %n hour(s) - %n heure%n heures%n heures + + This week + Cette semaine - - - %n day(s) - %n jour%n jours%n jours + + Today + Aujourd'hui - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 est un lecteur. Il ne prend pas en charge les fichiers virtuels. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Veuillez choisir un emplacement différent. %1 n'est pas un système de fichiers NTFS. Il ne prend pas en charge les fichiers virtuels. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 est un lecteur réseau. Il ne prend pas en charge les fichiers virtuels. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Veuillez choisir un emplacement différent. %1 n'est pas un système de fichiers NTFS. Il ne prend pas en charge les fichiers virtuels. + + OCC::VfsDownloadErrorDialog - - Download error - Erreur de téléchargement + %1 could not be downloaded. + %1 ne peut pas être téléchargé. - - - Error downloading - Erreur au téléchargement + + > More details + > Plus de détails - Could not be downloaded - + - - > More details - > Plus de détails + Download error + Erreur de téléchargement - - More details - Plus de détails + Error downloading + Erreur au téléchargement - Error downloading %1 Erreur au téléchargement %1 - - %1 could not be downloaded. - %1 ne peut pas être téléchargé. + More details + Plus de détails - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide @@ -6098,8 +5047,6 @@ Le serveur a répondu avec l'erreur : %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide @@ -6107,12 +5054,10 @@ Le serveur a répondu avec l'erreur : %2 OCC::WebEnginePage - Invalid certificate detected Certificat invalide - The host "%1" provided an invalid certificate. Continue? L’hôte "%1" utilise un certificat invalide. Continuer ? @@ -6120,769 +5065,642 @@ Le serveur a répondu avec l'erreur : %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Vous avez été déconnecté de votre compte %1 à %2. Merci de vous reconnecter. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formulaire - - Log in - Se connecter - - - - Sign up with provider - S'inscrire auprès d'un fournisseur + Host your own server + Hébergez votre propre serveur - - + Keep your data secure and under your control Gardez vos données en sécurité et sous votre contrôle - - Secure collaboration & file exchange - Collaboration et échange de fichiers sécurisés - - - - Easy-to-use web mail, calendaring & contacts - E-mail, agenda et contacts en ligne faciles à utiliser - - - - Screensharing, online meetings & web conferences - Partage d'écran, réunions en ligne et conférences Web + Log in + Se connecter - - Host your own server - Hébergez votre propre serveur + Sign up with provider + S'inscrire auprès d'un fournisseur - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - Paramètres de serveur proxy + HTTP(S) proxy + Proxy HTTP(S) - Hostname of proxy server Nom d'hôte du serveur proxy - - Username for proxy server - Nom d’utilisateur du serveur proxy - - - Password for proxy server Mot de passe du serveur proxy - - HTTP(S) proxy - Proxy HTTP(S) + Proxy Settings + Dialog window title for proxy settings + Paramètres de serveur proxy - SOCKS5 proxy Proxy SOCKS5 - + + Username for proxy server + Nom d’utilisateur du serveur proxy + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Veuillez vous connecter + &Local Folder + &Dossier local - - - There are no sync folders configured. - Aucun dossier à synchroniser n'est configuré + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Si cette case est cochée, le contenu existant du dossier local sera supprimé pour démarrer une synchronisation propre depuis le serveur.</p><p>Ne pas cocher si le contenu local doit être téléversé vers le serveur.</p></body></html> - - Disconnected from %1 - Déconnecté de %1 + Ask before syncing folders larger than + Demander confirmation avant de synchroniser les dossiers de taille supérieure à - - Unsupported Server Version - Version du Serveur non prise en charge + Choose different folder + Choisir un autre dossier - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - Le serveur sur le compte %1 fonctionne avec une version non-supportée %2. Utiliser ce client avec des versions non-supportées du serveur n'est pas testé et est potentiellement dangereux. Procédez à vos risques et périls. + Choose what to sync + Sélectionner le contenu à synchroniser - - Terms of service - Conditions d'utilisation + Erase local folder and start a clean sync + Effacer le dossier local et démarrer une synchronisation complète - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Votre compte %1 vous demande d'accepter les conditions générales d'utilisation de votre serveur. Vous serez redirigé vers %2 pour confirmer que vous l'avez lu et que vous l'acceptez. + Keep local data + Conserver les données locales - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1 : %2 + Local Folder + Dossier local - - macOS VFS for %1: Sync is running. - macOS VFS pour %1: Synchronisation en cours. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + Mo - - macOS VFS for %1: Last sync was successful. - macOS VFS pour %1: La dernière synchronisation a réussi. + Server address + Adresse du serveur - - macOS VFS for %1: A problem was encountered. - macOS VFS pour %1: Une erreur est survenue. + Sync Logo + Logo de synchronisation - - macOS VFS for %1: An error was encountered. - Synchronisation de fichier virtuel macOS pour %1 : Une erreur s’est produite. + Synchronize everything from server + Tout synchroniser depuis le serveur - - Checking for changes in remote "%1" - Vérification des modifications dans "%1" distant + Username + Nom d’utilisateur + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Vérification des modifications dans "%1" local + &Password + &Mot de passe - - - Internal link copied - + + &Username + &Nom d’utilisateur + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Adresse du serveur - - Disconnected from accounts: - Déconnecté des comptes : + This is the link to your %1 web interface when you open it in the browser. + Il s'agit de l'adresse URL lorsque vous utilisez %1 dans un navigateur. + + + progress - - Account %1: %2 - Compte %1 : %2 + Deleted + Supprimé - - Account synchronization is disabled - La synchronisation est en pause + Deleting + Suppression - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Reçu - - - OwncloudAdvancedSetupPage - - Username - Nom d’utilisateur + Downloading + Téléchargement - - Local Folder - Dossier local + Error + Erreur - - Choose different folder - Choisir un autre dossier + Filesystem access error + Erreur d'accès au système de fichiers - - Server address - Adresse du serveur + Ignored + Exclu - - Sync Logo - Logo de synchronisation + Ignoring + Ignoré - - Synchronize everything from server - Tout synchroniser depuis le serveur + Moved to %1 + Déplacé vers %1 - - Ask before syncing folders larger than - Demander confirmation avant de synchroniser les dossiers de taille supérieure à + Moving + Déplacement - - Ask before syncing external storages - Demander confirmation avant de synchroniser des stockages externes + Replaced by virtual file + Remplacé par un fichier virtuel - - Keep local data - Conserver les données locales + Server version downloaded, copied changed local file into case conflict conflict file + La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier de conflit de casse. - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Si cette case est cochée, le contenu existant du dossier local sera supprimé pour démarrer une synchronisation propre depuis le serveur.</p><p>Ne pas cocher si le contenu local doit être téléversé vers le serveur.</p></body></html> + Server version downloaded, copied changed local file into conflict file + La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier conflit. - - Erase local folder and start a clean sync - Effacer le dossier local et démarrer une synchronisation complète + Unknown + Inconnu - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - Mo + Updated end-to-end encryption metadata + Métadonnées de chiffrement de bout en bout mises à jour - - Choose what to sync - Sélectionner le contenu à synchroniser + Updated local metadata + Métadonnées locales mises à jour - - &Local Folder - &Dossier local + Updated local virtual files metadata + Fichiers locaux virtuels de métadonnées mis à jour - - - OwncloudHttpCredsPage - - &Username - &Nom d’utilisateur + Updating end-to-end encryption metadata + Mise à jour des métadonnées de chiffrement de bout en bout + + + Updating local metadata + Mise à jour des méta-données locales - - &Password - &Mot de passe + Updating local virtual files metadata + Mise à jour des méta-données des fichiers virtuels - - - OwncloudSetupPage - - Logo - Logo + Uploaded + Téléversé - - Server address - Adresse du serveur + Uploading + Téléversement - - This is the link to your %1 web interface when you open it in the browser. - Il s'agit de l'adresse URL lorsque vous utilisez %1 dans un navigateur. + Virtual file created + Fichier virtuel créé - + ProxySettings - Form Formulaire - - Proxy Settings - Paramètres de serveur proxy + Host + Hôte - Manually specify proxy Spécifier manuellement le serveur proxy - - Host - Hôte - - - - Proxy server requires authentication - Le serveur proxy requiert une authentification + No proxy + Aucun serveur proxy - - + Note: proxy settings have no effects for accounts on localhost Remarque : les paramètres de proxy n'ont aucun effet sur les comptes locaux - - Use system proxy - Utiliser le proxy système + Proxy Settings + Paramètres de serveur proxy - - No proxy - Aucun serveur proxy + Proxy server requires authentication + Le serveur proxy requiert une authentification - + + Use system proxy + Utiliser le proxy système + + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1 : %2 + - %nd delay in days after an activity - %nj.%njrs%njrs - - - - in the future - Dans le futur + + %nj. + %njrs + - %nh delay in hours after an activity - %nh%nh%nh + + %nh + %nh + - - - now - A l'instant + + %nmin + delay in minutes after an activity + + %nmin + %nmin + - 1min one minute after activity date and time 1min - - - %nmin - delay in minutes after an activity - %nmin%nmin%nmin - - - Some time ago - Il y a quelque temps + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. - - %1: %2 - this displays an error string (%2) for a file %1 - %1 : %2 + Could not create debug archive in selected location! + Impossible de créer l'archive de débogage à l'emplacement indiqué ! - - New folder - Nouveau dossier + Error deleting the file + Le fichier est déjà supprimé - Failed to create debug archive Échec lors de la création de l'archive de débogage - - Could not create debug archive in selected location! - Impossible de créer l'archive de débogage à l'emplacement indiqué ! - - - - Could not create debug archive in temporary location! - Impossible de créer l’archive de débogage à l’emplacement temporaire ! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Il semble que vous utilisiez un proxy nécessitant une authentification. Veuillez vérifier vos paramètres et vos identifiants de proxy. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. - - Could not remove existing file at destination! - Impossible de retirer le fichier existant à cette destination ! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + La connexion au serveur prend trop de temps. Veuillez réessayer ultérieurement. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. - - Could not move debug archive to selected location! - Impossible de déplacer l’archive de débogage vers l’emplacement sélectionné ! + New folder + Nouveau dossier - - You renamed %1 - Vous avez renommé %1 + Paths beginning with '#' character are not supported in VFS mode. + Les chemins commençant par le caractère « # » ne sont pas pris en charge dans le mode VFS. - - You deleted %1 - Vous avez supprimé %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Les fichiers du serveur ont été modifiés pendant votre travail. Veuillez réessayer la synchronisation. Contactez l'administrateur de votre serveur si le problème persiste. - - You created %1 - Vous avez créé %1 + Some time ago + Il y a quelque temps - - You changed %1 - Vous avez modifié %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Un problème est survenu sur le serveur. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur si le problème persiste. - Synced %1 %1 a été synchronisé - - Error deleting the file - Le fichier est déjà supprimé + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + L'adresse utilisée pour effectuer la requête est trop longue pour être gérée par le serveur. Veuillez essayer de raccourcir les informations envoyées ou contacter l'administrateur de votre serveur pour obtenir de l'aide. - - Paths beginning with '#' character are not supported in VFS mode. - Les chemins commençant par le caractère « # » ne sont pas pris en charge dans le mode VFS. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - Nous n'avons pas pu traiter votre demande. Veuillez réessayer la synchronisation ultérieurement. Si le problème persiste, contactez l'administrateur de votre serveur pour obtenir de l'aide. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + Le fichier est trop volumineux pour être téléchargé. Vous devrez peut-être choisir un fichier plus petit ou contacter l'administrateur de votre serveur pour obtenir de l'aide. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - Vous devez vous connecter pour continuer. Si vous rencontrez des problèmes avec vos identifiants, veuillez contacter l'administrateur de votre serveur. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + La demande n'a pas pu être traitée car certaines conditions requises n'étaient pas remplies. Veuillez réessayer la synchronisation ultérieurement. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - Vous n'avez pas accès à cette ressource. Si vous pensez qu'il s'agit d'une erreur, veuillez contacter l'administrateur de votre serveur. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + La demande prend plus de temps que d'habitude. Veuillez réessayer la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - Nous n'avons pas trouvé ce que vous cherchiez. Il a peut-être été déplacé ou supprimé. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + La ressource à laquelle vous tentez d'accéder est actuellement verrouillée et ne peut pas être modifiée. Veuillez essayer de la modifier ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Il semble que vous utilisiez un proxy nécessitant une authentification. Veuillez vérifier vos paramètres et vos identifiants de proxy. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + Le serveur n'a pas pu traiter votre demande car certaines informations étaient incorrectes ou incomplètes. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - La demande prend plus de temps que d'habitude. Veuillez réessayer la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + Le serveur ne dispose pas de suffisamment d'espace pour traiter votre demande. Veuillez vérifier le quota de votre utilisateur en contactant l'administrateur de votre serveur. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Les fichiers du serveur ont été modifiés pendant votre travail. Veuillez réessayer la synchronisation. Contactez l'administrateur de votre serveur si le problème persiste. + The server does not recognize the request method. Please contact your server administrator for help. + Le serveur ne reconnaît pas la méthode de requête. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - Ce dossier ou fichier n'est plus disponible. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. + The server does not support the version of the connection being used. Contact your server administrator for help. + Le serveur ne prend pas en charge la version de la connexion utilisée. Contactez votre administrateur serveur pour obtenir de l'aide. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - La demande n'a pas pu être traitée car certaines conditions requises n'étaient pas remplies. Veuillez réessayer la synchronisation ultérieurement. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - Le fichier est trop volumineux pour être téléchargé. Vous devrez peut-être choisir un fichier plus petit ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + This file type isn’t supported. Please contact your server administrator for assistance. + Ce type de fichier n'est pas pris en charge. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - L'adresse utilisée pour effectuer la requête est trop longue pour être gérée par le serveur. Veuillez essayer de raccourcir les informations envoyées ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + Ce dossier ou fichier n'est plus disponible. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. - - This file type isn’t supported. Please contact your server administrator for assistance. - Ce type de fichier n'est pas pris en charge. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + Cette demande n'a pas pu être traitée car certaines conditions requises sont manquantes. Veuillez réessayer ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - Le serveur n'a pas pu traiter votre demande car certaines informations étaient incorrectes ou incomplètes. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + Nous n'avons pas trouvé ce que vous cherchiez. Il a peut-être été déplacé ou supprimé. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - La ressource à laquelle vous tentez d'accéder est actuellement verrouillée et ne peut pas être modifiée. Veuillez essayer de la modifier ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + Nous n'avons pas pu traiter votre demande. Veuillez réessayer la synchronisation ultérieurement. Si le problème persiste, contactez l'administrateur de votre serveur pour obtenir de l'aide. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - Cette demande n'a pas pu être traitée car certaines conditions requises sont manquantes. Veuillez réessayer ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + Nous rencontrons des difficultés de connexion au serveur. Veuillez réessayer prochainement. Si le problème persiste, votre administrateur serveur pourra vous aider. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - Vous avez effectué trop de requêtes. Veuillez patienter et réessayer. Si ce problème persiste, votre administrateur serveur peut vous aider. + You changed %1 + Vous avez modifié %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Un problème est survenu sur le serveur. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur si le problème persiste. + You created %1 + Vous avez créé %1 - - The server does not recognize the request method. Please contact your server administrator for help. - Le serveur ne reconnaît pas la méthode de requête. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. + You deleted %1 + Vous avez supprimé %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - Nous rencontrons des difficultés de connexion au serveur. Veuillez réessayer prochainement. Si le problème persiste, votre administrateur serveur pourra vous aider. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + Vous n'avez pas accès à cette ressource. Si vous pensez qu'il s'agit d'une erreur, veuillez contacter l'administrateur de votre serveur. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + Vous n'êtes pas autorisé à accéder à cette ressource. Si vous pensez qu'il s'agit d'une erreur, contactez l'administrateur de votre serveur pour obtenir de l'aide. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - La connexion au serveur prend trop de temps. Veuillez réessayer ultérieurement. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + Vous avez effectué trop de requêtes. Veuillez patienter et réessayer. Si ce problème persiste, votre administrateur serveur peut vous aider. - - The server does not support the version of the connection being used. Contact your server administrator for help. - Le serveur ne prend pas en charge la version de la connexion utilisée. Contactez votre administrateur serveur pour obtenir de l'aide. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + Vous devez vous connecter pour continuer. Si vous rencontrez des problèmes avec vos identifiants, veuillez contacter l'administrateur de votre serveur. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - Le serveur ne dispose pas de suffisamment d'espace pour traiter votre demande. Veuillez vérifier le quota de votre utilisateur en contactant l'administrateur de votre serveur. + You renamed %1 + Vous avez renommé %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Votre réseau nécessite une authentification supplémentaire. Veuillez vérifier votre connexion. Contactez l'administrateur de votre serveur si le problème persiste. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - Vous n'êtes pas autorisé à accéder à cette ressource. Si vous pensez qu'il s'agit d'une erreur, contactez l'administrateur de votre serveur pour obtenir de l'aide. + in the future + Dans le futur - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. + now + A l'instant - + ResolveConflictsDialog - - - Solve sync conflicts - Résoudre les conflits de synchronisation - - %1 files in conflict indicate the number of conflicts to resolve - %1 fichier en conflit%1 fichiers en conflit%1 fichiers en conflit - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Choisissez si vous souhaitez conserver la version locale, la version serveur, ou les deux. Si vous choisissez les deux, un numéro sera ajouté au nom du fichier local. + + %1 fichier en conflit + %1 fichiers en conflit + - All local versions Toutes les versions locales - All server versions Toutes les versions serveur - + Cancel + Annuler + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Choisissez si vous souhaitez conserver la version locale, la version serveur, ou les deux. Si vous choisissez les deux, un numéro sera ajouté au nom du fichier local. + + Resolve conflicts Résoudre les conflits - - Cancel - Annuler + Solve sync conflicts + Résoudre les conflits de synchronisation + + + + SesErrorBox + + Error + Erreur + + SesTrayHeader + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + ShareDelegate - Copied! Copié ! + + Share options + Options de partage + ShareDetailsPage - - An error occurred setting the share password. - Une erreur est survenue lors de la configuration du mot de passe de partage. - - - - Edit share - Modifier le partage + Add another link + Ajouter un autre lien - - Share label - Libellé du partage + Allow resharing + Permettre le repartage - - Allow upload and editing Autoriser le téléversement et l'édition - - View only - Afficher seulement + An error occurred setting the share password. + Une erreur est survenue lors de la configuration du mot de passe de partage. - - File drop (upload only) - Dépôt de fichiers (téléversement seulement) + Copy share link + Copier le lien de partage + + + Custom Permissions + - - Allow resharing - Permettre le repartage + Enter a note for the recipient + Saisir une note pour le destinataire + + + File drop (upload only) + Dépôt de fichiers (téléversement seulement) - Hide download Masquer le téléchargement - + Note to recipient + Note au destinataire + + Password protection Protection par mot de passe - Set expiration date Définir une date d'expiration - - Note to recipient - Note au destinataire - - - - Enter a note for the recipient - Saisir une note pour le destinataire + Share link copied! + Lien de partage copié ! - Unshare Cesser le partage - - Add another link - Ajouter un autre lien + View only + Afficher seulement + + + ShareeSearchField - - Share link copied! - Lien de partage copié ! - + Search for users or groups… + Rechercher des utilisateurs ou des groupes... + - - Copy share link - Copier le lien de partage + Sharing is not available for this folder + Le partage n'est pas disponible pour ce dossier ShareView - + Expires in %1 + Expire dans %1 + + Password required for new share Mot de passe requis pour le nouveau partage - Share password Mot de passe du partage - Shared with you by %1 Partagé avec vous par %1 - - Expires in %1 - Expire dans %1 - - - Sharing is disabled Le partage est désactivté - - This item cannot be shared. - L'élément ne peut pas être partagé. - - - Sharing is disabled. Le partage est désactivé. - - - ShareeSearchField - - - Search for users or groups… - Rechercher des utilisateurs ou des groupes... - - - - Sharing is not available for this folder - Le partage n'est pas disponible pour ce dossier + + This item cannot be shared. + L'élément ne peut pas être partagé. - + SyncJournalDb - Failed to connect database. Impossible de connecter la base de données. @@ -6890,35 +5708,25 @@ Le serveur a répondu avec l'erreur : %2 SyncStatus - - Sync now - Synchroniser maintenant + Open browser + Ouvrir le navigateur - - + Resolve conflicts Résoudre les conflits - - Open browser - Ouvrir le navigateur - - - - Open settings - Ouvrir les paramètres + Sync now + Synchroniser maintenant - + TalkReplyTextField - Reply to … Répondre à... - Send reply to chat message Envoyer la réponse dans la discussion @@ -6926,76 +5734,176 @@ Le serveur a répondu avec l'erreur : %2 TermsOfServiceCheckWidget - - Terms of Service - Conditions d'utilisation - - - Logo Logo - Switch to your browser to accept the terms of service Accédez à votre navigateur pour accepter les conditions d'utilisation - + + Terms of Service + Conditions d'utilisation + + + + theme + + Error occurred during setup + Une erreur est survenue pendant l'installation + + + Error occurred during sync + Une erreur est survenue pendant la synchronisation + + + Preparing to sync + Préparation à la synchronisation + + + Stopping sync + Arrêt de la synchronisation + + + Sync is paused + La synchronisation est en pause + + + Sync is running + Synchronisation en cours + + + Sync status is unknown + Le statut de synchronisations est inconnu + + + Sync was successful + Synchronisation réussie + + + Sync was successful but some files were ignored + La syncronisation a réussi mais certains fichiers ont été ignorés + + + Waiting to start syncing + En attente du démarrage de la synchronisation + + TrayFoldersMenuButton - - Open local folder - Ouvrir le dossier local + Files + - - Open local or team folders - + Open %1 in file explorer + Ouvrir %1 dans l'explorateur de fichiers + + + Open local folder + Ouvrir le dossier local - Open local folder "%1" Ouvrir le dossier local « %1 » - - Open team folder "%1" - Ouvrir le dossier d’équipe « %1 » + Open local or team folders + - - Open %1 in file explorer - Ouvrir %1 dans l'explorateur de fichiers + Open team folder "%1" + Ouvrir le dossier d’équipe « %1 » - User group and local folders menu Menu de groupe d'utilisateurs et dossiers locaux - TrayWindowHeader + TrayWindowAccountMenu - - Open local or team folders - + Account switcher and settings menu + Sélecteur de compte et menu de paramètres + + + Add account + Ajouter un compte + + + Current account + Compte actuel + + + Current account avatar + Avatar du compte actuel + + + Current account status is do not disturb + + + + Current account status is online + + + + Exit + Quitter + + + Pause sync for all + + + + Resume sync for all + + + + Settings + Paramètres + + + TrayWindowHeader - More apps Plus d'applis - Open %1 in browser Ouvrir %1 dans le navigateur - + + Open local or team folders + + + + + TrayWindowHeaderBar + + More apps + Plus d'applis + + + Open %1 in browser + Ouvrir %1 dans le navigateur + + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Rechercher des fichiers, des messages, des événements … @@ -7003,7 +5911,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchPlaceholderView - Start typing to search Commencez à écrire pour rechercher @@ -7011,7 +5918,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultFetchMoreTrigger - Load more results Charger plus de résultats @@ -7019,7 +5925,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Squelette de résultat de recherche. @@ -7027,7 +5932,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultListItem - Load more results Charger plus de résultats @@ -7035,7 +5939,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultNothingFound - No results for Aucun résultat pour @@ -7043,7 +5946,6 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultSectionItem - Search results section %1 Section de résultats de recherche %1 @@ -7051,128 +5953,88 @@ Le serveur a répondu avec l'erreur : %2 UserLine - - Switch to account - Utiliser ce compte - - - - Current account status is online - Le statut actuel du compte est "en ligne" - - - - Current account status is do not disturb - Le statut actuel du compte est "ne pas déranger" - - - - Account sync status requires attention - L’état de synchronisation du compte requiert votre attention - - - Account actions Actions du compte - - Set status - Définir le statut - - - - Status message - Message de statut + Log in + Se connecter - Log out Se déconnecter - - Log in - Se connecter + Remove account + Retirer le compte - + + Switch to account + Utiliser ce compte + + UserStatusMessageView - - Status message - Message de statut + Apply + Appliquer + + + Cancel + Annuler - - What is your status? - Quel est votre statut ? + Clear + Effacer - Clear status message after Effacer le message de statut après - - Cancel - Annuler - - - - Clear - Effacer + Status message + Message de statut - - Apply - Appliquer + What is your status? + Quel est votre statut ? - + UserStatusSetStatusView - - Online status - Statut de connexion - - - - Online - En ligne + Appear offline + Apparaître hors ligne - Away Absent - Busy Occupé - Do not disturb Ne pas déranger - + Invisible + Invisible + + Mute all notifications Désactiver toutes les notifications - - Invisible - Invisible + Online + En ligne - - Appear offline - Apparaître hors ligne + Online status + Statut de connexion - Status message Message de statut @@ -7180,390 +6042,128 @@ Le serveur a répondu avec l'erreur : %2 Utility - - %L1 GB - %L1 Go + %1 %2 + %1 %2 + + + %L1 B + %L1 octets - - %L1 MB - %L1 Mo + %L1 GB + %L1 Go - %L1 KB %L1 Ko - - %L1 B - %L1 octets + %L1 MB + %L1 Mo - %L1 TB %L1 To - - %n year(s) - %n an%n ans%n ans - - - - %n month(s) - %n mois%n mois%n mois - - - %n day(s) - %n jour%n jours%n jours + + %n jour + %n jours + - %n hour(s) - %n heures%n heures%n heures + + %n heures + %n heures + - %n minute(s) - %n minute%n minutes%n minutes + + %n minute + %n minutes + - - %n second(s) - %n seconde%n secondes%n secondes - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - L’en-tête de la somme de contrôle est mal formé. - - - - The checksum header contained an unknown checksum type "%1" - L’en-tête de somme de contrôle contenait un type de somme de contrôle inconnu « %1 » - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - Le fichier téléchargé ne correspond pas à la somme de contrôle, il sera repris. "%1" != "%2" - - - - main.cpp - - - System Tray not available - Zone de notification système non disponible - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 nécessite une zone de notification système fonctionnelle. Si vous utiliser XFCE, veuillez suivre <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">ces instructions</a>. Sinon, installez une application de la barre d'état système telle que "trayer" et réessayez. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Généré à partir de la révision Git <a href="%1">%2</a> du %3, %4 en utilisant Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Fichier virtuel créé - - - - Replaced by virtual file - Remplacé par un fichier virtuel - - - - Downloaded - Reçu - - - - Uploaded - Téléversé - - - - Server version downloaded, copied changed local file into conflict file - La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier conflit. - - - - Server version downloaded, copied changed local file into case conflict conflict file - La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier de conflit de casse. - - - - Deleted - Supprimé - - - - Moved to %1 - Déplacé vers %1 - - - - Ignored - Exclu - - - - Filesystem access error - Erreur d'accès au système de fichiers - - - - - Error - Erreur - - - - Updated local metadata - Métadonnées locales mises à jour - - - - Updated local virtual files metadata - Fichiers locaux virtuels de métadonnées mis à jour - - - - Updated end-to-end encryption metadata - Métadonnées de chiffrement de bout en bout mises à jour - - - - - Unknown - Inconnu - - - - Downloading - Téléchargement - - - - Uploading - Téléversement - - - - Deleting - Suppression - - - - Moving - Déplacement - - - - Ignoring - Ignoré - - - - Updating local metadata - Mise à jour des méta-données locales + %n month(s) + + %n mois + %n mois + - - - Updating local virtual files metadata - Mise à jour des méta-données des fichiers virtuels + + %n second(s) + + %n seconde + %n secondes + - - - Updating end-to-end encryption metadata - Mise à jour des métadonnées de chiffrement de bout en bout + + %n year(s) + + %n an + %n ans + - + - theme - - - Sync status is unknown - Le statut de synchronisations est inconnu - - - - Waiting to start syncing - En attente du démarrage de la synchronisation - - - - Sync is running - Synchronisation en cours - - - - Sync was successful - Synchronisation réussie - - - - Sync was successful but some files were ignored - La syncronisation a réussi mais certains fichiers ont été ignorés - - - - Error occurred during sync - Une erreur est survenue pendant la synchronisation - - - - Error occurred during setup - Une erreur est survenue pendant l'installation - + utility - - Stopping sync - Arrêt de la synchronisation + Always available locally + Toujours disponible localement - - Preparing to sync - Préparation à la synchronisation + Available online only + Disponible seulement en ligne - - Sync is paused - La synchronisation est en pause - - - - utility - - Could not open browser Impossible de démarrer le navigateur - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Une erreur est survenue au lancement du navigateur pour visiter l'adresse %1. Il est possible qu'aucun navigateur par défaut ne soit configuré. - - - Could not open email client Impossible d'ouvrir le client de messagerie - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Il y a eu une erreur lors du lancement du client de messagerie pour créer un nouveau message. Peut-être qu'aucun client de messagerie n'est configuré ? - - - - Always available locally - Toujours disponible localement - - - Currently available locally Actuellement disponible en local - - Some available online only - Certains sont disponibles en ligne seulement - - - - Available online only - Disponible seulement en ligne - - - - Make always available locally - Toujours rendre disponible localement - - - Free up local space Libérer de l'espace local - - - FileProviderEvictionDialog - - - Remove local copies - Supprimer les copies locales - - - - Local copies - Copies locales - - - - Reload - Recharger + + Make always available locally + Toujours rendre disponible localement - - - FileProviderStorageInfo - - Local storage use - Utilisation du stockage local + Some available online only + Certains sont disponibles en ligne seulement - - %1 GB of %2 GB remote files synced - %1 Go sur %2 Go de fichiers distants synchronisés + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Une erreur est survenue au lancement du navigateur pour visiter l'adresse %1. Il est possible qu'aucun navigateur par défaut ne soit configuré. - - Free up space … - Libérer de l’espace… + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Il y a eu une erreur lors du lancement du client de messagerie pour créer un nouveau message. Peut-être qu'aucun client de messagerie n'est configuré ? - + - FileProviderSyncStatus - - - Syncing - Synchronisation - + ValidateChecksumHeader - - All synced! - Tout est synchronisé ! + The checksum header contained an unknown checksum type "%1" + L’en-tête de somme de contrôle contenait un type de somme de contrôle inconnu « %1 » - - Request sync - Synchroniser + The checksum header is malformed. + L’en-tête de la somme de contrôle est mal formé. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Synchroniser les modifications pour l'environnement VFS. - macOS peut ignorer ou retarder cette demande. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + Le fichier téléchargé ne correspond pas à la somme de contrôle, il sera repris. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_it.ts b/translations/client_it.ts index d51c3f6c08f37..dd6f183c63c7a 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Apri %1 localmente - - - In %1 In %1 - + + Open %1 locally + Apri %1 localmente + + ActivityItemContent - - Open file details - Apri i dettagli del file - - - - File details - Dettagli del file - - - - File actions - Azioni sui file - - - Dismiss Annulla - + + Open file details + Apri i dettagli del file + + ActivityList - Activity list Lista attività - - Scroll to top - Scorri verso l'alto - - - No activities yet Ancora nessuna attività - + + Scroll to top + Scorri verso l'alto + + CallNotificationDialog - - Talk notification caller avatar - Avatar chiamante notifica Talk - - - Answer Talk call notification Notifica di risposta chiamata Talk - Decline Rifiuta - Decline Talk call notification Notifica di rifiuto chiamata Talk - + + Talk notification caller avatar + Avatar chiamante notifica Talk + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Controllo delle modifiche in "%1" - - Syncing %1 of %2 (%3 left) - Sincronizzazione di %1 di %2 (%3 rimanenti) - - - - Syncing %1 of %2 - Sincronizzazione di %1 di %2 - - - - Syncing %1 (%2 left) - Sincronizzazione di %1 (%2 rimanenti) + Help + Aiuto - - Syncing %1 - Sincronizzazione di %1 + Log out + Esci - - No recently changed files Nessun file modificato di recente - - Sync paused - La sincronizzazione è sospesa - - - - Syncing - Sincronizzazione - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Apri %1 Desktop - Open in browser Apri nel browser - - Recently changed - Modificati di recente - - - Pause synchronization Sospendi la sincronizzazione - - Help - Aiuto + Quit sync client + Chiudi il client di sincronizzazione + + + Recently changed + Modificati di recente - Settings Impostazioni - - Log out - Esci + Sync paused + La sincronizzazione è sospesa - - Quit sync client - Chiudi il client di sincronizzazione + Syncing + Sincronizzazione - + + Syncing %1 + Sincronizzazione di %1 + + + Syncing %1 (%2 left) + Sincronizzazione di %1 (%2 rimanenti) + + + Syncing %1 of %2 + Sincronizzazione di %1 di %2 + + + Syncing %1 of %2 (%3 left) + Sincronizzazione%1 di %2 (%3 rimasto) + + ConflictDelegate - Local version Versione locale - Server version Versione del server @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Account corrente - - - - - Resume sync for all - Riprendi la sincronizzazione per tutti - - - - - Pause sync for all - Sospendi la sincronizzazione per tutti + Account switcher and settings menu + Menu di cambio account e impostazioni - - + Add account Aggiungi account - Add new account Aggiungi nuovo account - - Settings - Impostazioni - - - - Exit - Uscita + Current account + Account corrente - Current account avatar Avatar dell'account corrente - + Current account status is do not disturb + Lo stato attuale dell'account è "non disturbare" + + Current account status is online Lo stato attuale dell'account è online - - Current account status is do not disturb - Lo stato attuale dell'account è "non disturbare" + Exit + Uscita - - Account switcher and settings menu - Menu di cambio account e impostazioni + Pause sync for all + Sospendi la sincronizzazione per tutti - + + Resume sync for all + Riprendi la sincronizzazione per tutti + + + Settings + Impostazioni + + EditFileLocallyLoadingDialog - Opening file for local editing Apertura file per modifica in locale @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis Nessun emoji recente @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Scoperta dei certificati archiviati sul tuo token USB @@ -266,44 +210,42 @@ ErrorBox - Error Errore - - FileActionsWindow - - - File actions for %1 - Azioni sui file per %1 - - FileDetailsPage - - Activity - Attività - - - - Sharing - Condivisione + Dismiss + Annulla FileDetailsWindow - File details of %1 · %2 Dettagli file di %1 · %2 + + FileProviderEvictionDialog + + Local copies + Copie locali + + + Reload + Ricarica + + + Remove local copies + Rimuovi copie locali + + FileProviderFileDelegate - Delete Cancella @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Impostazioni dei file virtuali + Enable virtual files + Abilita i file virtuali - General settings Impostazioni generali - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - I file virtuali appaiono come i file normali, ma non utilizzano spazio di archiviazione locale. Il contenuto viene scaricato automaticamente all'apertura del file. I file virtuali e la sincronizzazione classica non possono essere utilizzati contemporaneamente. + Reset virtual files environment + Reimposta l'ambiente dei file virtuali + + + Virtual files settings + Impostazioni dei file virtuali + + + FileProviderStorageInfo - - Enable virtual files - Abilita i file virtuali + %1 GB of %2 GB remote files synced + %1 GB di %2 GB file remoti sincronizzati - - Reset virtual files environment - Reimposta l'ambiente dei file virtuali + Free up space … + Liberare spazio … - + + Local storage use + Utilizzo del disco locale + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Errore durante la rimozione di "%1": %2 + All synced! + Tutto sincronizzato! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Richiedi una sincronizzazione delle modifiche per l'ambiente VFS. +macOS potrebbe ignorare o ritardare questa richiesta. + + Request sync + Richiesta di sincronizzazione + + + Syncing + Sincronizzazione + + + + FileSystem - Could not remove folder "%1" Impossibile rimuovere la cartella "%1" - + + Error removing "%1": %2 + Errore durante la rimozione di "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Si è verificato un errore durante la connessione. Prova ancora. + + Browser Authentication Autenticazione browser - + Copy Link + Copia collegamento + + Logo Logo - Switch to your browser to connect your account Passa al tuo browser per connetterti all'account + + + FolderWizardSelectiveSync + + Add Folder Sync + + - - An error occurred while connecting. Please try again. - Si è verificato un errore durante la connessione. Prova ancora. + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Scegli una cartella locale sul tuo computer da sincronizzare + &Choose + + + + Add Folder Sync + - - &Choose … - S&cegli… + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Seleziona una cartella remota di destinazione + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Crea cartella - + Folders + Cartelle + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Aggiorna - - Folders - Cartelle + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Contenuto principale - - Issue with account %1 - Problema con l'account %1 + New activities + Nuove attività - - - Issues with several accounts - Problemi con diversi account + + Unified search results list + Elenco dei risultati di ricerca unificato + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Vuoi iniziare una nuova conversazione? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Realizzato dalla revisione Git <a href="%1">%2</a> su %3, %4 usando Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - Nuova conversazione + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. - - Cancel - Annulla + The server enforces strict transport security and does not accept untrusted certificates. + Il server applica una rigorosa sicurezza di trasporto e non accetta certificati non attendibili. - - - This will clear the existing conversation. - Questo chiuderà la conversazione in corso. + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + Il server ha impiegato troppo tempo per rispondere. Controlla la connessione e riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. + + + OCC::Account - - Ask Assistant … - Chiedi all'Assistente … + File %1 is already locked by %2. + File %1 è già bloccato da %2. - - Ask Assistant… - Chiedi all'Assistente… - - - - Send assistant question - Invia domanda all'assistente - - - - Start a new assistant chat - Avvia una nuova chat con l'assistente - - - - Unified search results list - Elenco dei risultati di ricerca unificato - - - - New activities - Nuove attività - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - Il server ha impiegato troppo tempo per rispondere. Controlla la connessione e riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. - - - - The server enforces strict transport security and does not accept untrusted certificates. - Il server applica una rigorosa sicurezza di trasporto e non accetta certificati non attendibili. + Lock operation on %1 failed with error %2 + Operazione di blocco di %1 fallita con errore %2 - - - OCC::Account - Public Share Link Collegamento di condivisione pubblico - - File %1 is already locked by %2. - File %1 è già bloccato da %2. - - - - Lock operation on %1 failed with error %2 - Operazione di blocco di %1 fallita con errore %2 - - - Unlock operation on %1 failed with error %2 Operazione di sblocco di %1 fallita con errore %2 @@ -520,549 +459,396 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? È stato rilevato un account da un client desktop legacy. L'account deve essere importato? - - - Legacy import - Importazione obsoleta + Could not import accounts from legacy client configuration. + Importazione account fallita da una configurazione di client obsoleto. - - + Import Importa - - Skip - Salta + Legacy import + Importazione obsoleta - - Could not import accounts from legacy client configuration. - Importazione account fallita da una configurazione di client obsoleto. + Skip + Salta - + OCC::AccountSettings - - Virtual files - File virtuali + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) di %2 in uso. Alcune cartelle, incluse quelle montate in rete o le cartelle condivise, potrebbero avere limiti diversi. - - Classic sync - Sincronizzazione classica + %1 as %2 + %1 come %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Le cartelle non marcate saranno <b>rimosse</b> dal file system locale e non saranno sincronizzate più con questo computer + %1 in use + %1 in uso - - Storage space: … - Spazio di archiviazione: ... + %1 of %2 in use + %1 di %2 in uso - - Synchronize all - Sincronizza tutto + (experimental) + (sperimentale) - - Synchronize none - Non sincronizzare + <p>Could not create local folder <i>%1</i>.</p> + <p>Impossibile creare la cartella locale <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Vuoi davvero fermare la sincronizzazione della cartella <i>%1</i>?</p><p><b>Nota:</b> ciò <b>non</b> eliminerà alcun file.</p> + + + Apply + Applica - Apply manual changes Applica le modifiche manuali - - Standard file sync - Sincronizzazione file standard + Availability + Disponibilità - - Virtual file sync - Sincronizzazione con file virtuali + Cancel + Annulla - - Connection settings - Impostazioni di connessione + Choose what to sync + Scegli cosa sincronizzare - - Apply - Applica + Confirm Folder Sync Connection Removal + Conferma rimozione connessione di sincronizzazione cartelle - - - - Cancel - Annulla + Connected to %1. + Connesso a %1. - Connected with <server> as <user> Connesso a <server> come <user> - - No account configured. - Nessun account configurato. - - - - End-to-end Encryption with Virtual Files - Cifratura end-to-end con file virtuali + Connecting to %1 … + Connessione a %1… - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Sembra che tu abbia la funzione File Virtuali attiva in questa cartella. Al momento, non è possibile scaricare implicitamente file virtuali che sono cifrati end-to-end. Per avere la migliore esperienza con i file virtuali e la crittografia end-to-end, assicurati che la cartella cifrata sia contrassegnata con "Rendi sempre disponibile in locale". + Connection settings + Impostazioni di connessione - - - Do not encrypt folder - Non cifrare la cartella + Could not encrypt folder because the folder does not exist anymore + Impossibile crittografare la cartella perchè non esiste più - - - Encrypt folder - Cifra cartella + Create new folder + Crea una nuova cartella - - End-to-end Encryption - Cifratura end-to-end + Currently there is no storage usage information available. + Non ci sono informazioni disponibili sull'utilizzo dello spazio di archiviazione. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Verrà cifrata la cartella e tutti i file al suo interno. Questi file non saranno più accessibili senza la tua chiave mnemonica di crittografia. -<b>Questo processo è irreversibile. Vuoi davvero procedere?</b> + Disable support + Disabilita supporto - - End-to-end encryption has not been initialized on this account. - La crittografia end-to-end non è stata inizializzata su questo account. + Disable virtual file support … + Disabilita il supporto dei file virtuali… - - Forget encryption setup - Dimentica configurazione della crittografia + Disable virtual file support? + Vuoi disabilitare il supporto dei file virtuali? - Display mnemonic Visualizza mnemonico - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - La crittografia è impostata. Ricordati di <b>Crittografare</b> una cartella per crittografare end-to-end tutti i nuovi file aggiunti ad essa. - - - - Warning - Avviso + Do not encrypt folder + Non cifrare la cartella - - Please wait for the folder to sync before trying to encrypt it. - Attendi che la cartella si sincronizzi prima di tentare di cifrarla. + Do you want to forget the end-to-end encryption settings for %1 on this device? + Vuoi dimenticare le impostazioni di crittografia end-to-end per %1 su questo dispositivo? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - La cartella ha un problema minore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione + Edit Ignored Files + Modifica file ignorati - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - La cartella ha un errore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione + Enable virtual file support %1 … + Abilita supporto dei file virtuali %1… - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - Non puoi crittografare questa cartella perché la crittografia end-to-end non è ancora configurata su questo dispositivo. -Vuoi farlo ora? + Encrypt + Cifra - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - Non puoi cifrare una cartella con contenuti, rimuovi i file. -Attendi la nuova sincronizzazione, quindi cifrala. + Encrypt folder + Cifra cartella - Encryption failed Cifratura fallita - - Could not encrypt folder because the folder does not exist anymore - Impossibile crittografare la cartella perchè non esiste più + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + La crittografia è impostata. Ricordati di <b>Crittografare</b> una cartella per crittografare end-to-end tutti i nuovi file aggiunti ad essa. - - Encrypt - Cifra + End-to-end Encryption + Cifratura end-to-end - - - Edit Ignored Files - Modifica file ignorati + End-to-end Encryption with Virtual Files + Cifratura end-to-end con file virtuali - - - Create new folder - Crea una nuova cartella + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + La crittografia end-to-end è stata inizializzata su questo account con un altro dispositivo. <br>Inserisci il codice mnemonico univoco per sincronizzare le cartelle crittografate anche su questo dispositivo. - - - Availability - Disponibilità + End-to-end encryption has not been initialized on this account. + La crittografia end-to-end non è stata inizializzata su questo account. - - Choose what to sync - Scegli cosa sincronizzare + End-to-end encryption mnemonic + Codice mnemonico per cifratura end-to-end + + + Expand Memory + + + + Folder creation failed + Creazione della cartella non riuscita - Force sync now Forza ora la sincronizzazione - - Restart sync - Riavvia sincronizzazione + Forget encryption setup + Dimentica configurazione della crittografia - - Remove folder sync connection - Rimuovi connessione di sincronizzazione cartelle + Forget the end-to-end encryption on this device + Dimentica la crittografia end-to-end su questo dispositivo - - Disable virtual file support … - Disabilita il supporto dei file virtuali… + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Dimenticare la crittografia end-to-end rimuoverà i dati sensibili e tutti i file crittografati da questo dispositivo.<br>Tuttavia, i file crittografati rimarranno sul server e su tutti gli altri dispositivi, se configurati. - - Enable virtual file support %1 … - Abilita supporto dei file virtuali %1… + Migrate certificate to a new one + Migrare il certificato a uno nuovo - - (experimental) - (sperimentale) + No %1 connection configured. + Nessuna connessione di %1 configurata. - - Folder creation failed - Creazione della cartella non riuscita + No account configured. + Nessun account configurato. - - Confirm Folder Sync Connection Removal - Conferma rimozione connessione di sincronizzazione cartelle + Open folder + Apri cartella + + + Pause sync + Sospendi la sincronizzazione + + + Please wait for the folder to sync before trying to encrypt it. + Attendi che la cartella si sincronizzi prima di tentare di cifrarla. - Remove Folder Sync Connection Rimuovi connessione di sincronizzazione cartelle - - Grant access to sync folder - Concedi l'accesso alla cartella di sincronizzazione + Remove folder sync connection + Rimuovi connessione di sincronizzazione cartelle - - Access Error - Errore di accesso + Restart sync + Riavvia sincronizzazione - - Could not acquire access to the selected folder. Please try again. - Impossibile accedere alla cartella selezionata. Riprova. + Resume sync + Riprendi la sincronizzazione - - Wrong Folder - Cartella errata + Server %1 is currently being redirected, or your connection is behind a captive portal. + Il server %1 è sotto redirezione o la connessione è tramite captive portal. - - Please select the original sync folder: %1 - Seleziona la cartella di sincronizzazione originale: %1 + Server %1 is currently in maintenance mode. + Il Server %1 è attualmente in manutenzione - - - Bookmark Error - Errore segnalibro + Server %1 is temporarily unavailable. + Il server %1 è temporaneamente non disponibile. - - Could not create a security bookmark for the folder. Please try again. - Impossibile creare un segnalibro di sicurezza per la cartella. Riprova. + Server configuration error: %1 at %2. + Errore di configurazione del server: %1 in %2. - - Could not resolve the security bookmark. Please try again. - Impossibile risolvere il segnalibro di sicurezza. Riprova. + Set up encryption + Configura la cifratura - - Disable virtual file support? - Vuoi disabilitare il supporto dei file virtuali? + Signed out from %1. + Disconnesso da %1. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Questa azione disabiliterà il supporto dei file virtuali. Di conseguenza, i contenuti delle cartelle attualmente contrassegnate come 'disponibili solo in linea' saranno scaricati. - -L'unico vantaggio di disabilitare il supporto dei file virtuali è che la funzione di sincronizzazione selettiva sarà nuovamente disponibile. - -Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione. - - - - Disable support - Disabilita supporto - - - - End-to-end encryption mnemonic - Codice mnemonico per cifratura end-to-end - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - Per proteggere la tua Identità Crittografica, la criptiamo con un codice mnemonico di 12 parole del dizionario. Annotalo e conservalo in un luogo sicuro. Ti servirà per configurare la sincronizzazione delle cartelle crittografate sugli altri tuoi dispositivi. - - - - Forget the end-to-end encryption on this device - Dimentica la crittografia end-to-end su questo dispositivo + Standard file sync + Sincronizzazione file standard - - Do you want to forget the end-to-end encryption settings for %1 on this device? - Vuoi dimenticare le impostazioni di crittografia end-to-end per %1 su questo dispositivo? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Dimenticare la crittografia end-to-end rimuoverà i dati sensibili e tutti i file crittografati da questo dispositivo.<br>Tuttavia, i file crittografati rimarranno sul server e su tutti gli altri dispositivi, se configurati. + Storage space: … + Spazio di archiviazione: ... - Sync Running La sincronizzazione è in corso - - The syncing operation is running.<br/>Do you want to terminate it? - L'operazione di sincronizzazione è in corso.<br/>Vuoi terminarla? + Synchronize all + Sincronizza tutto - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) di %2 in uso. Alcune cartelle, incluse quelle montate in rete o le cartelle condivise, potrebbero avere limiti diversi. + Synchronize none + Non sincronizzare - - Currently there is no storage usage information available. - Non ci sono informazioni disponibili sull'utilizzo dello spazio di archiviazione. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + La cartella ha un problema minore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione - - %1 in use - %1 in uso + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + La cartella ha un errore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione - - Connected to %1 (%2). - Connesso a %1 (%2). + The server version %1 is unsupported! Proceed at your own risk. + La versione %1 del server non è supportata! Continua a tuo rischio. - - Migrate certificate to a new one - Migrare il certificato a uno nuovo + The syncing operation is running.<br/>Do you want to terminate it? + L'operazione di sincronizzazione è in corso.<br/>Vuoi terminarla? - There are folders that have grown in size beyond %1MB: %2 Ci sono cartelle che sono cresciute di spazio superando %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - La crittografia end-to-end è stata inizializzata su questo account con un altro dispositivo. <br>Inserisci il codice mnemonico univoco per sincronizzare le cartelle crittografate anche su questo dispositivo. - - - - This account supports end-to-end encryption, but it needs to be set up first. - Questo account supporta la crittografia end-to-end, ma è necessario prima configurarla. - - - - The virtual files integration does not support end-to-end encryption yet. - L'integrazione dei file virtuali non supporta ancora la crittografia end-to-end. + There are folders that were not synchronized because they are external storages: + - - Set up encryption - Configura la cifratura - - - - Connected to %1. - Connesso a %1. - - - - Server %1 is temporarily unavailable. - Il server %1 è temporaneamente non disponibile. - - - - Server %1 is currently in maintenance mode. - Il Server %1 è attualmente in manutenzione - - - - Signed out from %1. - Disconnesso da %1. - - - - There are folders that were not synchronized because they are too big: - Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi: - - - - There are folders that were not synchronized because they are external storages: - Ci sono nuove cartelle che non sono state sincronizzate poiché sono archiviazioni esterne: - - - - There are folders that were not synchronized because they are too big or external storages: - Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi o archiviazioni esterne: + There are folders that were not synchronized because they are too big or external storages: + - - - Open folder - Apri cartella - - - - Resume sync - Riprendi la sincronizzazione + There are folders that were not synchronized because they are too big: + - - Pause sync - Sospendi la sincronizzazione + This account supports end-to-end encryption, but it needs to be set up first. + Questo account supporta la crittografia end-to-end, ma è necessario prima configurarla. - - <p>Could not create local folder <i>%1</i>.</p> - <p>Impossibile creare la cartella locale <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Questa azione disabiliterà il supporto dei file virtuali. Di conseguenza, i contenuti delle cartelle attualmente contrassegnate come 'disponibili solo in linea' saranno scaricati. + +L'unico vantaggio di disabilitare il supporto dei file virtuali è che la funzione di sincronizzazione selettiva sarà nuovamente disponibile. + +Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Vuoi davvero fermare la sincronizzazione della cartella <i>%1</i>?</p><p><b>Nota:</b> ciò <b>non</b> eliminerà alcun file.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Verrà cifrata la cartella e tutti i file al suo interno. Questi file non saranno più accessibili senza la tua chiave mnemonica di crittografia. +<b>Questo processo è irreversibile. Vuoi davvero procedere?</b> - - %1 of %2 in use - %1 di %2 in uso + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + Per proteggere la tua Identità Crittografica, la criptiamo con un codice mnemonico di 12 parole del dizionario. Annotalo e conservalo in un luogo sicuro. Ti servirà per configurare la sincronizzazione delle cartelle crittografate sugli altri tuoi dispositivi. - - %1 as %2 - %1 come %2 + Unable to connect to %1. + Connessione non riuscita a %1. - - The server version %1 is unsupported! Proceed at your own risk. - La versione %1 del server non è supportata! Continua a tuo rischio. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Le cartelle non marcate saranno <b>rimosse</b> dal file system locale e non saranno sincronizzate più con questo computer - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Il server %1 è sotto redirezione o la connessione è tramite captive portal. + Virtual file sync + Sincronizzazione con file virtuali - - Connecting to %1 … - Connessione a %1… + Warning + Avviso - - Unable to connect to %1. - Connessione non riuscita a %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + Non puoi cifrare una cartella con contenuti, rimuovi i file. +Attendi la nuova sincronizzazione, quindi cifrala. - - Server configuration error: %1 at %2. - Errore di configurazione del server: %1 in %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + Non puoi crittografare questa cartella perché la crittografia end-to-end non è ancora configurata su questo dispositivo. +Vuoi farlo ora? - You need to accept the terms of service at %1. È necessario accettare i termini di servizio su %1. - - No %1 connection configured. - Nessuna connessione di %1 configurata. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Sembra che tu abbia la funzione File Virtuali attiva in questa cartella. Al momento, non è possibile scaricare implicitamente file virtuali che sono cifrati end-to-end. Per avere la migliore esperienza con i file virtuali e la crittografia end-to-end, assicurati che la cartella cifrata sia contrassegnata con "Rendi sempre disponibile in locale". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accesso negato dal server. Per verificare di avere i permessi appropriati, <a href="%1">fai clic qui</a> per accedere al servizio con il tuo browser. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. + + There was an invalid response to an authenticated WebDAV request Ricevuta una risposta non valida a una richiesta WebDAV autenticata @@ -1070,57 +856,46 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::AccountState - - Signed out - Disconnesso + Asking Credentials + Richiesta credenziali - - Disconnected - Disconnesso + Configuration error + Errore di configurazione - Connected Connesso - - Service unavailable - Servizio non disponibile + Disconnected + Disconnesso - Maintenance mode Modalità Manutenzione - - Redirect detected - Rilevata redirezione + Need the user to accept the terms of service + È necessario che l'utente accetti i termini del servizio - Network error Errore di rete - - Configuration error - Errore di configurazione + Redirect detected + Rilevata redirezione - - Asking Credentials - Richiesta credenziali + Service unavailable + Servizio non disponibile - - Need the user to accept the terms of service - È necessario che l'utente accetti i termini del servizio + Signed out + Disconnesso - Unknown account state Stato dell'account sconosciuto @@ -1128,17 +903,14 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::ActivityListModel - - For more activities please open the Activity app. - Per altre attività, apri l'applicazione Attività. - - - Fetching activities … Recupero attività … - + For more activities please open the Activity app. + Per altre attività, apri l'applicazione Attività. + + Network error occurred: client will retry syncing. Errore di rete: il client ritenterà la sincronizzazione. @@ -1146,168 +918,134 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::AddCertificateDialog - - SSL client certificate authentication - Autenticazione con certificato client SSL + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Si consiglia vivamente un bundle pkcs12 cifrato poiché una copia sarà archiviata nel file di configurazione. - - This server probably requires a SSL client certificate. - Questo server richiede probabilmente un certificato client SSL. + Browse … + Sfoglia... - Certificate & Key (pkcs12): Certificato e chiave (pkcs12): - + Certificate files (*.p12 *.pfx) + File di certificato (*.p12 *.pfx) + + Certificate password: Password del certificato: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Si consiglia vivamente un bundle pkcs12 cifrato poiché una copia sarà archiviata nel file di configurazione. - - - - Browse … - Sfoglia... + SSL client certificate authentication + Autenticazione con certificato client SSL - Select a certificate Seleziona un certificato - - Certificate files (*.p12 *.pfx) - File di certificato (*.p12 *.pfx) - - - - Could not access the selected certificate file. - Impossibile accedere al file del certificato selezionato. + This server probably requires a SSL client certificate. + Questo server richiede probabilmente un certificato client SSL. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Alcune impostazioni sono state configurate nelle versioni %1 di questo client e utilizzano funzionalità che non sono disponibili in questa versione. <br><br> Continuare significherà <b>%2 queste impostazioni </b>. <br><br>Il file di configurazione attuale è stato backuppato su <i>%3</i>. - - - - newer - newer software version - mai - - - - older - older software version - più vecchio + %1 accounts + number of accounts imported + %1 account - - ignoring - ignorare + %1 folders + number of folders imported + %1 cartelle - - deleting - eliminare + 1 account + 1 account - - Quit - Esci + 1 folder + 1 cartella - Continue Continua - - %1 accounts - number of accounts imported - %1 account + Error accessing the configuration file + Errore accedendo al file di configurazione - - 1 account - 1 account - - - - %1 folders - number of folders imported - %1 cartelle - - - - 1 folder - 1 cartella + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + Importati %1 e %2 da un client desktop obsoleto. +%3 - Legacy import Importazione obsoleta - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - Importati %1 e %2 da un client desktop obsoleto. -%3 + Quit + Esci - - Error accessing the configuration file - Errore accedendo al file di configurazione + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Alcune impostazioni sono state configurate nelle versioni %1 di questo client e utilizzano funzionalità che non sono disponibili in questa versione. <br><br> Continuare significherà <b>%2 queste impostazioni </b>. <br><br>Il file di configurazione attuale è stato backuppato su <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Si è verificato un errore durante l'accesso al file di configurazione su %1. Assicurati che il file sia accessibile dal tuo account di sistema. - - - OCC::AuthenticationDialog + + deleting + eliminare + - - Authentication Required - Autenticazione richiesta + ignoring + ignorare - - Enter username and password for "%1" at %2. - Digita nome utente e password per "%1" su %2. + newer + newer software version + mai - - &Username: - Nome &utente: + older + older software version + più vecchio + + + OCC::AuthenticationDialog - &Password: &Password: - + + &Username: + Nome &utente: + + + Authentication Required + Autenticazione richiesta + + + Enter username and password for "%1" at %2. + Digita nome utente e password per "%1" su %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 Sblocco non riuscito per la cartella cifrata %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". @@ -1315,245 +1053,195 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Errore durante l'aggiornamento dei metadati: %1 + + File %1 can not be downloaded because of a local file name clash! Il file %1 non può essere scaricato a causa di un conflitto di nomi di file locali! - + The file %1 is currently in use + Il file %1 è attualmente in uso + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossibile aggiornare i metadati del nuovo file%1. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - Errore durante l'aggiornamento dei metadati: %1 - - - - The file %1 is currently in use - Il file %1 è attualmente in uso + Errore di aggiornamento dei metadati: %1 - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Il file %1 non può essere caricato poiché esiste un altro file con lo stesso nome, ma con differenze tra maiuscole e minuscole - - File contains leading or trailing spaces and couldn't be renamed - Il file contiene spazi iniziali o finali e non può essere rinominato + File %1 has invalid modification time. Do not upload to the server. + Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. - File %1 has invalid modified time. Do not upload to the server. Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. - File Removed (start upload) %1 File rimosso (avvio caricamento) %1 - - File %1 has invalid modification time. Do not upload to the server. - Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. - - - - Local file changed during syncing. It will be resumed. - File locale modificato durante la sincronizzazione. Verrà ricaricato. + File contains leading or trailing spaces and couldn't be renamed + Il file contiene spazi iniziali o finali e non può essere rinominato - - Local file changed during sync. File locale modificato durante la sincronizzazione. - + Local file changed during syncing. It will be resumed. + File locale modificato durante la sincronizzazione. Verrà ricaricato. + + Network error: %1 Errore di rete: %1 - - Error updating metadata: %1 - Errore di aggiornamento dei metadati: %1 + Restoration failed: %1 + Ripristini non riusciti: %1 - - + The file %1 is currently in use Il file %1 è attualmente in uso - The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. - - - Restoration failed: %1 - Ripristini non riusciti: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Impossibile rinominare il file perché ne esiste già uno con lo stesso nome sul server. Scegli un altro nome. - Could not rename file. Please make sure you are connected to the server. Impossibile rinominare il file. Assicurati di essere connesso al server. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. - - - Failed to fetch permissions with error %1 Recupero dei permessi fallito con errore %1 - Filename contains leading and trailing spaces. Il nome del file contiene spazi all'inizio e alla fine. - Filename contains leading spaces. Il nome del file contiene spazi all'inizio. - Filename contains trailing spaces. Il nome del file contiene spazi alla fine. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 non supporta nomi di file che differiscono solo per caratteri maiuscoli/minuscoli + + + 0 byte + 0 byte + + Case Clash Conflict Confltto su maiuscole/minuscole - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - Il file non può essere sincronizzato perché genera un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. + Case clashing file + File con conflitto maiuscole/minuscole - Error Errore - Existing file File esistente - - file A - file A - - - - - today - oggi + Filename contains illegal characters: %1 + Il nome del file contiene caratteri non consentiti: %1 - - - - 0 byte - 0 byte + + Filename contains leading and trailing spaces. + Il nome del file contiene spazi all'inizio e alla fine. - - - Open existing file - Apri file esistente + Filename contains leading spaces. + Il nome del file contiene spazi all'inizio. - - Case clashing file - File con conflitto maiuscole/minuscole + Filename contains trailing spaces. + Il nome del file contiene spazi alla fine. - - file B - file B + New filename + Nuovo nome del file - - Open clashing file Apri il file conflittante - - Please enter a new name for the clashing file: - Inserisci un nuovo nome per il file conflittante: + Open existing file + Apri file esistente - - New filename - Nuovo nome del file + Please enter a new name for the clashing file: + Inserisci un nuovo nome per il file conflittante: - Rename file Rinomina file - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. l file "%1" non può essere sincronizzato per un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. - - %1 does not support equal file names with only letter casing differences. - %1 non supporta nomi di file che differiscono solo per caratteri maiuscoli/minuscoli - - - - Filename contains leading and trailing spaces. - Il nome del file contiene spazi all'inizio e alla fine. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Il file non può essere sincronizzato perché genera un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. - - Filename contains leading spaces. - Il nome del file contiene spazi all'inizio. + Use invalid name + Usa il nome non valido - - Filename contains trailing spaces. - Il nome del file contiene spazi alla fine. + file A + file A - - Use invalid name - Usa il nome non valido + file B + file B - - Filename contains illegal characters: %1 - Il nome del file contiene caratteri non consentiti: %1 + today + oggi - + OCC::CleanupPollsJob - Error writing metadata to the database Errore durante la scrittura dei metadati nel database @@ -1561,361 +1249,330 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - Inserisci il codice PIN - - - Enter Certificate USB Token PIN: Inserisci il PIN del token USB del certificato: - + Enter E2E passphrase + Digita la frase segreta E2E + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Inserisci il codice PIN + + Invalid PIN. Login failed PIN non valido. Accesso non riuscito - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! L'accesso al token non è riuscito dopo aver fornito il PIN utente. Potrebbe essere non valido o sbagliato. Riprova! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Digita la tua frase segreta per la crittografia end-to-end:<br><br> Utente: %2<br>Account: %3<br> - - - Enter E2E passphrase - Digita la frase segreta E2E - - + OCC::ConflictDialog - - Sync Conflict - Conflitto di sincronizzazione - - - - - Conflicting versions of %1. - Versioni in conflitto di %1. + 0 byte + 0 byte - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Quale versione del file vuoi mantenere?<br/>Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file locale. + <a href="%1">Open local version</a> + <a href="%1">Apri versione locale</a> - - Local version - Versione locale + <a href="%1">Open server version</a> + <a href="%1">Apri versione del server</a> - - Click to open the file Fai clic per aprire il file - - - today - oggi + Conflicting versions of %1. + Versioni in conflitto di %1. - - - 0 byte - 0 byte + Keep both versions + Mantieni entrambi le versioni - - <a href="%1">Open local version</a> - <a href="%1">Apri versione locale</a> + Keep local version + Mantieni la versione locale - - Server version - Versione del server + Keep selected version + Mantieni la versione selezionata - - <a href="%1">Open server version</a> - <a href="%1">Apri versione del server</a> + Keep server version + Mantieni la versione del server - - - - Keep selected version - Mantieni la versione selezionata + + Local version + Versione locale - Open local version Apri la versione locale - Open server version Apri la versione del server - - Keep both versions - Mantieni entrambi le versioni + Server version + Versione del server - - Keep local version - Mantieni la versione locale + Sync Conflict + Conflitto di sincronizzazione - - Keep server version - Mantieni la versione del server + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Quale versione del file vuoi mantenere?<br/>Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file locale. - - - OCC::ConflictSolver - - - Error - Errore + today + oggi + + + OCC::ConflictSolver - - - Moving file failed: - -%1 - Spostamento file non riuscito: - -%1 + Confirm deletion + Conferma l'eliminazione - - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vuoi eliminare la cartella <i>%1</i> e il suo contenuto definitivamente? - Do you want to delete the file <i>%1</i> permanently? Vuoi eliminare il file <i>%1</i> definitivamente? - - Confirm deletion - Conferma l'eliminazione + Error + Errore - + + Moving file failed: + +%1 + Spostamento file non riuscito: + +%1 + + OCC::ConnectionValidator - + Authentication error: Either username or password are wrong. + Errore di autenticazione: nome utente o password errati. + + No %1 account configured The placeholder will be the application name. Please keep it Nessun %1 account configurato - - Timeout - Scadenza + Please update to the latest server and restart the client. + Aggiorna all'ultima versione del server e riavvia il client. - The configured server for this client is too old Il server configurato per questo client è troppo datato - - Please update to the latest server and restart the client. - Aggiorna all'ultima versione del server e riavvia il client. + The provided credentials are not correct + Le credenziali fornite non sono corrette + + + Timeout + Scadenza + + + OCC::DataProtectionPage - - Authentication error: Either username or password are wrong. - Errore di autenticazione: nome utente o password errati. + Agree + - - The provided credentials are not correct - Le credenziali fornite non sono corrette + Form + Modulo + + + Settings + Impostazioni + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Errore nell'annullamento della cancellazione di un file + Back + Indietro - - Error while canceling deletion of %1 - Errore nell'annullamento della cancellazione di %1 + Form + Modulo + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Errore del server: la risposta PROPFIND non è in formato XML! + Error while canceling deletion of %1 + Errore nell'annullamento della cancellazione di %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - Il server ha restituito una risposta inaspettata che non è stato possibile leggere. Contatta l'amministratore del server. + + Error while canceling deletion of a file + Errore nell'annullamento della cancellazione di un file + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Eerrore nell'impostazione dei metadati di crittografia! - Encrypted metadata setup error: initial signature from server is empty. Errore di configurazione dei metadati crittografati: la firma iniziale del server è vuota. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Errore del server: la risposta PROPFIND non è in formato XML! + - - Error while opening directory %1 - Errore durante l'apertura della cartella %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + Il server ha restituito una risposta inaspettata che non è stato possibile leggere. Contatta l'amministratore del server. + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Cartella non accessibile sul client, permesso negato - Directory not found: %1 Cartella non trovata: %1 - - Filename encoding is not valid - La codifica del nome del file non è valida + Error while opening directory %1 + Errore durante l'apertura della cartella %1 - Error while reading directory %1 Errore durante la lettura della cartella %1 - + + Filename encoding is not valid + La codifica del nome del file non è valida + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Impossibile iniziare la modifica localmente. + An error occurred during data retrieval. + Si è verificato un errore nella ricezione dei dati. - - An error occurred during setup. Si è verificato un errore durante il setup. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Impossibile trovare un file per modificare in locale. Assicurati che il percorso sia valido e che sia sincronizzato in locale. + An error occurred trying to synchronise the file to edit locally. + Si è verificato un errore nella sincronizzazione del file da modificare localmente. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Impossibile trovare un file per modificare in locale. Assicurati che non sia escluso via sinc. selettiva. - - - - An error occurred during data retrieval. - Si è verificato un errore nella ricezione dei dati. - - - - - An error occurred trying to synchronise the file to edit locally. - Si è verificato un errore nella sincronizzazione del file da modificare localmente. - - - - Server error: PROPFIND reply is not XML formatted! - Errore del server: la risposta PROPFIND non è in formato XML! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Impossibile trovare un file per modificare in locale. Assicurati che il percorso sia valido e che sia sincronizzato in locale. - Could not find a remote file info for local editing. Make sure its path is valid. Impossibile trovare un file per modificare in locale. Assicurati che il percorso sia valido. - - Invalid local file path. - Percorso locale del file non valido. - - - Could not open %1 Impossibile aprire %1 - - Please try again. - Riprova. + Could not start editing locally. + Impossibile iniziare la modifica localmente. - File %1 already locked. File %1 già bloccato. - - + File %1 could not be locked. + Impossibile blocare il file %1. + + + File %1 now locked. + File %1 ora bloccato. + + + Invalid local file path. + Percorso locale del file non valido. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Il blocco durerà %1 minuti. Puoi anche sbloccare questo file manualmente una volta finito di modificarlo. - - File %1 now locked. - File %1 ora bloccato. + Please try again. + Riprova. - - File %1 could not be locked. - Impossibile blocare il file %1. + Server error: PROPFIND reply is not XML formatted! + Errore del server: la risposta PROPFIND non è in formato XML! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Impossibile convalidare la richiesta di apertura di un file dal server. - Please try again. Riprova. @@ -1923,405 +1580,308 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione OCC::EditLocallyVerificationJob - - Invalid token received. - È stato ricevuto un token non valido. - - - - - - Please try again. - Riprova. - - - - Invalid file path was provided. - È stato fornito un percorso file non valido. + An error occurred trying to verify the request to edit locally. + Si è verificato un errore durante il tentativo di verifica della richiesta di modifica locale. - - + Could not find an account for local editing. Impossibile trovare un account per la modifica locale. - Could not start editing locally. Impossibile avviare la modifica in locale. - - An error occurred trying to verify the request to edit locally. - Si è verificato un errore durante il tentativo di verifica della richiesta di modifica locale. + Invalid file path was provided. + È stato fornito un percorso file non valido. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Impossibile generare i metadati per la cifratura. Sblocco della cartella. -Questo può essere un problema delle le tue librerie OpenSSL. + Invalid token received. + È stato ricevuto un token non valido. - + + Please try again. + Riprova. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Errore nel recupero dell'ID della cartella criptata. + + Error fetching metadata. Errore nel recupero dei metadati. - - - Error locking folder. Errore durante il blocco della cartella. - - Error fetching encrypted folder ID. - Errore nel recupero dell'ID della cartella criptata. - - - Error parsing or decrypting metadata. Errore durante l'elaborazione o decifratura dei metadati. - Failed to upload metadata Caricamento dei metadati non riuscito. - OCC::FileActionsModel - - - Your account is offline %1. - account url - Il tuo account è offline%1. - - - - The file ID is empty for %1. - file name - L'ID del file è vuoto per %1. - - - - The file type for %1 is not valid. - file name - Il tipo di file per %1 non è valido. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - Nessuna azione sui file è stata restituita dal server per %1 file. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - %1 l'operazione non è riuscita. Si prega di riprovare più tardi. Per assistenza, contattare l'amministratore del server. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 fatto. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Impossibile generare i metadati per la cifratura. Sblocco della cartella. +Questo può essere un problema delle le tue librerie OpenSSL. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - %1 secondo fa%1 secondi fa%1 secondi fa - - - - %1 minute(s) ago - minutes elapsed since file last modified - %1 minuti fa%1 minuti fa%1 minuto/i fa + %1 day(s) ago + days elapsed since file last modified + + %n giorno fa + %n giorni fa + - %1 hour(s) ago hours elapsed since file last modified - %n ora fa%n ore fa%n ore fa + + %n ora fa + %n ore fa + - - %1 day(s) ago - days elapsed since file last modified - %n giorno fa%n giorni fa%n giorno/i fa + %1 minute(s) ago + minutes elapsed since file last modified + + %1 minuti fa + %1 minuti fa + - %1 month(s) ago months elapsed since file last modified - %1 mese fa%1 mesi fa%1 mesi fa + + %1 mese fa + %1 mesi fa + + + + %1 second(s) ago + seconds elapsed since file last modified + + %1 secondo fa + %1 secondi fa + - %1 year(s) ago years elapsed since file last modified - %1 anno fa%1 anni fa%1 anni fa + + %1 anno fa + %1 anni fa + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Bloccato da %1 -Scade in %2 minutoBloccato da %1 - Scade in %2 minutiBloccato da %1 - Scade in %2 minuti + + Bloccato da %1 -Scade in %2 minuto + Bloccato da %1 - Scade in %2 minuti + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + Si è verificato un errore imprevisto durante il tentativo di accesso al server. Riprova ad accedere più tardi o contatta l'amministratore del server se il problema persiste. + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. L'URL del server ritornato non inizia con HTTPS sebbene l'URL di accesso fosse iniziato con HTTPS. L'accesso non sarà possibile perchè può essere un rischio di sicurezza. Contatta il tuo amministratore. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + Il server non ha risposto con i dati previsti. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Il server è temporaneamente non disponibile perché è in modalità manutenzione. Riprova al termine della manutenzione. - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - Si è verificato un errore imprevisto durante il tentativo di accesso al server. Riprova ad accedere più tardi o contatta l'amministratore del server se il problema persiste. - - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Non siamo riusciti ad analizzare la risposta del server. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. - - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - Il server non ha risposto con i dati previsti. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. - - + OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Impossibile aprire il browser, copia il collegamento nel tuo browser. - - - - Waiting for authorization - In attesa di autorizzazione - - - - Polling for authorization - Richiesta di autorizzazione + Copy Link + Copia collegamento - - Starting authorization - Avvio autorizzazione + Error + - Link copied to clipboard. Collegamento copiato negli appunti. - Open Browser Apri il browser - - Copy Link - Copia collegamento + Polling for authorization + Richiesta di autorizzazione - - - OCC::Folder - - %1 has been removed. - %1 names a file. - %1 è stato rimosso. + Starting authorization + Avvio autorizzazione - - %1 has been updated. - %1 names a file. - %1 è stato aggiornato. + Switch to your browser to connect your account + Passa al tuo browser per connetterti all'account - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 è stato rinominato in %2. + + Unable to open the Browser, please copy the link to your Browser. + Impossibile aprire il browser, copia il collegamento nel tuo browser. - - %1 has been moved to %2. - %1 è stato spostato in %2. + Waiting for authorization + In attesa di autorizzazione + + + OCC::Folder - - %1 and %n other file(s) have been removed. - %1 e %n altro file è stato rimosso.%1 e %n altri file sono stati rimossi.%1 e %n altri file sono stati rimossi. - - - - Please choose a different location. The folder %1 doesn't exist. - Si prega di scegliere una posizione diversa. La cartella %1 non esiste. - - - - Please choose a different location. %1 isn't a valid folder. - Si prega di scegliere una posizione diversa. %1 non è una cartella valida. - - - - Please choose a different location. %1 isn't a readable folder. - Si prega di scegliere una posizione diversa.. %1 non è una cartella leggibile. + %1 and %n other file(s) are currently locked. + + %1 e %n altri file sono attualmente bloccati. + %1 e %n altri file sono attualmente bloccati. + - - %1 and %n other file(s) have been added. - %1 e %n altro file sono stati aggiunti.%1 e %n altri file sono stati aggiunti.%1 e %n altri file sono stati aggiunti. - - - - %1 has been added. - %1 names a file. - %1 è stato aggiunto. + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + 1% e %n altro file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli. + 1% e %n altri file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli. + - - %1 and %n other file(s) have been updated. - %1 e %n altro file sono stati aggiornati.%1 e %n altri file sono stati aggiornati.%1 e %n altri file sono stati aggiornati. + %1 and %n other file(s) have been added. + + %1 e %n altro file sono stati aggiunti. + %1 e %n altri file sono stati aggiunti. + - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 è stato rinominato in %2 e %n altro file sono stati rinominati.%1 è stato rinominato in %2 e %n altri file sono stati rinominati.%1 è stato rinominato in %2 e %n altri file sono stati rinominati. + %1 and %n other file(s) have been removed. + + %1 e %n altro file è stato rimosso. + %1 e %n altri file sono stati rimossi. + - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 è stato spostato in %2 e %n altro file sono stati spostati.%1 è stato spostato in %2 e %n altri file sono stati spostati.%1 è stato spostato in %2 e %n altri file sono stati spostati. + %1 and %n other file(s) have been updated. + + %1 e %n altro file sono stati aggiornati. + %1 e %n altri file sono stati aggiornati. + - - - %1 has and %n other file(s) have sync conflicts. - %1 e %n altro file hanno conflitti di sincronizzazione.%1 e %n altri file hanno conflitti di sincronizzazione.%1 e %n altri file hanno conflitti di sincronizzazione. + + %1 could not be synced due to an error. See the log for details. + %1 non può essere sincronizzato a causa di un errore. Controlla il log per i dettagli. - %1 has a sync conflict. Please check the conflict file! %1 ha un conflitto di sincronizzazione. Controlla il file in conflitto! - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - 1% e %n altro file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli.1% e %n altri file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli.1% e %n altri file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli. + %1 has and %n other file(s) have sync conflicts. + + %1 e %n altro file hanno conflitti di sincronizzazione. + %1 e %n altri file hanno conflitti di sincronizzazione. + - - %1 could not be synced due to an error. See the log for details. - %1 non può essere sincronizzato a causa di un errore. Controlla il log per i dettagli. + %1 has been added. + %1 names a file. + %1 è stato aggiunto. - - %1 and %n other file(s) are currently locked. - %1 e %n altri file sono attualmente bloccati.%1 e %n altri file sono attualmente bloccati.%1 e %n altri file sono attualmente bloccati. + %1 has been moved to %2 and %n other file(s) have been moved. + + %1 è stato spostato in %2 e %n altro file sono stati spostati. + %1 è stato spostato in %2 e %n altri file sono stati spostati. + - - %1 is currently locked. - %1 è attualmente bloccato. + %1 has been moved to %2. + %1 è stato spostato in %2. - - Sync Activity - Sincronizza attività + %1 has been removed. + %1 names a file. + %1 è stato rimosso. + + + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 è stato rinominato in %2 e %n altro file sono stati rinominati. + %1 è stato rinominato in %2 e %n altri file sono stati rinominati. + - - Could not read system exclude file - Impossibile leggere il file di esclusione di sistema + %1 has been renamed to %2. + %1 and %2 name files. + %1 è stato rinominato in %2. - - A new folder larger than %1 MB has been added: %2. - - Una nuova cartella più grande di %1 MB è stata aggiunta: %2. - + %1 has been updated. + %1 names a file. + %1 è stato aggiornato. - - A folder from an external storage has been added. - - Una nuova cartella da un'archiviazione esterna è stata aggiunta. - - + %1 is currently locked. + %1 è attualmente bloccato. - - Please go in the settings to select it if you wish to download it. - Vai nelle impostazioni e selezionala se vuoi scaricarla. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Una cartella ha superato il limite di dimensione impostato per la cartella di %1MB: %2. %3 - - Keep syncing - Continua a sincronizzare - - - - Stop syncing - Ferma la sincronizzazione - - - - The folder %1 has surpassed the set folder size limit of %2MB. - La cartella %1 ha superato il limite di dimensione impostato di %2MB. - - - - Would you like to stop syncing this folder? - Vuoi interrompere la sincronizzazione di questa cartella? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Un gran numero di file nel server è stato eliminato. +Conferma se vuoi procedere con queste eliminazioni. +In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - La cartella %1 è stata creata, ma è stata esclusa dalla sincronizzazione in precedenza. I dati al suo interno non saranno sincronizzati. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Un gran numero di file nella cartella locale '%1' sono stati eliminati. +Si prega di confermare se si desidera procedere con queste eliminazioni. +In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Il file %1 è stato creato, ma è stato escluso dalla sincronizzazione in precedenza. Non sarà sincronizzato. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2334,210 +1894,206 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - Download del file virtuale fallito con codice "%1", stato "%2" e messaggio di errore "%3" + Could not read system exclude file + Impossibile leggere il file di esclusione di sistema - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Un gran numero di file nel server è stato eliminato. -Conferma se vuoi procedere con queste eliminazioni. -In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. + Keep syncing + Continua a sincronizzare - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - Un gran numero di file nella cartella locale '%1' sono stati eliminati. -Si prega di confermare se si desidera procedere con queste eliminazioni. -In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. + Please choose a different location. %1 isn't a readable folder. + Si prega di scegliere una posizione diversa.. %1 non è una cartella leggibile. - - Remove all files? - Rimuovere tutti i file? + Please choose a different location. %1 isn't a valid folder. + Si prega di scegliere una posizione diversa. %1 non è una cartella valida. + + + Please choose a different location. The folder %1 doesn't exist. + Si prega di scegliere una posizione diversa. La cartella %1 non esiste. + + + Please go in the settings to select it if you wish to download it. + Vai nelle impostazioni e selezionala se vuoi scaricarla. - Proceed with Deletion Procedi con la cancellazione - - Restore Files to Server - Ripristina i file sul server + Remove all files? + Rimuovere tutti i file? - Restore Files from Server Ripristina i file dal server - - - OCC::FolderCreationDialog - - - Create new folder - Crea una nuova cartella - - - - Enter folder name - Digita il nome della cartella + + Restore Files to Server + Ripristina i file sul server - - Folder already exists - La cartella esiste già + Stop syncing + Ferma la sincronizzazione - - Error - Error + Sync Activity + Sincronizza attività - - Could not create a folder! Check your write permissions. - Impossibile creare una cartella! Controlla i tuoi permessi di scrittura. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Il file %1 è stato creato, ma è stato escluso dalla sincronizzazione in precedenza. Non sarà sincronizzato. - - - OCC::FolderMan - - Could not reset folder state - Impossibile ripristinare lo stato della cartella + The folder %1 has surpassed the set folder size limit of %2MB. + La cartella %1 ha superato il limite di dimensione impostato di %2MB. - - (backup) - (copia di sicurezza) + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + La cartella %1 è stata creata, ma è stata esclusa dalla sincronizzazione in precedenza. I dati al suo interno non saranno sincronizzati. - - (backup %1) - (copia di sicurezza %1) + Virtual file download failed with code "%1", status "%2" and error message "%3" + Download del file virtuale fallito con codice "%1", stato "%2" e messaggio di errore "%3" - - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - È stato trovato un vecchio registro di sincronizzazione "%1", ma non può essere rimosso. Assicurati che nessuna applicazione lo stia utilizzando. + Would you like to stop syncing this folder? + Vuoi interrompere la sincronizzazione di questa cartella? + + + OCC::FolderCreationDialog - - Undefined state. - Stato non definito. + %1 Create new folder + - - Waiting to start syncing. - In attesa di iniziare la sincronizzazione. + Could not create a folder! Check your write permissions. + Impossibile creare una cartella! Controlla i tuoi permessi di scrittura. - - - Preparing for sync. - Preparazione della sincronizzazione. + + Create new folder + Crea una nuova cartella - - Syncing %1 of %2 (A few seconds left) - Sincronizzazione %1 di %2(Mancano pochi secondi) + Enter folder name + Digita il nome della cartella - - Syncing %1 of %2 (%3 left) - Sincronizzazione%1 di %2 (%3 rimasto) + Error + Error - - Syncing %1 of %2 - Sincronizzazione %1 di %2 + Folder already exists + La cartella esiste già + + + OCC::FolderMan - - Syncing %1 (A few seconds left) - Sincronizzazione %1 (Mancano pochi secondi) + %1 (Sync is paused) + %1 (La sincronizzazione è sospesa) - - - Syncing %1 (%2 left) - Sincronizzazione %1 (%2 rimasto) + + (backup %1) + - - Syncing %1 - Sincronizzazione %1 + (backup) + - - Sync is running. - La sincronizzazione è in corso. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + È stato trovato un vecchio registro di sincronizzazione "%1", ma non può essere rimosso. Assicurati che nessuna applicazione lo stia utilizzando. - - Sync finished with unresolved conflicts. - Sincronizzazione terminata con conflitti non risolti. + Could not reset folder state + Impossibile ripristinare lo stato della cartella - Last sync was successful. L'ultima sincronizzazione è stata completata correttamente. - - Setup error. - Errore di configurazione. - - - - Sync request was cancelled. - Richiesta di sincronizzazione annullata. - - - - Please choose a different location. The selected folder isn't valid. - Seleziona una posizione diversa. La cartella selezionata non è valida. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Si prega di scegliere una posizione diversa. %1 è già utilizzato come cartella di sincronizzazione per %2. - - Please choose a different location. %1 is already being used as a sync folder. Si prega di scegliere una posizione diversa. %1 è già utilizzata come cartella di sincronizzazione. - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Si prega di scegliere una posizione diversa. %1è già contenuto in una cartella utilizzata come cartella di sincronizzazione. + + Please choose a different location. The path %1 doesn't exist. Si prega di scegliere una posizione diversa. Il percorso %1 non esiste. - Please choose a different location. The path %1 isn't a folder. Si prega di scegliere una posizione diversa. Il percorso %1 non è una cartella. - - + Please choose a different location. The selected folder isn't valid. + Seleziona una posizione diversa. La cartella selezionata non è valida. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Seleziona una posizione diversa. Non hai abbastanza permessi per scrivere %1. - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Si prega di scegliere una posizione diversa. %1è già contenuto in una cartella utilizzata come cartella di sincronizzazione. + Preparing for sync. + Preparazione della sincronizzazione. - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Si prega di scegliere una posizione diversa. %1 è già utilizzato come cartella di sincronizzazione per %2. + Setup error. + Errore di configurazione. + + + Sync finished with unresolved conflicts. + Sincronizzazione terminata con conflitti non risolti. + + + Sync is paused. + La sincronizzazione è sospesa. + + + Sync is running. + La sincronizzazione è in corso. + + + Sync request was cancelled. + Richiesta di sincronizzazione annullata. + + + Syncing %1 + Sincronizzazione %1 + + + Syncing %1 (%2 left) + Sincronizzazione %1 (%2 rimasto) + + + Syncing %1 (A few seconds left) + Sincronizzazione %1 (Mancano pochi secondi) + + + Syncing %1 of %2 + Sincronizzazione %1 di %2 + + + Syncing %1 of %2 (%3 left) + Sincronizzazione%1 di %2 (%3 rimasto) + + + Syncing %1 of %2 (A few seconds left) + Sincronizzazione %1 di %2(Mancano pochi secondi) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2549,207 +2105,161 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Si prega di controllare %1 per i file .sync_*.db obsoleti e inutilizzati e rimuoverli. - - Sync is paused. - La sincronizzazione è sospesa. - - - - Please open the app settings to grant access to the sync folders. - Apri le impostazioni dell'app per concedere l'accesso alle cartelle di sincronizzazione. + Undefined state. + Stato non definito. - - %1 (Sync is paused) - %1 (La sincronizzazione è sospesa) + Waiting to start syncing. + In attesa di iniziare la sincronizzazione. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Aggiungi connessioni di sincronizzazione cartelle - - - - - - Grant access - Concessione dell'accesso + Add Folder Sync + - File File - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Devi essere connesso per aggiungere una cartella + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Fai clic su questo pulsante per aggiungere una cartella da sincronizzare. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 di %4) - - Could not decrypt! - Impossibile decifrare! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Errore durante il caricamento dell'elenco delle cartelle dal server. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 di %2, file %3 di %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - A seguito di recenti miglioramenti alla sicurezza, il client non ha più accesso alla cartella. È necessaria la tua autorizzazione una tantum per ripristinare l'accesso. Seleziona la cartella principale di sincronizzazione. + %5 left, %1 of %2, file %3 of %4 + %5 rimanenti, %1 di %2, file %3 di %4 - - Virtual file support is enabled. - Il supporto dei file virtuali è abilitato. + , + , - - Signed out - Disconnesso + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Pochi secondi rimasti, %1 di %2, file %3 di %4 - - Synchronizing virtual files in local folder - Sincronizzazione dei file virtuali nella cartella locale + About to start syncing + Pronto per iniziare la sincronizzazione - - Synchronizing files in local folder - Sincronizzazione dei file nella cartella locale + Checking for changes in local "%1" + Controllo delle modifiche in "%1" locale - Checking for changes in remote "%1" Controllo delle modifiche in "%1" remoto - - Checking for changes in local "%1" - Controllo delle modifiche in "%1" locale - - - - Syncing local and remote changes - Sincronizzazione delle modifiche locali e remote + Click this button to add a folder to synchronize. + Fai clic su questo pulsante per aggiungere una cartella da sincronizzare. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + Impossibile decifrare! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s - - File %1 of %2 - File %1 di %2 - - - - There are unresolved conflicts. Click for details. - Ci sono conflitti irrisolti. Fai clic per ulteriori dettagli. - - - - - , - , + Error while loading the list of folders from the server. + Errore durante il caricamento dell'elenco delle cartelle dal server. - Fetching folder list from server … Recupero dell'elenco delle cartelle dal server... - - ↓ %1/s - ↓ %1/s + File %1 of %2 + File %1 di %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Upload %1/s + Preparing to sync … + Preparazione della sincronizzazione… + + + Signed out + Disconnesso - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Sincronizzazione dei file nella cartella locale - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 di %4) + Synchronizing virtual files in local folder + Sincronizzazione dei file virtuali nella cartella locale - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Sincronizzazione delle modifiche locali e remote - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Pochi secondi rimasti, %1 di %2, file %3 di %4 + There are unresolved conflicts. Click for details. + Ci sono conflitti irrisolti. Fai clic per ulteriori dettagli. - - %5 left, %1 of %2, file %3 of %4 - %5 rimanenti, %1 di %2, file %3 di %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Upload %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 di %2, file %3 di %4 + Virtual file support is enabled. + Il supporto dei file virtuali è abilitato. - Waiting for %n other folder(s) … - In attesa di %n altra cartella …In attesa di %n altre cartelle …In attesa di %n altre cartelle … + + In attesa di %n altra cartella … + In attesa di %n altre cartelle … + - - About to start syncing - Pronto per iniziare la sincronizzazione + You need to be connected to add a folder + Devi essere connesso per aggiungere una cartella - - Preparing to sync … - Preparazione della sincronizzazione… + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. L'osservatore non ha ricevuto una notifica di prova. @@ -2757,7 +2267,6 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Questo problema si verifica di solito quando i controlli di inotify sono esauriti. Leggi le FAQ per i dettagli. @@ -2765,12 +2274,10 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizard - Add Folder Sync Connection Aggiungi connessioni di sincronizzazione cartelle - Add Sync Connection Aggiungi connessione di sincronizzazione @@ -2778,362 +2285,312 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Fai clic per selezionare una cartella locale da sincronizzare. - Enter the path to the local folder. Digita il percorso della cartella locale. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Seleziona la cartella di origine - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Crea cartella remota + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Digita il nome della nuova cartella da creare sotto a "%1": + Authentication failed accessing %1 + Autenticazione non riuscita durante l'accesso a %1 - - Folder was successfully created on %1. - La cartella è stata creata correttamente su %1. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Autenticazione non riuscita durante l'accesso a %1 + Choose this to sync the entire account + Selezionala per sincronizzare l'intero account + + + Create Remote Folder + Crea cartella remota + + + Create folder + Crea cartella + + + Enter the name of the new folder to be created below "%1": + Digita il nome della nuova cartella da creare sotto a "%1": - Failed to create the folder on %1. Please check manually. Non è stato possibile creare la cartella su %1. Controlla manualmente. - Failed to list a folder. Error: %1 Impossibile elencare una cartella. Errore: %1 - - Choose this to sync the entire account - Selezionala per sincronizzare l'intero account + Folder was successfully created on %1. + La cartella è stata creata correttamente su %1. - - Please choose a different location. %1 is already being synced to %2. Si prega di scegliere una posizione diversa. %1 è già sincronizzato su %2. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Aggiorna + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. Stai già sincronizzando la sottocartella %1 in %2. - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Usa file virtuali invece di scaricare immediatamente il contenuto %1 - - - - (experimental) (sperimentale) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + + + + Use virtual files instead of downloading content immediately %1 + Usa file virtuali invece di scaricare immediatamente il contenuto %1 - Virtual files are not supported at the selected location I file virtuali non sono supportati nella posizione selezionata - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. + + - OCC::GETFileJob + OCC::GeneralSettings - - No E-Tag received from server, check Proxy/Gateway - Nessun e-tag ricevuto dal server, controlla il proxy/gateway + &Automatically check for updates + Verific&a automaticamente la presenza di aggiornamenti. - - We received a different E-Tag for resuming. Retrying next time. - Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi. + &Launch on System Startup + Esegui a&ll'avvio del sistema - - We received an unexpected download Content-Length. - Abbiamo ricevuto un Content-Length inatteso dello scaricamento. - - - - Server returned wrong content-range - Il server ha restituito un content-range errato - - - - Connection Timeout - Connessione scaduta - - - - OCC::GeneralSettings - - - Show Call Notifications - Mostra notifiche di chiamata - - - - For System Tray - Per il vassoio di sistema + &Restart && Update + &Riavvia e aggiorna - - Show Chat Notifications - Mostra notifiche chat + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - beta: contiene versioni con nuove funzionalità che potrebbero non essere testate a fondo +- giornaliero: contiene versioni create quotidianamente solo per test e sviluppo + +Non è possibile effettuare il downgrade delle versioni immediatamente: passare da beta a stabile significa attendere la nuova versione stabile. - - Show Server &Notifications - Mostra &notifiche del server + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - enterprise: contiene versioni stabili per i clienti. + +Il downgrade delle versioni non è possibile immediatamente: passare da stabile a enterprise significa attendere la nuova versione enterprise. - Advanced Avanzate - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB - - - Ask for confirmation before synchronizing external storages Chiedi conferma prima di sincronizzare storage esterni - - &Launch on System Startup - Esegui a&ll'avvio del sistema - - - - General Settings - Impostazioni generali - - - - General settings - Impostazioni generali + Ask for confirmation before synchronizing new folders larger than + Chiedi conferma prima di sincronizzare cartelle più grandi di - - Use &Monochrome Icons - Usa icone &monocromatiche + Automatically disable synchronisation of folders that overcome limit + Disabilita automaticamente la sincronizzazione delle cartelle che superano il limite - - Show &Quota Warning Notifications - Mostra notifiche di avviso &quota + Cancel + Annulla - - Ask for confirmation before synchronizing new folders larger than - Chiedi conferma prima di sincronizzare cartelle più grandi di + Change update channel + Cambia il canale di aggiornamento - - Notify when synchronised folders grow larger than specified limit - Notifica quando le cartelle sincronizzate crescono e superano il limite specificato + Changing update channel? + Vuoi cambiare canale di aggiornamento? - - Automatically disable synchronisation of folders that overcome limit - Disabilita automaticamente la sincronizzazione delle cartelle che superano il limite + Check Now + Controlla ora - - Move removed files to trash - Sposta nel cestino i file eliminati + Create Debug Archive + Crea archivio di debug - - Show sync folders in &Explorer's navigation pane - Mostra le cartelle di sincronizzazione nel pannello di navigazione di &Explorer + Data Protection + - - Server poll interval - Intervallo di polling del server + Debug Archive Created + Archivio di debug creato - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - secondi (se il <a href="https://github.com/nextcloud/notify_push">Push del Client</a> non è disponibile) + Desktop client x.x.x + Client desktop x.x.x - Edit &Ignored Files Mod&ifica file ignorati - - - Create Debug Archive - Crea archivio di debug + For System Tray + Per il vassoio di sistema - - Info - Informazioni + General Settings + Impostazioni generali - - Desktop client x.x.x - Client desktop x.x.x + Legal Notice + Note legali - - Update channel - Canale di aggiornamento + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - Verific&a automaticamente la presenza di aggiornamenti. + More Information + + + + Move removed files to trash + Sposta nel cestino i file eliminati - - Check Now - Controlla ora + Necessary data + - - Usage Documentation - Manuale d'uso + Notify when synchronised folders grow larger than specified limit + Notifica quando le cartelle sincronizzate crescono e superano il limite specificato - - Legal Notice - Note legali + Open Source Software + - - Restore &Default - Ripristino &Predefinito + Privacy Policy + - - &Restart && Update - &Riavvia e aggiorna + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redigi le informazioni considerate sensibili prima di condividerle! Archivio di debug creato al %1 - - Server notifications that require attention. - Notifiche del server che richiedono attenzione. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - Mostra la finestra di dialogo di notifica della chat. + Restore &Default + Ripristino &Predefinito - - Show call notification dialogs. - Mostra finestre di notifica chiamata. + Restore to &%1 + Ripristinare a &%1 - - Show notification when quota usage exceeds 80%. - Mostra una notifica quando l'utilizzo della quota supera l'80%. + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - Non puoi disabilitare l'avvio automatico poiché è abilitato l'avvio automatico a livello di sistema. + Server notifications that require attention. + Notifiche del server che richiedono attenzione. - - Restore to &%1 - Ripristinare a &%1 + Server poll interval + Intervallo di polling del server - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - Connesso a un sistema aziendale. Il canale di aggiornamento (%1) non può essere modificato. + Show &Quota Warning Notifications + Mostra notifiche di avviso &quota - - stable - stabile + Show Call Notifications + Mostra notifiche di chiamata - - beta - beta + Show Chat Notifications + Mostra notifiche chat - - daily - giornaliero + Show Server &Notifications + Mostra &notifiche del server - - enterprise - enterprise + Show call notification dialogs. + Mostra finestre di notifica chiamata. - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - beta: contiene versioni con nuove funzionalità che potrebbero non essere testate a fondo -- giornaliero: contiene versioni create quotidianamente solo per test e sviluppo - -Non è possibile effettuare il downgrade delle versioni immediatamente: passare da beta a stabile significa attendere la nuova versione stabile. + Show chat notification dialogs. + Mostra la finestra di dialogo di notifica della chat. - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - enterprise: contiene versioni stabili per i clienti. - -Il downgrade delle versioni non è possibile immediatamente: passare da stabile a enterprise significa attendere la nuova versione enterprise. + Show notification when quota usage exceeds 80%. + Mostra una notifica quando l'utilizzo della quota supera l'80%. - - Changing update channel? - Vuoi cambiare canale di aggiornamento? + Show sync folders in &Explorer's navigation pane + Mostra le cartelle di sincronizzazione nel pannello di navigazione di &Explorer - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable @@ -3143,70 +2600,80 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile - - Change update channel - Cambia il canale di aggiornamento + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Annulla + Update channel + Canale di aggiornamento + + + Updates + + + + Usage Documentation + Manuale d'uso - - Login Item Requires Approval - L'elemento di accesso richiede l'approvazione + Use &Monochrome Icons + Usa icone &monocromatiche - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - L'elemento di login è stato registrato ma necessita della tua approvazione per diventare attivo. Apri Impostazioni di sistema → Generali → Elementi di login e abilita %1 là. + You cannot disable autostart because system-wide autostart is enabled. + Non puoi disabilitare l'avvio automatico poiché è abilitato l'avvio automatico a livello di sistema. - Zip Archives Archivi zip - - Failed to Access File - Impossibile accedere al file + beta + beta + + + daily + giornaliero - - Could not access the selected location. Please try again or choose a different location. - Impossibile accedere alla posizione selezionata. Riprova o scegli una posizione diversa. + enterprise + enterprise - - Debug Archive Created - Archivio di debug creato + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + secondi (se il <a href="https://github.com/nextcloud/notify_push">Push del Client</a> non è disponibile) - - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redigi le informazioni considerate sensibili prima di condividerle! Archivio di debug creato al %1 + stable + stabile - + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Password per condivisione richiesta + Connection Timeout + Connessione scaduta + + + No E-Tag received from server, check Proxy/Gateway + Nessun e-tag ricevuto dal server, controlla il proxy/gateway - - Please enter a password for your link share: - Digita una password per il tuo collegamento di condivisione: + Server returned wrong content-range + Il server ha restituito un content-range errato - - Sharing error - Errore di condivisione + We received a different E-Tag for resuming. Retrying next time. + Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi. + + + We received an unexpected download Content-Length. + Abbiamo ricevuto un Content-Length inatteso dello scaricamento. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3214,54 +2681,57 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile %1 - - - OCC::HttpCredentialsGui - - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Digita la password di %1:<br><br>Utente: '%2<br>Account: %3<br> + + Password for share required + Password per condivisione richiesta - - Reading from keychain failed with error: "%1" - Lettura dal portachiavi non riuscita con errore: "%1" + Please enter a password for your link share: + Digita una password per il tuo collegamento di condivisione: - - Enter Password - Digita password + Sharing error + Errore di condivisione + + + OCC::HttpCredentialsGui - <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Fai clic qui</a> per richiedere una password dell'applicazione dall'interfaccia web. - + + Enter Password + Digita password + + + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Digita la password di %1:<br><br>Utente: '%2<br>Account: %3<br> + + + Reading from keychain failed with error: "%1" + Lettura dal portachiavi non riuscita con errore: "%1" + + OCC::IgnoreListEditor - - Ignored Files Editor - Editor dei file ignorati + Files Ignored by Patterns + File ignorati per modelli - Global Ignore Settings Impostazioni globali di ignora - - Sync hidden files - Sincronizzati i file nascosti + Ignored Files Editor + Editor dei file ignorati - - Files Ignored by Patterns - File ignorati per modelli + Sync hidden files + Sincronizzati i file nascosti - This entry is provided by the system at "%1" and cannot be modified in this view. Questa voce è fornita dal sistema in "%1" e non può essere modificata in questa vista. @@ -3269,32 +2739,26 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile OCC::IgnoreListTableWidget - - Pattern - Modello + Add + Aggiungi - + Add a new ignore pattern: + Aggiungi un nuovo modello di esclusione: + + Allow Deletion Consenti eliminazione - - Add - Aggiungi - - - - Remove - Rimuovi + Cannot write changes to "%1". + Impossibile scrivere le modifiche su "%1". - - Remove all - Rimuovi tutto + Could not open file + Impossibile aprire il file - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3303,158 +2767,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Gli elementi per i quali è consentita l'eliminazione saranno eliminati se impediscono la rimozione di una cartella. Utile per i metadati. - - Could not open file - Impossibile aprire il file + Ignore Pattern + - - Cannot write changes to "%1". - Impossibile scrivere le modifiche su "%1". + Pattern + Modello - - Add Ignore Pattern - Aggiungi modello di esclusione + Remove + Rimuovi - - Add a new ignore pattern: - Aggiungi un nuovo modello di esclusione: + Remove all + Rimuovi tutto - + OCC::InvalidFilenameDialog - - Invalid filename - Nome del file non valido + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Impossibile rinominare il file perché ne esiste già uno con lo stesso nome sul server. Scegli un altro nome. - - The file could not be synced because it contains characters which are not allowed on this system. - Il file non è stato sincronizzato perché contiene caratteri non consentiti in questo sistema. + Checking rename permissions … + Controllo permessi per rinominare … - - Error - Errore + Could not rename file. Please make sure you are connected to the server. + Impossibile rinominare il file. Assicurati di essere connesso al server. - - Please enter a new name for the file: - Inserisci un nome nuovo per il file: + Could not rename local file. %1 + Impossibile rimuovere il file locale. %1 - - - New filename - Nuovo nome del file + + Error + Errore - - Rename file - Rinomina file + Failed to fetch permissions with error %1 + Recupero dei permessi fallito con errore %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - Il file "%1" non è stato sincronizzato perché il nome contiene caratteri non consentiti in questo sistema. + Filename contains illegal characters: %1 + Il nome del file contiene caratteri non consentiti: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - I seguenti caratteri non sono consentiti sul sistema: \ / : ? * " < > | spazi iniziali/finali + Filename contains leading and trailing spaces. + Il nome del file contiene spazi all'inizio e alla fine. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - Il file "%1" non è stato possibile sincronizzare perché il nome contiene caratteri non consentiti sul server. + Filename contains leading spaces. + Il nome del file contiene spazi all'inizio. - - The following characters are not allowed: %1 - I seguenti caratteri non sono consentiti: %1 + Filename contains trailing spaces. + Il nome del file contiene spazi alla fine. - - The following basenames are not allowed: %1 - I seguenti nomi base non sono consentiti: %1 + Invalid filename + Nome del file non valido - - The following filenames are not allowed: %1 - I seguenti nomi di file non sono consentiti: %1 + New filename + Nuovo nome del file - - The following file extensions are not allowed: %1 - Le seguenti estensioni di file non sono consentite: %1 + Please enter a new name for the file: + Inserisci un nome nuovo per il file: - - Checking rename permissions … - Controllo permessi per rinominare … + Rename file + Rinomina file - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + Il file "%1" non è stato possibile sincronizzare perché il nome contiene caratteri non consentiti sul server. - - Failed to fetch permissions with error %1 - Recupero dei permessi fallito con errore %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + Il file "%1" non è stato sincronizzato perché il nome contiene caratteri non consentiti in questo sistema. - - Filename contains leading and trailing spaces. - Il nome del file contiene spazi all'inizio e alla fine. + The file could not be synced because it contains characters which are not allowed on this system. + Il file non è stato sincronizzato perché contiene caratteri non consentiti in questo sistema. - - Filename contains leading spaces. - Il nome del file contiene spazi all'inizio. + The following basenames are not allowed: %1 + I seguenti nomi base non sono consentiti: %1 - - Filename contains trailing spaces. - Il nome del file contiene spazi alla fine. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + I seguenti caratteri non sono consentiti sul sistema: \ / : ? * " < > | spazi iniziali/finali - - Use invalid name - Usa nome non valido + The following characters are not allowed: %1 + I seguenti caratteri non sono consentiti: %1 - - Filename contains illegal characters: %1 - Il nome del file contiene caratteri non consentiti: %1 + The following file extensions are not allowed: %1 + Le seguenti estensioni di file non sono consentite: %1 - - Could not rename file. Please make sure you are connected to the server. - Impossibile rinominare il file. Assicurati di essere connesso al server. + The following filenames are not allowed: %1 + I seguenti nomi di file non sono consentiti: %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Impossibile rinominare il file perché ne esiste già uno con lo stesso nome sul server. Scegli un altro nome. + Use invalid name + Usa nome non valido - - Could not rename local file. %1 - Impossibile rimuovere il file locale. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. - + OCC::LegacyAccountSelectionDialog - Legacy import Importazione legacy - Select the accounts to import from the legacy configuration: Selezionare gli account da importare dalla configurazione legacy: @@ -3462,451 +2896,430 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se OCC::LegalNotice - - - Legal notice - Avviso legale - - - - Close - Chiudi - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Sotto licenza GNU General Public License (GPL) versione 2.0 o qualsiasi versione successiva.</p> - + + Close + Chiudi + + + Legal notice + Avviso legale + + OCC::LogBrowser - + Enable logging to temporary folder + Abilita la registrazione in una cartella temporanea + + Log Output Risultato log - + Open folder + Apri cartella + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 Il client può scrivere i log di debug in una cartella temporanea. Questi registri sono molto utili per diagnosticare i problemi. Poiché i file di registro possono diventare grandi, il client ne avvierà uno nuovo per ogni sincronizzazione eseguita e comprimerà quelli più vecchi. Eliminerà anche i file di registro dopo un paio d'ore per evitare di consumare troppo spazio su disco. Se abilitato, i log saranno scritti in %1 - - Enable logging to temporary folder - Abilita la registrazione in una cartella temporanea - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Questa impostazione persiste in caso di riavvio del client. Nota che l'utilizzo di qualsiasi opzione della riga di comando di registrazione sovrascriverà questa impostazione. - - - Open folder - Apri cartella - - + OCC::Logger - - - Error - Errore - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Il file "%1"<br/>non può essere aperto in scrittura.<br/><br/>Il risultato del log <b>non</b> può essere salvato!</nobr> - + + Error + Errore + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Impossibile avviare la modifica in locale. - - - An error occurred during setup. Si è verificato un errore durante l'installazione. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossibile trovare un file per la modifica locale. Assicurati che il suo percorso sia valido e che sia sincronizzato localmente. - Could not get file ID. Impossibile ottenere l'ID del file. - Could not get file identifier. Impossibile ottenere l'identificativo del file. - + Could not start editing locally. + Impossibile avviare la modifica in locale. + + The file identifier is empty. L'identificatore del file è vuoto. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Nuova versione disponibile + Download Bandwidth + Ampiezza di banda in entrata - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Una nuova versione del client %1 è disponibile.</p><p><b>%2</b> è disponibile per lo scaricamento. La versione installata è %3.</p> + HTTP(S) proxy + Proxy HTTP(S) - - Update Failed - Aggiornamento non riuscito + Host + Host - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Una nuova versione del client %1 è disponibile, ma il processo di aggiornamento non è riuscito.</p><p><b>%2</b> è stato scaricato. La versione installata è la %3. Se confermi di riavviare ed aggiornare, il computer potrebbe riavviarsi per completare l'installazione.</p> + Hostname of proxy server + Nome host del server proxy - - Ask again later - Chiedi ancora più tardi + KBytes/s + KByte/s - - Restart and update - Riavvia e aggiorna + Limit automatically + Limita automaticamente - - Update manually - Aggiorna manualmente + Limit to + Limita a - - Skip this time - Salta questa volta + Limit to 3/4 of estimated bandwidth + Limita a 3/4 della banda stimata - - Get update - Ottieni l'aggiornamento + Manually specify proxy + Impostazione manuale del proxy - - - OCC::NetworkSettings - - Proxy Settings - Impostazioni proxy + No limit + Nessun limite - - Use system proxy - Usa proxy di sistema - - - - Host - Host + No proxy + Nessun proxy - - Proxy server requires authentication - Il server proxy richiede l'autenticazione + Note: proxy settings have no effects for accounts on localhost + Nota: le impostazioni proxy non hanno effetto per gli account su localhost - - Download Bandwidth - Ampiezza di banda in entrata + Password for proxy server + Password del server proxy - - - Limit to - Limita a + Proxy Settings + Impostazioni proxy - - - Limit to 3/4 of estimated bandwidth - Limita a 3/4 della banda stimata + Proxy server requires authentication + Il server proxy richiede l'autenticazione - - - Limit automatically - Limita automaticamente + SOCKS5 proxy + Proxy SOCKS5 - - - - KBytes/s - KByte/s + + Upload Bandwidth + Ampiezza di banda in uscita - - Note: proxy settings have no effects for accounts on localhost - Nota: le impostazioni proxy non hanno effetto per gli account su localhost + Use system proxy + Usa proxy di sistema - - Manually specify proxy - Impostazione manuale del proxy + Username for proxy server + Nome utente del server proxy + + + OCC::NSISUpdater - - No proxy - Nessun proxy + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Una nuova versione del client %1 è disponibile, ma il processo di aggiornamento non è riuscito.</p><p><b>%2</b> è stato scaricato. La versione installata è la %3. Se confermi di riavviare ed aggiornare, il computer potrebbe riavviarsi per completare l'installazione.</p> - - - No limit - Nessun limite + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Una nuova versione del client %1 è disponibile.</p><p><b>%2</b> è disponibile per lo scaricamento. La versione installata è %3.</p> - - Upload Bandwidth - Ampiezza di banda in uscita + Ask again later + Chiedi ancora più tardi - - Hostname of proxy server - Nome host del server proxy + Get update + Ottieni l'aggiornamento + + + New Version Available + Nuova versione disponibile - - Username for proxy server - Nome utente del server proxy + Restart and update + Riavvia e aggiorna - - Password for proxy server - Password del server proxy + Skip this time + Salta questa volta - - HTTP(S) proxy - Proxy HTTP(S) + Update Failed + Aggiornamento non riuscito - - SOCKS5 proxy - Proxy SOCKS5 + Update manually + Aggiorna manualmente - + OCC::OCUpdater - - Could not check for new updates. - Impossibile verificare la presenza di nuovi aggiornamenti. + %1 available. Restart application to start the update. + %1 disponibile. Riavvia l'applicazione per iniziare l'aggiornamento. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Un nuovo aggiornamento di %1 sta per essere installato. L'aggiornamento potrebbe richiedere privilegi aggiuntivi durante l'avanzamento. Il computer potrebbe riavviarsi per completare l'installazione. - Checking update server … Controllo server degli aggiornamenti... - - New %1 update ready - Nuovo aggiornamento di %1 pronto + Could not check for new updates. + Impossibile verificare la presenza di nuovi aggiornamenti. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Un nuovo aggiornamento di %1 sta per essere installato. L'aggiornamento potrebbe richiedere privilegi aggiuntivi durante l'avanzamento. Il computer potrebbe riavviarsi per completare l'installazione. + Could not download update. Please open %1 to download the update manually. + Impossibile scaricare l'aggiornamento. Apri %1 per scaricare l'aggiornamento manualmente. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Impossibile scaricare l'aggiornamento. Apri <a href='%1'>%1</a> per scaricare l'aggiornamento a mano. - Downloading %1 … Scaricamento %1 … - - %1 available. Restart application to start the update. - %1 disponibile. Riavvia l'applicazione per iniziare l'aggiornamento. + New %1 is available. Please open %2 to download the update. + Il nuovo %1 è disponibile. Apri %2 per scaricare l'aggiornamento. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Impossibile scaricare l'aggiornamento. Apri <a href='%1'>%1</a> per scaricare l'aggiornamento a mano. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + Un nuovo %1 è disponibile. Apri <a href='%2'>%2</a> per scaricare l'aggiornamento. - - Could not download update. Please open %1 to download the update manually. - Impossibile scaricare l'aggiornamento. Apri %1 per scaricare l'aggiornamento manualmente. + New %1 update ready + Nuovo aggiornamento di %1 pronto - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - Un nuovo %1 è disponibile. Apri <a href='%2'>%2</a> per scaricare l'aggiornamento. + No updates available. Your installation is the latest version. + Nessun aggiornamento disponibile. La tua installazione è alla versione più recente. - - New %1 is available. Please open %2 to download the update. - Il nuovo %1 è disponibile. Apri %2 per scaricare l'aggiornamento. + Update Check + Controllo aggiornamenti - - + Update status is unknown: Did not check for new updates. Lo stato di aggiornamento è sconosciuto. Non è possibile verificare la presenza di nuovi aggiornamenti. - You are using the %1 update channel. Your installation is the latest version. Stai utilizzando il canale di aggiornamento %1. La tua installazione è alla versione più recente. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - Nessun aggiornamento disponibile. La tua installazione è alla versione più recente. + %1 folder "%2" is synced to local folder "%3" + La cartella "%2" di %1 è sincronizzata con la cartella locale "%3" - - Update Check - Controllo aggiornamenti + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + Spazio libero di %1 - - - OCC::OwncloudAdvancedSetupPage - - Connect - Connetti + (%1) + (%1) - - (experimental) (sperimentale) - - - Use &virtual files instead of downloading content immediately %1 - Usa i file &virtuali invece di scaricare immediatamente il contenuto %1 + Connect + Connetti - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. + In Finder's "Locations" sidebar section + Nella sezione "Posizioni" della barra laterale del Finder - - - %1 folder "%2" is synced to local folder "%3" - La cartella "%2" di %1 è sincronizzata con la cartella locale "%3" + + Local Sync Folder + Cartella locale di sincronizzazione - Sync the folder "%1" Sincronizza la cartella "%1" - - Warning: The local folder is not empty. Pick a resolution! - Attenzione: la cartella locale non è vuota. Scegli una soluzione! + There isn't enough free space in the local folder! + Non c'è spazio libero sufficiente nella cartella locale! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - Spazio libero di %1 + Use &virtual files instead of downloading content immediately %1 + Usa i file &virtuali invece di scaricare immediatamente il contenuto %1 - Virtual files are not supported at the selected location I file virtuali non sono supportati nella posizione selezionata - - Local Sync Folder - Cartella locale di sincronizzazione + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Attenzione: la cartella locale non è vuota. Scegli una soluzione! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - Non c'è spazio libero sufficiente nella cartella locale! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Connessione all'indirizzo sicuro del server <em>%1</em> non riuscita. Come desideri procedere?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Connessione all'indirizzo sicuro del server specificato non riuscita. Come desideri procedere?</p></body></html> - - In Finder's "Locations" sidebar section - Nella sezione "Posizioni" della barra laterale del Finder + Configure client-side TLS certificate + Configura certificato TLS lato client - - - OCC::OwncloudConnectionMethodDialog - Connection failed Connessione non riuscita - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Connessione all'indirizzo sicuro del server specificato non riuscita. Come desideri procedere?</p></body></html> + Retry unencrypted over HTTP (insecure) + Riprova senza cifratura su HTTP (non sicuro) - Select a different URL Seleziona un URL diverso + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Riprova senza cifratura su HTTP (non sicuro) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Configura certificato TLS lato client + Account %1: %2 + Account %1: %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Connessione all'indirizzo sicuro del server <em>%1</em> non riuscita. Come desideri procedere?</p></body></html> + Account synchronization is disabled + La sincronizzazione dell'account è disabilitata - + + Checking for changes in local "%1" + Controllo delle modifiche in "%1" locale + + + Checking for changes in remote "%1" + Controllo delle modifiche in "%1" remoto + + + Disconnected from %1 + Disconnesso dal %1 + + + Disconnected from accounts: + Disconnesso dagli account: + + + Please sign in + Accedi + + + Terms of service + Termini di servizio + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + Il server sull'account %1 esegue una versione non supportata %2. L'utilizzo di questo client con versioni del server non supportate non è stato verificato e è potenzialmente pericoloso. Procedi a tuo rischio. + + + There are no sync folders configured. + Non è stata configurata alcuna cartella per la sincronizzazione. + + + Unsupported Server Version + Versione del server non supportata + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Il tuo account %1 richiede di accettare i termini di servizio del tuo server. Verrai reindirizzato a %2 per confermare di averlo letto e di accettarlo. + + + macOS VFS for %1: A problem was encountered. + macOS VFS per %1: Si è verificato un problema. + + + macOS VFS for %1: Last sync was successful. + macOS VFS per %1: L'ultima sincronizzazione è riuscita. + + + macOS VFS for %1: Sync is running. + macOS VFS per %1: La sincronizzazione è in esecuzione. + + OCC::OwncloudHttpCredsPage - &Email Posta &elettronica - Connect to %1 Connetti a %1 - Enter user credentials Digita le credenziali dell'utente @@ -3914,8 +3327,6 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Impossibile ottenere l'ora di modifica per il file in conflitto %1 @@ -3923,220 +3334,184 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - Il collegamento all'interfaccia web di %1 quando lo apri nel browser. - - - &Next > Ava&nti > - + Could not load certificate. Maybe wrong password? + Impossibile caricare il certificato. Forse la password è errata? + + Server address does not seem to be valid L'indirizzo del server non sembra essere valido - - Could not load certificate. Maybe wrong password? - Impossibile caricare il certificato. Forse la password è errata? + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + Il collegamento all'interfaccia web di %1 quando lo apri nel browser. - + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Account basato sul provider di file %1creato con successo!</b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Cartella locale %1 creata correttamente!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connesso correttamente a %1: %2 versione %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Connessione a %1 su %2:<br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">La creazione della cartella remota non è riuscita probabilmente perché le credenziali fornite non sono corrette.</font><br/>Torna indietro e controlla le credenziali inserite.</p> - - Timeout while trying to connect to %1 at %2. - Tempo scaduto durante il tentativo di connessione a %1 su %2. + A sync connection from %1 to remote directory %2 was set up. + Una connessione di sincronizzazione da %1 alla cartella remota %2 è stata stabilita. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accesso negato dal server. Per verificare di avere i permessi appropriati, <a href="%1">fai clic qui</a> per accedere al servizio con il tuo browser. - - Invalid URL - URL non valido + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Impossibile rimuovere o copiare la cartella poiché la cartella o un file contenuto in essa è aperto in un altro programma. Chiudi la cartella o il file e premi Riprova o annulla la configurazione. - - - Trying to connect to %1 at %2 … - Tentativo di connessione a %1 su %2... + Connection to %1 could not be established. Please check again. + La connessione a %1 non può essere stabilita. Prova ancora. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. + Could not create local folder %1 + Impossibile creare la cartella locale %1 - - There was an invalid response to an authenticated WebDAV request - Ricevuta una risposta non valida a una richiesta WebDAV autenticata + Creating local sync folder %1 … + Creazione della cartella locale di sincronizzazione %1... - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - La cartella di sincronizzazione locale %1 esiste già, impostata per la sincronizzazione.<br/><br/> + Error: %1 + Errore: %1 - - Creating local sync folder %1 … - Creazione della cartella locale di sincronizzazione %1... + Failed to connect to %1 at %2:<br/>%3 + Connessione a %1 su %2:<br/>%3 - - OK - OK + Folder rename failed + Rinomina della cartella non riuscita - - failed. - non riuscita. + Invalid URL + URL non valido - - Could not create local folder %1 - Impossibile creare la cartella locale %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + La cartella di sincronizzazione locale %1 esiste già, impostata per la sincronizzazione.<br/><br/> - No remote folder specified! Nessuna cartella remota specificata! - - Error: %1 - Errore: %1 - - - - creating folder on Nextcloud: %1 - creazione cartella su Nextcloud: %1 + OK + OK - Remote folder %1 created successfully. La cartella remota %1 è stata creata correttamente. - - The remote folder %1 already exists. Connecting it for syncing. - La cartella remota %1 esiste già. Connessione in corso per la sincronizzazione - - - - - The folder creation resulted in HTTP error code %1 - La creazione della cartella ha restituito un codice di errore HTTP %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + Creazione della cartella remota %1 non riuscita con errore <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - La creazione della cartella remota non è riuscita poiché le credenziali fornite sono errate!<br/>Torna indietro e verifica le credenziali.</p> + Successfully connected to %1! + Connesso con successo a %1! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">La creazione della cartella remota non è riuscita probabilmente perché le credenziali fornite non sono corrette.</font><br/>Torna indietro e controlla le credenziali inserite.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Creazione della cartella remota %1 non riuscita con errore <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + La creazione della cartella ha restituito un codice di errore HTTP %1 - - A sync connection from %1 to remote directory %2 was set up. - Una connessione di sincronizzazione da %1 alla cartella remota %2 è stata stabilita. + The remote folder %1 already exists. Connecting it for syncing. + La cartella remota %1 esiste già. Connessione in corso per la sincronizzazione - - Successfully connected to %1! - Connesso con successo a %1! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + La creazione della cartella remota non è riuscita poiché le credenziali fornite sono errate!<br/>Torna indietro e verifica le credenziali.</p> - - Connection to %1 could not be established. Please check again. - La connessione a %1 non può essere stabilita. Prova ancora. + There was an invalid response to an authenticated WebDAV request + Ricevuta una risposta non valida a una richiesta WebDAV autenticata - - Folder rename failed - Rinomina della cartella non riuscita + Timeout while trying to connect to %1 at %2. + Tempo scaduto durante il tentativo di connessione a %1 su %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Impossibile rimuovere o copiare la cartella poiché la cartella o un file contenuto in essa è aperto in un altro programma. Chiudi la cartella o il file e premi Riprova o annulla la configurazione. + Trying to connect to %1 at %2 … + Tentativo di connessione a %1 su %2... - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b>Account basato sul provider di file %1creato con successo!</b></font> + creating folder on Nextcloud: %1 + creazione cartella su Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Cartella locale %1 creata correttamente!</b></font> + failed. + non riuscita. - + OCC::OwncloudWizard - Add %1 account Aggiungi account %1 - - Skip folders configuration - Salta la configurazione delle cartelle + Back + Next button text in new account wizard + Indietro - Cancel Annulla - - Proxy Settings - Proxy Settings button text in new account wizard - Impostazioni proxy + Enable experimental feature? + Vuoi abilitare la funzionalità sperimentale? + + + Enable experimental placeholder mode + Attiva la modalità segnaposto sperimentale - Next Next button text in new account wizard Avanti - - Back - Next button text in new account wizard - Indietro + Proxy Settings + Proxy Settings button text in new account wizard + Impostazioni proxy - - Enable experimental feature? - Vuoi abilitare la funzionalità sperimentale? + Skip folders configuration + Salta la configurazione delle cartelle - + Stay safe + Rimani al sicuro + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4146,26 +3521,14 @@ Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. Quando la modalità "file virtuali" è abilitata, nessun file sarà scaricato inizialmente. Sarà invece creato un piccolo file "%1" per ogni file esistente sul server. I contenuti possono essere scaricati eseguendo questi file o utilizzando il loro menu contestuale. La modalità dei file virtuali si esclude a vicenda con la sincronizzazione selettiva. Le cartelle attualmente non selezionate saranno tradotte in cartelle solo in linea e le impostazioni di sincronizzazione selettiva saranno ripristinate. Il passaggio a questa modalità interromperà qualsiasi sincronizzazione attualmente in esecuzione. Questa è una nuova modalità sperimentale. Se decidi di utilizzarlo, segnala eventuali problemi che si presentano. - - - Enable experimental placeholder mode - Attiva la modalità segnaposto sperimentale - - - - Stay safe - Rimani al sicuro - - + OCC::PasswordInputDialog - Password for share required Richiesta password per condivisione - Please enter a password for your share: Digita una password per la tua condivisione: @@ -4173,7 +3536,6 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PollJob - Invalid JSON reply from the poll URL Risposta JSON non valida dall'URL di richiesta @@ -4181,344 +3543,259 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - I collegamenti simbolici non sono supportati dalla sincronizzazione. + Cannot be renamed or uploaded. + Non può essere rinominato o caricato. - - File is locked by another application. - Il file è bloccato da un'altra applicazione. + Cannot modify encrypted item because the selected certificate is not valid. + Impossibile modificare l'elemento crittografato perché il certificato selezionato non è valido. - - File is listed on the ignore list. - Il file è presente nell'elenco degli ignorati. + Cannot sync due to invalid modification time + Impossibile sincronizzare a causa di un orario di modifica non valido - - File names ending with a period are not supported on this file system. - I nomi del file che terminano con un punto non sono supportati su questo file system. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflitto maiuscole/minuscole: file scaricato dal server e rinominato per evitare il conflitto. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Nomi delle cartelle contenenti il ​​carattere "%1" non sono supportati su questo file system. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Conflitto: versione del server scaricata, copia locale rinominata e non caricata. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - Nomi dei file contenenti il ​​carattere "%1" non sono supportati su questo file system. + Could not upload file, because it is open in "%1". + Impossibile caricare il file, perché è aperto in "%1". - - Folder name contains at least one invalid character - Il nome della cartella contiene almeno un carattere non valido + Error while deleting file record %1 from the database + Errore nella rilevazione del record del file %1 dal database - - File name contains at least one invalid character - Il nome del file contiene almeno un carattere non valido + Error while reading the database + Errore durante la lettura del database - - - Folder name is a reserved name on this file system. - Il nome della cartella è un nome riservato su questo file system. + + File has extension reserved for virtual files. + Il file ha l'estensione riservata ai file virtuali. - - File name is a reserved name on this file system. - Il nome del file è un nome riservato su questo file system. + File is listed on the ignore list. + Il file è presente nell'elenco degli ignorati. - - Filename contains trailing spaces. - Il nome del file contiene spazi alla fine. + File is not accessible on the server. + server error + Il file non è accessibile sul server. - - - - - Cannot be renamed or uploaded. - Non può essere rinominato o caricato. + File name contains at least one invalid character + Il nome del file contiene almeno un carattere non valido - - Filename contains leading spaces. - Il nome del file contiene spazi all'inizio. + File name is a reserved name on this file system. + Il nome del file è un nome riservato su questo file system. - - Filename contains leading and trailing spaces. - Il nome del file contiene spazi all'inizio e alla fine. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + Nomi dei file contenenti il ​​carattere "%1" non sono supportati su questo file system. - - Filename is too long. - Il nome del file è troppo lungo. + File names ending with a period are not supported on this file system. + I nomi del file che terminano con un punto non sono supportati su questo file system. - File/Folder is ignored because it's hidden. Il file/cartella è ignorato poiché è nascosto. - - Stat failed. - Stat non riuscita. + Filename contains leading and trailing spaces. + Il nome del file contiene spazi all'inizio e alla fine. - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Conflitto: versione del server scaricata, copia locale rinominata e non caricata. + Filename contains leading spaces. + Il nome del file contiene spazi all'inizio. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Conflitto maiuscole/minuscole: file scaricato dal server e rinominato per evitare il conflitto. + Filename contains trailing spaces. + Il nome del file contiene spazi alla fine. - - The filename cannot be encoded on your file system. - Il nome del file non può essere codificato sul tuo file system. + Filename is too long. + Il nome del file è troppo lungo. - - The filename is blacklisted on the server. - Il nome del file è nella lista nera sul server. + Folder is not accessible on the server. + server error + La cartella non è accessibile sul server. - - Reason: the entire filename is forbidden. - Motivo: è vietato l'intero nome del file. + Folder name contains at least one invalid character + Il nome della cartella contiene almeno un carattere non valido - - Reason: the filename has a forbidden base name (filename start). - Motivo: il nome del file ha un nome di base vietato (inizio del nome del file). + Folder name is a reserved name on this file system. + Il nome della cartella è un nome riservato su questo file system. - - Reason: the file has a forbidden extension (.%1). - Motivo: il file ha un'estensione vietata(.%1). + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Nomi delle cartelle contenenti il ​​carattere "%1" non sono supportati su questo file system. - - Reason: the filename contains a forbidden character (%1). - Motivo: il nome del file contiene un carattere vietato (%1). - - - - File has extension reserved for virtual files. - Il file ha l'estensione riservata ai file virtuali. + Ignored because of the "choose what to sync" blacklist + Ignorato in base alla lista nera per la scelta di cosa sincronizzare - - Folder is not accessible on the server. - server error - La cartella non è accessibile sul server. + Moved to invalid target, restoring + Spostato su una destinazione non valida, ripristino - - File is not accessible on the server. - server error - Il file non è accessibile sul server. + Not allowed because you don't have permission to add files in that folder + Non ti è consentito perché non hai i permessi per aggiungere file in quella cartella - - Cannot sync due to invalid modification time - Impossibile sincronizzare a causa di un orario di modifica non valido + Not allowed because you don't have permission to add subfolders to that folder + Non consentito perché non sei autorizzato ad aggiungere sottocartelle a quella cartella - - Upload of %1 exceeds %2 of space left in personal files. - Il caricamento di %1supera %2 dello spazio rimasto nei file personali. + Not allowed to remove, restoring + Rimozione non consentita, ripristino - - Upload of %1 exceeds %2 of space left in folder %3. - Il caricamento di %1supera %2 dello spazio rimasto nella cartella %3. + Not allowed to upload this file because it is read-only on the server, restoring + Non ti è permesso caricare questo file perché hai l'accesso in sola lettura sul server, ripristino - - Could not upload file, because it is open in "%1". - Impossibile caricare il file, perché è aperto in "%1". + Reason: the entire filename is forbidden. + Motivo: è vietato l'intero nome del file. - - Error while deleting file record %1 from the database - Errore nella rilevazione del record del file %1 dal database + Reason: the file has a forbidden extension (.%1). + Motivo: il file ha un'estensione vietata(.%1). - - - Moved to invalid target, restoring - Spostato su una destinazione non valida, ripristino + Reason: the filename contains a forbidden character (%1). + Motivo: il nome del file contiene un carattere vietato (%1). - - Cannot modify encrypted item because the selected certificate is not valid. - Impossibile modificare l'elemento crittografato perché il certificato selezionato non è valido. + Reason: the filename has a forbidden base name (filename start). + Motivo: il nome del file ha un nome di base vietato (inizio del nome del file). - - Ignored because of the "choose what to sync" blacklist - Ignorato in base alla lista nera per la scelta di cosa sincronizzare + Stat failed. + Stat non riuscita. - - Not allowed because you don't have permission to add subfolders to that folder - Non consentito perché non sei autorizzato ad aggiungere sottocartelle a quella cartella + Symbolic links are not supported in syncing. + I collegamenti simbolici non sono supportati dalla sincronizzazione. - - Not allowed because you don't have permission to add files in that folder - Non ti è consentito perché non hai i permessi per aggiungere file in quella cartella + The filename cannot be encoded on your file system. + Il nome del file non può essere codificato sul tuo file system. - - Not allowed to upload this file because it is read-only on the server, restoring - Non ti è permesso caricare questo file perché hai l'accesso in sola lettura sul server, ripristino + The filename is blacklisted on the server. + Il nome del file è nella lista nera sul server. - - Not allowed to remove, restoring - Rimozione non consentita, ripristino + Upload of %1 exceeds %2 of space left in folder %3. + Il caricamento di %1supera %2 dello spazio rimasto nella cartella %3. - - Error while reading the database - Errore durante la lettura del database + Upload of %1 exceeds %2 of space left in personal files. + Il caricamento di %1supera %2 dello spazio rimasto nei file personali. - + OCC::PropagateDirectory - Could not delete file %1 from local DB Impossibile eliminare il file %1 dal DB locale - Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido - - - - - - - The folder %1 cannot be made read-only: %2 - La cartella %1 non può essere resa in sola lettura: %2 - - - - - unknown exception - eccezione sconosciuta - - - Error updating metadata: %1 Errore di invio dei metadati: %1 - File is currently in use Il file è attualmente in uso - + + The folder %1 cannot be made read-only: %2 + La cartella %1 non può essere resa in sola lettura: %2 + + + unknown exception + eccezione sconosciuta + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Impossibile eliminare il record del file %1 dal DB locale + + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale - + Error updating metadata: %1 + Errore di invio dei metadati: %1 + + File %1 cannot be downloaded because encryption information is missing. Il file %1 non può essere scaricato per la mancanza di informazioni di crittografia. - - - Could not delete file record %1 from local DB - Impossibile eliminare il record del file %1 dal DB locale + File %1 downloaded but it resulted in a local file name clash! + File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! - - The download would reduce free local disk space below the limit - Lo scaricamento ridurrà lo spazio disco libero locale sotto il limite + File %1 has invalid modified time reported by server. Do not save it. + Il file %1 ha un orario di modifica non valido segnalato dal server. Non salvarlo. - - Free space on disk is less than %1 - Lo spazio libero su disco è inferiore a %1 + File has changed since discovery + Il file è stato modificato dal suo rilevamento - - + File was deleted from server Il file è stato eliminato dal server - - The file could not be downloaded completely. - Il file non può essere scaricato completamente. - - - - The downloaded file is empty, but the server said it should have been %1. - Il file scaricato è vuoto, ma il server ha indicato una dimensione di %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - Il file %1 ha un orario di modifica non valido segnalato dal server. Non salvarlo. + Free space on disk is less than %1 + Lo spazio libero su disco è inferiore a %1 - - File %1 downloaded but it resulted in a local file name clash! - File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! + The download would reduce free local disk space below the limit + Lo scaricamento ridurrà lo spazio disco libero locale sotto il limite - - Error updating metadata: %1 - Errore di invio dei metadati: %1 + The downloaded file is empty, but the server said it should have been %1. + Il file scaricato è vuoto, ma il server ha indicato una dimensione di %1. - The file %1 is currently in use Il file %1 è attualmente in uso - - - File has changed since discovery - Il file è stato modificato dal suo rilevamento + The file could not be downloaded completely. + Il file non può essere scaricato completamente. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. Ripristino non è riuscito: %2 - - - ; Restoration Failed: %1 ; Ripristino non riuscito: %1 - A file or folder was removed from a read only share, but restoring failed: %1 Un file o una cartella è stato rimosso da una condivisione in sola lettura, ma il ripristino non è riuscito: %1 @@ -4526,130 +3803,102 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - Impossibile eliminare il file %1, errore: %2 + Could not create folder %1 + Impossibile creare la cartella %1 + + + Error updating metadata: %1 + Errore di invio dei metadati: %1 - Folder %1 cannot be created because of a local file or folder name clash! La cartella %1 non può essere creata perché il suo nome conflitta con quello di un altro file o cartella! - - Could not create folder %1 - Impossibile creare la cartella %1 + The file %1 is currently in use + Il file %1 è attualmente in uso - - - - + The folder %1 cannot be made read-only: %2 La cartella %1 non può essere resa in sola lettura: %2 - - unknown exception - eccezione sconosciuta - - - - Error updating metadata: %1 - Errore di invio dei metadati: %1 + could not delete file %1, error: %2 + Impossibile eliminare il file %1, errore: %2 - - The file %1 is currently in use - Il file %1 è attualmente in uso + unknown exception + eccezione sconosciuta - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Impossibile eliminare il record del file %1 dal DB locale + + Could not remove %1 because of a local file name clash Impossibile rimuovere %1 a causa di un conflitto con un file locale - - - Temporary error when removing local item removed from server. Errore temporaneo durante la rimozione dell'elemento locale rimosso dal server. - - - Could not delete file record %1 from local DB - Impossibile eliminare il record del file %1 dal DB locale - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - La cartella %1 non può essere rinominata perché il suo nome conflitta con quello di un altro file o cartella! - - - - File %1 downloaded but it resulted in a local file name clash! - File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! + Could not delete file record %1 from local DB + Impossibile eliminare il record del file %1 dal DB locale - - - + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale - - Error setting pin state Errore durante l'impostazione dello stato del PIN - Error updating metadata: %1 Errore di invio dei metadati: %1 - - The file %1 is currently in use - Il file %1 è attualmente in uso - - - Failed to propagate directory rename in hierarchy Impossibile propagare la rinomina della cartella nella gerarchia - Failed to rename file Rinominazione file non riuscita - - Could not delete file record %1 from local DB - Impossibile eliminare il record del file %1 dal DB locale + File %1 downloaded but it resulted in a local file name clash! + File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + La cartella %1 non può essere rinominata perché il suo nome conflitta con quello di un altro file o cartella! - + The file %1 is currently in use + Il file %1 è attualmente in uso + + + + OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". @@ -4657,203 +3906,152 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". + Error writing metadata to the database: %1 + Errore durante la scrittura dei metadati nel database: %1 - Failed to encrypt a folder %1 Impossibile criptare una cartella %1 - - Error writing metadata to the database: %1 - Errore durante la scrittura dei metadati nel database: %1 - - - The file %1 is currently in use Il file %1 è attualmente in uso - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Impossibile eliminare il record del file %1 dal DB locale + + + Could not get file %1 from local DB + Impossibile ottenere il file %1 dal DB locale + + Could not rename %1 to %2, error: %3 Impossibile rinominare %1 in %2, errore: %3 - - + Error setting pin state + Errore durante l'impostazione dello stato del PIN + + Error updating metadata: %1 Errore di invio dei metadati: %1 - - + Error writing metadata to the database + Errore durante la scrittura dei metadati nel database + + The file %1 is currently in use Il file %1 è attualmente in uso - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - Impossibile ottenere il file %1 dal DB locale - - - - Could not delete file record %1 from local DB - Impossibile eliminare il record del file %1 dal DB locale + Error updating metadata: %1 + Errore di invio dei metadati: %1 - - Error setting pin state - Errore durante l'impostazione dello stato del PIN + Failed to unlock encrypted folder. + Sblocco della cartella cifrata non riuscito. - - Error writing metadata to the database - Errore durante la scrittura dei metadati nel database + Failed to upload encrypted file. + Caricamento del file cifrato non riuscito. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Il file %1 non può essere caricato poiché esiste un altro file con lo stesso nome, ma con differenze tra maiuscole e minuscole - - - File %1 has invalid modification time. Do not upload to the server. Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. - - Local file changed during syncing. It will be resumed. - Il file locale è stato modificato durante la sincronizzazione. Sarà ripristinato. + File Removed (start upload) %1 + File rimosso (avvio caricamento) %1 - - + Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. - - Failed to unlock encrypted folder. - Sblocco della cartella cifrata non riuscito. - - - - Unable to upload an item with invalid characters - Impossibile caricare un elemento con caratteri non validi - - - - Error updating metadata: %1 - Errore di invio dei metadati: %1 + Local file changed during syncing. It will be resumed. + Il file locale è stato modificato durante la sincronizzazione. Sarà ripristinato. - The file %1 is currently in use Il file %1 è attualmente in uso - - - Upload of %1 exceeds the quota for the folder - Il caricamento di %1 supera la quota per la cartella - - - - Failed to upload encrypted file. - Caricamento del file cifrato non riuscito. + Unable to upload an item with invalid characters + Impossibile caricare un elemento con caratteri non validi - - File Removed (start upload) %1 - File rimosso (avvio caricamento) %1 + Upload of %1 exceeds the quota for the folder + Il caricamento di %1 supera la quota per la cartella - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Il file è bloccato e non può essere sincronizzato. + File is not accessible on the server. + server error + Il file non è accessibile sul server. - - - The local file was removed during sync. - Il file locale è stato rimosso durante la sincronizzazione. + + Folder is not accessible on the server. + server error + La cartella non è accessibile sul server. - Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. - - Poll URL missing - URL del sondaggio mancante  - - - - Unexpected return code from server (%1) - Codice di uscita inatteso dal server (%1) - - - Missing File ID from server File ID mancante dal server - - Folder is not accessible on the server. - server error - La cartella non è accessibile sul server. + Poll URL missing + URL del sondaggio mancante  - - File is not accessible on the server. - server error - Il file non è accessibile sul server. + The local file was removed during sync. + Il file locale è stato rimosso durante la sincronizzazione. - + + Unexpected return code from server (%1) + Codice di uscita inatteso dal server (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Il file è bloccato e non può essere sincronizzato. + Local file changed during sync. + Un file locale è cambiato durante la sincronizzazione. - Poll URL missing URL di richiesta mancante - The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. - - Local file changed during sync. - Un file locale è cambiato durante la sincronizzazione. - - - The server did not acknowledge the last chunk. (No e-tag was present) Il server non ha riconosciuto l'ultimo pezzo. (Non era presente alcun e-tag) @@ -4861,35 +4059,29 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProxyAuthDialog - + Password: + Password: + + Proxy authentication required Autenticazione proxy richiesta - - Username: - Nome utente: - - - Proxy: Proxy: - The proxy server needs a username and password. Il server proxy richiede un nome utente e una password. - - Password: - Password: + Username: + Nome utente: - + OCC::SelectiveSyncDialog - Choose What to Sync Scegli cosa sincronizzare @@ -4897,78 +4089,103 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncWidget - - Loading … - Caricamento… + An error occurred while loading the list of sub folders. + Si è verificato un errore durante il caricamento dell'elenco delle sottocartelle. - - + Deselect remote folders you do not wish to synchronize. Deseleziona le cartelle remote che non desideri sincronizzare. - - Name - Nome + Loading … + Caricamento… - - Size - Dimensione + Name + Nome - - No subfolders currently on the server. Attualmente non ci sono sottocartelle sul server. - - An error occurred while loading the list of sub folders. - Si è verificato un errore durante il caricamento dell'elenco delle sottocartelle. + Size + Dimensione - + OCC::ServerNotificationHandler - + Dismiss + Annulla + + Reply Rispondi + + + OCC::sesSnackBar + + Error + + - - Dismiss - Annulla + Success + - + + Warning + Avviso + + OCC::SettingsDialog - - Settings - Impostazioni - - - %1 Settings This name refers to the application name e.g Nextcloud Impostazioni di %1 - + Account + Account + + General Generale - - Account - Account + New account + - + + Settings + Impostazioni + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Risultati della ricerca globale + + + No results found + Nessun risultato trovato + + + Search globally + Cerca globalmente + + OCC::ShareManager - Error Errore @@ -4976,126 +4193,61 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareModel - %1 days %1 giorni - - %1 day - %1 giorno - - - 1 day 1 giorno - - Today - Oggi - - - - Secure file drop link - Collegamento per il file drop sicuro + Could not find local folder for %1 + Impossibile trovare la cartella locale per %1 - - - Share link - Collegamento di condivisione + + Internal link + Collegamento ad uso interno - Link share Condivisione del collegamento - - Internal link - Collegamento ad uso interno - - - Secure file drop File drop sicuro - - Could not find local folder for %1 - Impossibile trovare la cartella locale per %1 - - - - OCC::ShareeModel - - - - Search globally - Cerca globalmente - - - - No results found - Nessun risultato trovato + Secure file drop link + Collegamento per il file drop sicuro - - Global search results - Risultati della ricerca globale + Share link + Collegamento di condivisione - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Oggi - + OCC::SocketApi - - Context menu share - Condivisione da menu contestuale - - - - I shared something with you - Ho condiviso qualcosa con te + Activity + Attività - - - Share options - Opzioni di condivisione + Context menu share + Condivisione da menu contestuale - - Send private link by email … - Invia collegamento privato tramite email… + Copy internal link + Copia collegamento interno - Copy private link to clipboard Copia collegamento privato negli appunti - - Failed to encrypt folder at "%1" - Impossibile criptare una cartella su "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - L'account %1 non ha la crittografia end-to-end configurata. Configurala nelle impostazioni dell'account per abilitare la crittografia delle cartelle. - - - - Failed to encrypt folder - Impossibile criptare la cartella - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5104,990 +4256,787 @@ Server replied with error: %2 Il server ha risposto con errore: %2 - - Folder encrypted successfully - Cartella crittografata correttamente + Delete + Elimina - - The following folder was encrypted successfully: "%1" - La seguente cartella è stata crittografata correttamente: "%1" + Delete local changes + Elimina modifiche locali - - Select new location … - Seleziona nuova posizione… + Encrypt + Cifra - - - - File actions - Azioni sui file + + Expires in %1 minutes + remaining time before lock expires + + Scade in %1 minuto + Scade in %1 minuti + - - - Activity - Attività + Failed to encrypt folder + Impossibile criptare la cartella - - Leave this share - Abbandona questa condivisione + Failed to encrypt folder at "%1" + Impossibile criptare una cartella su "%1" - - Resharing this file is not allowed - La ri-condivisione di questo file non è consentita + Folder encrypted successfully + Cartella crittografata correttamente - - Resharing this folder is not allowed - La ri-condivisione di questa cartella non è consentita + I shared something with you + Ho condiviso qualcosa con te - - Encrypt - Cifra + Leave this share + Abbandona questa condivisione - Lock file Blocca file - - Unlock file - Sblocca file - - - Locked by %1 Bloccato da %1 - - - Expires in %1 minutes - remaining time before lock expires - Scade in %1 minutoScade in %1 minutiScade in %1 minuti - - - - Resolve conflict … - Risolvi conflitto… - - Move and rename … Sposta e rinomina… - + Move and upload … + Sposta e carica… + + Move, rename and upload … Sposta, rinomina e carica… - - Delete local changes - Elimina modifiche locali + Open in browser + Apri nel browser + + + Resharing this file is not allowed + La ri-condivisione di questo file non è consentita - - Move and upload … - Sposta e carica… + Resharing this folder is not allowed + La ri-condivisione di questa cartella non è consentita - - Delete - Elimina + Resolve conflict … + Risolvi conflitto… - - Copy internal link - Copia collegamento interno + Select new location … + Seleziona nuova posizione… - - - Open in browser - Apri nel browser + Send private link by email … + Invia collegamento privato tramite email… - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Dettagli del certificato</h3> + Share options + Opzioni di condivisione - - Common Name (CN): - Nome comune (CN): + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + L'account %1 non ha la crittografia end-to-end configurata. Configurala nelle impostazioni dell'account per abilitare la crittografia delle cartelle. - - Subject Alternative Names: - Nomi alternativi soggetto (SAN): + The following folder was encrypted successfully: "%1" + La seguente cartella è stata crittografata correttamente: "%1" - - Organization (O): - Organizzazione (O): + Unlock file + Sblocca file + + + OCC::SslButton - - Organizational Unit (OU): - Unità organizzativa (OU): + %1 + %1 - - State/Province: - Stato/Regione: + %1 (self-signed) + %1 (autofirmato) - - Country: - Nazione: + <h3>Certificate Details</h3> + <h3>Dettagli del certificato</h3> - - Serial: - Numero di serie: + <h3>Fingerprints</h3> + <h3>Impronte digitali</h3> - <h3>Issuer</h3> <h3>Emittente</h3> - - Issuer: - Emittente: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Nota:</b> questo certificato è stato approvato manualmente</p> - - Issued on: - Emesso il: + Certificate information: + Informazioni sul certificato: + + + Common Name (CN): + Nome comune (CN): + + + Country: + Nazione: - Expires on: Scade il: - - <h3>Fingerprints</h3> - <h3>Impronte digitali</h3> + Issued on: + Emesso il: - - SHA-256: - SHA-256: + Issuer: + Emittente: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + Nessun supporto per i ticket/identificatori di sessione SSL - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Nota:</b> questo certificato è stato approvato manualmente</p> + Organization (O): + Organizzazione (O): - - %1 (self-signed) - %1 (autofirmato) + Organizational Unit (OU): + Unità organizzativa (OU): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - Questa connessione è cifrata utilizzando %1 bit %2. - + SHA-256: + SHA-256: + + + Serial: + Numero di serie: - Server version: %1 Versione server: %1 - - No support for SSL session tickets/identifiers - Nessun supporto per i ticket/identificatori di sessione SSL + State/Province: + Stato/Regione: - - Certificate information: - Informazioni sul certificato: + Subject Alternative Names: + Nomi alternativi soggetto (SAN): - The connection is not secure La connessione non è sicura + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Questa connessione NON è sicura poiché non è cifrata. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Fidati comunque di questo certificato + &lt;not specified&gt; + &lt;non specificato&gt; - - Untrusted Certificate - Certificato non attendibile + Additional errors: + Errori aggiuntivi: - Cannot connect securely to <i>%1</i>: Impossibile collegarsi in modo sicuro a <i>%1</i>: - - Additional errors: - Errori aggiuntivi: - - - - with Certificate %1 - con certificato %1 + Country: %1 + Nazione: %1 - - - - &lt;not specified&gt; - &lt;non specificato&gt; + Effective Date: %1 + Data effettiva: %1 - - - Organization: %1 - Organizzazione: %1 + Expiration Date: %1 + Data di scadenza: %1 - - - Unit: %1 - Reparto: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Impronta digitale (SHA-256): <tt>%1</tt> - - - Country: %1 - Nazione: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Impronta digitale (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Impronta digitale (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Impronta digitale (SHA-256): <tt>%1</tt> + Issuer: %1 + Emittente: %1 + + + Organization: %1 + Organizzazione: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Impronta digitale (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Fidati comunque di questo certificato - - Effective Date: %1 - Data effettiva: %1 + Unit: %1 + Reparto: %1 - - Expiration Date: %1 - Data di scadenza: %1 + Untrusted Certificate + Certificato non attendibile - - Issuer: %1 - Emittente: %1 + with Certificate %1 + con certificato %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (saltato a causa di un errore precedente, nuovo tentativo in %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Sono disponibili solo %1, servono almeno %2 per iniziare - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Impossibile aprire o creare il database locale di sincronizzazione. Assicurati di avere accesso in scrittura alla cartella di sincronizzazione. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Lo spazio su disco è basso: gli scaricamenti che potrebbero ridurre lo spazio libero sotto %1 saranno saltati. + Cannot open the sync journal + Impossibile aprire il registro di sincronizzazione - - - There is insufficient space available on the server for some uploads. - Spazio disponibile insufficiente sul server per alcuni caricamenti. + + Could not set file record to local DB: %1 + Impossibile impostare il record del file nel DB locale: %1 - - Unresolved conflict. - Conflitto non risolto + Could not update file metadata: %1 + Impossibile aggiornare i metadati: %1 - Could not update file: %1 Impossibile aggiornare il file: %1 - Could not update virtual file metadata: %1 Impossibile aggiornare i metadati dei file virtuali: %1 - - Could not update file metadata: %1 - Impossibile aggiornare i metadati: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Lo spazio su disco è basso: gli scaricamenti che potrebbero ridurre lo spazio libero sotto %1 saranno saltati. - - Could not set file record to local DB: %1 - Impossibile impostare il record del file nel DB locale: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Sono disponibili solo %1, servono almeno %2 per iniziare - - Using virtual files with suffix, but suffix is not set - Utilizzo di file virtuali con suffisso, ma il suffisso non è impostato + There is insufficient space available on the server for some uploads. + Spazio disponibile insufficiente sul server per alcuni caricamenti. - - Unable to read the blacklist from the local database - Impossibile leggere la lista nera dal database locale + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Impossibile aprire o creare il database locale di sincronizzazione. Assicurati di avere accesso in scrittura alla cartella di sincronizzazione. - Unable to read from the sync journal. Impossibile leggere dal registro di sincronizzazione. - - Cannot open the sync journal - Impossibile aprire il registro di sincronizzazione + Unable to read the blacklist from the local database + Impossibile leggere la lista nera dal database locale - - - OCC::SyncStatusSummary - - - - Offline - Non in linea + Unresolved conflict. + Conflitto non risolto - - You need to accept the terms of service - Devi accettare i termini del servizio + Using virtual files with suffix, but suffix is not set + Utilizzo di file virtuali con suffisso, ma il suffisso non è impostato + + + OCC::SyncStatusSummary - - Reauthorization required - È necessaria una nuova autorizzazione. + %1 of %2 + %1 di %2 - - Please grant access to your sync folders - Si prega di concedere l'accesso alle cartelle di sincronizzazione. + %1 of %2 · %3 left + %1 di %2 · %3 rimasti - - - All synced! Tutto sincronizzato! - - Some files couldn't be synced! - Alcuni file non possono essere sincronizzati! + Checking folder changes + Controllo delle modifiche alle cartelle + + + Offline + Non in linea - See below for errors Vedi sotto gli errori - - Checking folder changes - Controllo delle modifiche alle cartelle + See below for warnings + Vedi sotto gli avvisi - - Syncing changes - Sincronizzazione delle modifiche + Some files could not be synced! + Alcuni file non possono essere sincronizzati! - - Sync paused - Sincronizzazione sospesa - - - - Some files could not be synced! + Some files couldn't be synced! Alcuni file non possono essere sincronizzati! - - See below for warnings - Vedi sotto gli avvisi + Sync paused + Sincronizzazione sospesa - Syncing Sincronizzazione - - %1 of %2 · %3 left - %1 di %2 · %3 rimasti - - - - %1 of %2 - %1 di %2 + Syncing changes + Sincronizzazione delle modifiche - Syncing file %1 of %2 Sincronizzazione file %1 di %2 - - - No synchronisation configured - Nessuna sincronizzazione configurata + + You need to accept the terms of service + Devi accettare i termini del servizio - + OCC::Systray - + Add account + Aggiungi account + + Download Scarica - - Add account - Aggiungi account + Exit %1 + Esci da %1 + + + Help + Assistenza - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Apri %1 Desktop - - Pause sync Sospendi la sincronizzazione - - - Resume sync - Riprendi la sincronizzazione - - - - Settings - Impostazioni - - - - Help - Assistenza - - - - Exit %1 - Esci da %1 - - - Pause sync for all Sospendi la sincronizzazione per tutto - + Resume sync + Riprendi la sincronizzazione + + Resume sync for all Riprendi la sincronizzazione per tutto - + + Settings + Impostazioni + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - In attesa che i termini vengano accettati - - - - Polling - Sondaggio + Copy Link + Copia collegamento - - + Link copied to clipboard. Collegamento copiato negli appunti. - Open Browser Apri browser - - Copy Link - Copia collegamento + Polling + Sondaggio - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - %1 Versione client desktop %2 (%3 in esecuzione %4) + Waiting for terms to be accepted + In attesa che i termini vengano accettati + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Versione Client Desktop %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Usato il plugin dei file virtuali: %1</small></p> - <p>This release was supplied by %1.</p> <p>Questa versione è stata fornita da %1.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Recupero dei fornitori non riuscito. - Failed to fetch search providers for '%1'. Error: %2 Recupero dei fornitori di ricerca per '%1'. Errore: %2 - - Search has failed for '%2'. - Ricerca di '%2' fallita. - - - Search has failed for '%1'. Error: %2 Ricerca di '%1' fallita. Errore: %2 - + + Search has failed for '%2'. + Ricerca di '%2' fallita. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Aggiornamento dei metadati della cartella non riuscito. + Failed to finalize item. + Impossibile finalizzare l'elemento. - - + Failed to unlock encrypted folder. Sblocco della cartella cifrata non riuscito. - - Failed to finalize item. - Impossibile finalizzare l'elemento. + Failed to update folder metadata. + Aggiornamento dei metadati della cartella non riuscito. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Errore durante l'aggiornamento dei metadati per una cartella %1 + Could not add or remove user %1 to access folder %2 + Impossibile aggiungere o rimuovere l'utente %1 per accedere alla cartella %2 - Could not fetch public key for user %1 Impossibile recuperare la chiave pubblica per l'utente %1 - Could not find root encrypted folder for folder %1 Impossibile trovare la cartella root crittografata per la cartella %1 - - Could not add or remove user %1 to access folder %2 - Impossibile aggiungere o rimuovere l'utente %1 per accedere alla cartella %2 + Error updating metadata for a folder %1 + Errore durante l'aggiornamento dei metadati per una cartella %1 - Failed to unlock a folder. Impossibile sbloccare una cartella. OCC::User - - - End-to-end certificate needs to be migrated to a new one - Il certificato end-to-end deve essere migrato a uno nuovo - - - - Trigger the migration - Avviare la migrazione - - %n notification(s) - %n notifica%n notifiche%n notifiche - - - - - “%1” was not synchronized - “%1” non era sincronizzato - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - Spazio di archiviazione insufficiente sul server. Il file richiede%1 ma solo %2 sono disponibili. - - - - Insufficient storage on the server. The file requires %1. - Spazio di archiviazione insufficiente sul server. Il file richiede %1. - - - - Insufficient storage on the server. - Spazio di archiviazione insufficiente sul server. - - - - There is insufficient space available on the server for some uploads. - Sul server non è disponibile spazio sufficiente per alcuni caricamenti. - - - - Retry all uploads - Riprova tutti i caricamenti - - - - - Resolve conflict - Risolvi il conflitto - - - - Rename file - Rinominare il file + + %n notifica + %n notifiche + - - Public Share Link - Collegamento di condivisione pubblico + End-to-end certificate needs to be migrated to a new one + Il certificato end-to-end deve essere migrato a uno nuovo - Open %1 Assistant in browser The placeholder will be the application name. Please keep it Apri %1 Assistant nel browser - Open %1 Talk in browser The placeholder will be the application name. Please keep it Apri %1 Talk nel browser - - Open %1 Assistant - The placeholder will be the application name. Please keep it - OpRI %1 Assistente - - - - Assistant is not available for this account. - L'assistente non è disponibile per questo account. - - - - Assistant is already processing a request. - L'assistente sta già elaborando una richiesta. - - - - Sending your request… - Invio della richiesta in corso… - - - - Sending your request … - Invio della richiesta … + Public Share Link + Collegamento di condivisione pubblico - - No response yet. Please try again later. - Nessuna risposta ancora. Riprova più tardi. + Quota Warning - %1 percent or more storage in use + Avviso di quota - %1 percento o più di spazio di archiviazione in uso - - - No supported assistant task types were returned. - Non è stato restituita alcun tipo di attività di assistenza supportata. + + Quota is updated; %1 percent of the total space is used. + La quota è aggiornata; %1 percento dello spazio totale è utilizzato. - - Waiting for the assistant response… - In attesa della risposta dell'assistente… + Rename file + Rinominare il file - - Assistant request failed (%1). - Richiesta di assistenza non riuscita (%1). + Resolve conflict + Risolvi il conflitto - - Quota is updated; %1 percent of the total space is used. - La quota è aggiornata; %1 percento dello spazio totale è utilizzato. + Retry all uploads + Riprova tutti i caricamenti - - Quota Warning - %1 percent or more storage in use - Avviso di quota - %1 percento o più di spazio di archiviazione in uso + Trigger the migration + Avviare la migrazione - + OCC::UserModel - - Confirm Account Removal - Conferma rimozione account - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vuoi davvero rimuovere la connessione all'account <i>%1</i>?</p><p><b>Nota:</b> ciò <b>non</b> eliminerà alcun file.</p> - - Remove connection - Rimuovi connessione - - - Cancel Annulla - + Confirm Account Removal + Conferma rimozione account + + Leave share Lascia condivisione - Remove account Rimuovi account - + + Remove connection + Rimuovi connessione + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - Impossibile recuperare gli stati preimpostati. Assicurati di essere connesso al server. + + %n day(s) + + %n giorno + %n giorni + - - - Could not fetch status. Make sure you are connected to the server. - Impossibile recuperare lo stato. Assicurati di essere connesso al server. + + %n hour(s) + + %n ora + %n ore + + + + %n minute(s) + + %n minuto + %n minuti + - - Status feature is not supported. You will not be able to set your status. - La funzionalità dello stato non è supportata. Non potrai impostare il tuo stato. + 1 hour + 1 ora - - Emojis are not supported. Some status functionality may not work. - Gli emoji non sono supportati. Alcune caratteristiche dello stato potrebbero non funzionare. + 30 minutes + 30 minuti - - Could not set status. Make sure you are connected to the server. - Impossibile impostare lo stato. Assicurati di essere connesso al server. + 4 hours + 4 ore - Could not clear status message. Make sure you are connected to the server. Impossibile cancellare il messaggio di stato. Assicurati di essere connesso al server. - - - Don't clear - Non cancellare + Could not fetch predefined statuses. Make sure you are connected to the server. + Impossibile recuperare gli stati preimpostati. Assicurati di essere connesso al server. - - 30 minutes - 30 minuti + Could not fetch status. Make sure you are connected to the server. + Impossibile recuperare lo stato. Assicurati di essere connesso al server. - - 1 hour - 1 ora + Could not set status. Make sure you are connected to the server. + Impossibile impostare lo stato. Assicurati di essere connesso al server. - - 4 hours - 4 ore + Don't clear + Non cancellare - - - Today - Oggi + Emojis are not supported. Some status functionality may not work. + Gli emoji non sono supportati. Alcune caratteristiche dello stato potrebbero non funzionare. - - - This week - Questa settimana - - - Less than a minute Meno di un minuto - - - %n minute(s) - %n minuto%n minuti%n minuti + + Status feature is not supported. You will not be able to set your status. + La funzionalità dello stato non è supportata. Non potrai impostare il tuo stato. - - - %n hour(s) - %n ora%n ore%n ore + + This week + Questa settimana - - - %n day(s) - %n giorno%n giorni%n giorni + + Today + Oggi - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1 è un'unità. Non supporta file virtuali. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Si prega di scegliere una posizione diversa. %1non è un file system NTFS. Non supporta file virtuali. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1 è un'unità di rete. Non supporta file virtuali. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Si prega di scegliere una posizione diversa. %1non è un file system NTFS. Non supporta file virtuali. + + OCC::VfsDownloadErrorDialog - - Download error - Errore di download + %1 could not be downloaded. + %1 non è stato possibile scaricarlo. - - - Error downloading - Errore durante il download + + > More details + > Più dettagli - Could not be downloaded Non è stato possibile effettuare il download - - > More details - > Più dettagli + Download error + Errore di download - - More details - Più dettagli + Error downloading + Errore durante il download - Error downloading %1 Errore durante il download %1 - - %1 could not be downloaded. - %1 non è stato possibile scaricarlo. + More details + Più dettagli - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido @@ -6095,8 +5044,6 @@ Il server ha risposto con errore: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido @@ -6104,12 +5051,10 @@ Il server ha risposto con errore: %2 OCC::WebEnginePage - Invalid certificate detected Rilevato certificato non valido - The host "%1" provided an invalid certificate. Continue? L'host "%1" ha fornito un certificato non valido. Vuoi continuare? @@ -6117,769 +5062,642 @@ Il server ha risposto con errore: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Sei stato disconnesso dal tuo utente %1 su %2. Accedi nuovamente. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Modulo - - Log in - Accedi - - - - Sign up with provider - Registrati a un fornitore + Host your own server + Ospita il tuo server - - + Keep your data secure and under your control Mantieni i tuoi dati sicuri e sotto il tuo controllo - - Secure collaboration & file exchange - Collaborazione sicura e scambio di file - - - - Easy-to-use web mail, calendaring & contacts - Web mail, calendario e contatti facili da usare - - - - Screensharing, online meetings & web conferences - Condivisione schermo, riunioni in linea e conferenze via web + Log in + Accedi - - Host your own server - Ospita il tuo server + Sign up with provider + Registrati a un fornitore - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - Impostazioni proxy + HTTP(S) proxy + Proxy HTTP(S) - Hostname of proxy server Nome host del server proxy - - Username for proxy server - Nome utente per il server proxy - - - Password for proxy server Password per il server proxy - - HTTP(S) proxy - Proxy HTTP(S) + Proxy Settings + Dialog window title for proxy settings + Impostazioni proxy - SOCKS5 proxy Proxy SOCKS5 - + + Username for proxy server + Nome utente per il server proxy + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Accedi + &Local Folder + Carte&lla locale - - - There are no sync folders configured. - Non è stata configurata alcuna cartella per la sincronizzazione. + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Se questa casella è marcata, il contenuto della cartella locale sarà cancellato per avviare una nuova sincronizzazione dal server.</p><p>Non marcarla se il contenuto locale deve essere caricato nella cartella del server.</p></body></html> - - Disconnected from %1 - Disconnesso dal %1 + Ask before syncing folders larger than + Chiedi prima di sincronizzare cartelle più grandi di - - Unsupported Server Version - Versione del server non supportata + Choose different folder + Scegli una cartella diversa - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - Il server sull'account %1 esegue una versione non supportata %2. L'utilizzo di questo client con versioni del server non supportate non è stato verificato e è potenzialmente pericoloso. Procedi a tuo rischio. + Choose what to sync + Scegli cosa sincronizzare - - Terms of service - Termini di servizio + Erase local folder and start a clean sync + Elimina la cartella locale e inizia una sincronizzazione pulita - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Il tuo account %1 richiede di accettare i termini di servizio del tuo server. Verrai reindirizzato a %2 per confermare di averlo letto e di accettarlo. + Keep local data + Mantieni i dati locali - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1: %2 + Local Folder + Cartella locale - - macOS VFS for %1: Sync is running. - macOS VFS per %1: La sincronizzazione è in esecuzione. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Last sync was successful. - macOS VFS per %1: L'ultima sincronizzazione è riuscita. + Server address + Indirizzo del server - - macOS VFS for %1: A problem was encountered. - macOS VFS per %1: Si è verificato un problema. + Sync Logo + Sincronizza logo - - macOS VFS for %1: An error was encountered. - macOS VFS per %1: Si è verificato un errore. + Synchronize everything from server + Sincronizza tutto dal server - - Checking for changes in remote "%1" - Controllo delle modifiche in "%1" remoto + Username + Nome utente + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Controllo delle modifiche in "%1" locale + &Password + &Password - - - Internal link copied - + + &Username + Nome &utente + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Indirizzo del server - - Disconnected from accounts: - Disconnesso dagli account: + This is the link to your %1 web interface when you open it in the browser. + Questo è il collegamento all'interfaccia web di %1 quando lo apri nel browser. + + + progress - - Account %1: %2 - Account %1: %2 + Deleted + Eliminato - - Account synchronization is disabled - La sincronizzazione dell'account è disabilitata + Deleting + Eliminazione - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Scaricato - - - OwncloudAdvancedSetupPage - - Username - Nome utente + Downloading + Scaricamento - - Local Folder - Cartella locale + Error + Errore - - Choose different folder - Scegli una cartella diversa + Filesystem access error + Errore di accesso al filesystem - - Server address - Indirizzo del server + Ignored + Ignorato - - Sync Logo - Sincronizza logo + Ignoring + Ignorare - - Synchronize everything from server - Sincronizza tutto dal server + Moved to %1 + Spostato in %1 - - Ask before syncing folders larger than - Chiedi prima di sincronizzare cartelle più grandi di + Moving + Spostamento - - Ask before syncing external storages - Chiedi prima di sincronizzare archiviazioni esterne + Replaced by virtual file + Sostituito da file virtuale - - Keep local data - Mantieni i dati locali + Server version downloaded, copied changed local file into case conflict conflict file + Versione del server scaricata, copiato file locale modificato nel file di conflitto di maiuscole/minuscole - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Se questa casella è marcata, il contenuto della cartella locale sarà cancellato per avviare una nuova sincronizzazione dal server.</p><p>Non marcarla se il contenuto locale deve essere caricato nella cartella del server.</p></body></html> + Server version downloaded, copied changed local file into conflict file + Versione del server scaricata, il file locale modificato è stato copiato come file di conflitto - - Erase local folder and start a clean sync - Elimina la cartella locale e inizia una sincronizzazione pulita + Unknown + Sconosciuto - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated end-to-end encryption metadata + Metadati di crittografia end-to-end aggiornati - - Choose what to sync - Scegli cosa sincronizzare + Updated local metadata + Metadati locali aggiornati - - &Local Folder - Carte&lla locale + Updated local virtual files metadata + Metadati dei file virtuali locali aggiornati - - - OwncloudHttpCredsPage - - &Username - Nome &utente + Updating end-to-end encryption metadata + Aggiornamento dei metadati di crittografia end-to-end - - - &Password - &Password + + Updating local metadata + Aggiornamento dei metadati locali - - - OwncloudSetupPage - - Logo - Logo + Updating local virtual files metadata + Aggiornamento dei metadati dei file virtuali locali - - Server address - Indirizzo del server + Uploaded + Caricato - - This is the link to your %1 web interface when you open it in the browser. - Questo è il collegamento all'interfaccia web di %1 quando lo apri nel browser. + Uploading + Caricamento - + + Virtual file created + File virtuale creato + + ProxySettings - Form Modulo - - Proxy Settings - Impostazioni proxy + Host + Host - Manually specify proxy Specificare manualmente il proxy - - Host - Host + No proxy + Nessun proxy + + + Note: proxy settings have no effects for accounts on localhost + Nota: le impostazioni proxy non hanno effetto sugli account su localhost - - Proxy server requires authentication - Il server proxy richiede l'autenticazione + Proxy Settings + Impostazioni proxy - - Note: proxy settings have no effects for accounts on localhost - Nota: le impostazioni proxy non hanno effetto sugli account su localhost + Proxy server requires authentication + Il server proxy richiede l'autenticazione - Use system proxy Utilizza il proxy di sistema - - - No proxy - Nessun proxy - - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %ngiorno%ngiorni%ngiorni - - - - in the future - nel futuro + + %ngiorno + %ngiorni + - %nh delay in hours after an activity - %nora%nore%nore + + %nora + %nore + - - - now - adesso + + %nmin + delay in minutes after an activity + + %nmin + %nmin + - 1min one minute after activity date and time 1min - - - %nmin - delay in minutes after an activity - %nmin%nmin%nmin - - - Some time ago - Tempo fa + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + Impossibile creare archivio con i log per il debug nel percorso selezionato! - - New folder - Nuova cartella + Error deleting the file + Errore durante l'eliminazione del file - Failed to create debug archive Impossibile creare archivio con i log per il debug - - Could not create debug archive in selected location! - Impossibile creare archivio con i log per il debug nel percorso selezionato! - - - - Could not create debug archive in temporary location! - Impossibile creare l'archivio di debug nella posizione temporanea! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Sembra che tu stia utilizzando un proxy che richiede l'autenticazione. Controlla le impostazioni e le credenziali del proxy. Se hai bisogno di aiuto, contatta l'amministratore del server. - - Could not remove existing file at destination! - Impossibile rimuovere il file esistente nella destinazione! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + La connessione al server sta impiegando troppo tempo. Riprova più tardi. Se hai bisogno di aiuto, contatta l'amministratore del server. - - Could not move debug archive to selected location! - Impossibile spostare l'archivio di debug nella posizione selezionata! + New folder + Nuova cartella - - You renamed %1 - Hai rinominato %1 + Paths beginning with '#' character are not supported in VFS mode. + I percorsi che iniziano con il carattere '#' non sono supportati in modalità VFS. - - You deleted %1 - Hai eliminato %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + I file del server sono cambiati durante il lavoro. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. - - You created %1 - Hai creato %1 + Some time ago + Tempo fa - - You changed %1 - Hai modificato %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Si è verificato un problema sul server. Riprova a sincronizzare più tardi o contatta l'amministratore del server se il problema persiste. - Synced %1 %1 sincronizzato - - Error deleting the file - Errore durante l'eliminazione del file + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + L'indirizzo utilizzato per effettuare la richiesta è troppo lungo per essere gestito dal server. Prova ad abbreviare le informazioni che stai inviando o contatta l'amministratore del server per assistenza. - - Paths beginning with '#' character are not supported in VFS mode. - I percorsi che iniziano con il carattere '#' non sono supportati in modalità VFS. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - Non siamo riusciti a elaborare la tua richiesta. Riprova a sincronizzare più tardi. Se il problema persiste, contatta l'amministratore del server per assistenza. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + Il file è troppo grande per essere caricato. Potrebbe essere necessario scegliere un file più piccolo o contattare l'amministratore del server per assistenza. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - Devi effettuare l'accesso per continuare. Se riscontri problemi con le tue credenziali, contatta l'amministratore del server. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + La richiesta non è stata completata perché alcune condizioni obbligatorie non sono state soddisfatte. Riprova a sincronizzare più tardi. Per assistenza, contatta l'amministratore del server. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - Non hai accesso a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + La richiesta sta richiedendo più tempo del solito. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - Non siamo riusciti a trovare quello che cercavi. Potrebbe essere stato spostato o eliminato. Se hai bisogno di aiuto, contatta l'amministratore del tuo server. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + La risorsa a cui stai tentando di accedere è attualmente bloccata e non può essere modificata. Prova a modificarla più tardi o contatta l'amministratore del server per assistenza. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Sembra che tu stia utilizzando un proxy che richiede l'autenticazione. Controlla le impostazioni e le credenziali del proxy. Se hai bisogno di aiuto, contatta l'amministratore del server. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + Il server non è riuscito a elaborare la tua richiesta perché alcune informazioni sono errate o incomplete. Riprova a sincronizzare più tardi o contatta l'amministratore del server per assistenza. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - La richiesta sta richiedendo più tempo del solito. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + Il server non ha spazio sufficiente per completare la tua richiesta. Verifica la quota disponibile per il tuo utente contattando l'amministratore del server. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - I file del server sono cambiati durante il lavoro. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. + The server does not recognize the request method. Please contact your server administrator for help. + Il server non riconosce il metodo di richiesta. Contatta l'amministratore del server per assistenza. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - Questa cartella o questo file non è più disponibile. Se hai bisogno di assistenza, contatta l'amministratore del server. + The server does not support the version of the connection being used. Contact your server administrator for help. + Il server non supporta la versione della connessione utilizzata. Contatta l'amministratore del server per assistenza. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - La richiesta non è stata completata perché alcune condizioni obbligatorie non sono state soddisfatte. Riprova a sincronizzare più tardi. Per assistenza, contatta l'amministratore del server. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + Al momento il server è occupato. Riprova a connetterti tra qualche minuto o contatta l'amministratore del server in caso di urgenza. - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - Il file è troppo grande per essere caricato. Potrebbe essere necessario scegliere un file più piccolo o contattare l'amministratore del server per assistenza. + This file type isn’t supported. Please contact your server administrator for assistance. + Questo tipo di file non è supportato. Contatta l'amministratore del server per assistenza. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - L'indirizzo utilizzato per effettuare la richiesta è troppo lungo per essere gestito dal server. Prova ad abbreviare le informazioni che stai inviando o contatta l'amministratore del server per assistenza. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + Questa cartella o questo file non è più disponibile. Se hai bisogno di assistenza, contatta l'amministratore del server. - - This file type isn’t supported. Please contact your server administrator for assistance. - Questo tipo di file non è supportato. Contatta l'amministratore del server per assistenza. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + Impossibile completare la richiesta perché mancano alcune condizioni obbligatorie. Riprova più tardi o contatta l'amministratore del server per assistenza. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - Il server non è riuscito a elaborare la tua richiesta perché alcune informazioni sono errate o incomplete. Riprova a sincronizzare più tardi o contatta l'amministratore del server per assistenza. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + Non siamo riusciti a trovare quello che cercavi. Potrebbe essere stato spostato o eliminato. Se hai bisogno di aiuto, contatta l'amministratore del tuo server. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - La risorsa a cui stai tentando di accedere è attualmente bloccata e non può essere modificata. Prova a modificarla più tardi o contatta l'amministratore del server per assistenza. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + Non siamo riusciti a elaborare la tua richiesta. Riprova a sincronizzare più tardi. Se il problema persiste, contatta l'amministratore del server per assistenza. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - Impossibile completare la richiesta perché mancano alcune condizioni obbligatorie. Riprova più tardi o contatta l'amministratore del server per assistenza. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + Stiamo riscontrando problemi di connessione al server. Riprova più tardi. Se il problema persiste, l'amministratore del server può aiutarti. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - Hai effettuato troppe richieste. Attendi e riprova. Se continui a visualizzare questo messaggio, l'amministratore del server può aiutarti. + You changed %1 + Hai modificato %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Si è verificato un problema sul server. Riprova a sincronizzare più tardi o contatta l'amministratore del server se il problema persiste. + You created %1 + Hai creato %1 - - The server does not recognize the request method. Please contact your server administrator for help. - Il server non riconosce il metodo di richiesta. Contatta l'amministratore del server per assistenza. + You deleted %1 + Hai eliminato %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - Stiamo riscontrando problemi di connessione al server. Riprova più tardi. Se il problema persiste, l'amministratore del server può aiutarti. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + Non hai accesso a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - Al momento il server è occupato. Riprova a connetterti tra qualche minuto o contatta l'amministratore del server in caso di urgenza. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + Non hai l'autorizzazione per accedere a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server per chiedere assistenza. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - La connessione al server sta impiegando troppo tempo. Riprova più tardi. Se hai bisogno di aiuto, contatta l'amministratore del server. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + Hai effettuato troppe richieste. Attendi e riprova. Se continui a visualizzare questo messaggio, l'amministratore del server può aiutarti. - - The server does not support the version of the connection being used. Contact your server administrator for help. - Il server non supporta la versione della connessione utilizzata. Contatta l'amministratore del server per assistenza. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + Devi effettuare l'accesso per continuare. Se riscontri problemi con le tue credenziali, contatta l'amministratore del server. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - Il server non ha spazio sufficiente per completare la tua richiesta. Verifica la quota disponibile per il tuo utente contattando l'amministratore del server. + You renamed %1 + Hai rinominato %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. La tua rete necessita di un'autenticazione aggiuntiva. Controlla la tua connessione. Se il problema persiste, contatta l'amministratore del server per assistenza. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - Non hai l'autorizzazione per accedere a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server per chiedere assistenza. + in the future + nel futuro - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. + now + adesso - + ResolveConflictsDialog - - - Solve sync conflicts - Risolvi i conflitti di sincronizzazione - - %1 files in conflict indicate the number of conflicts to resolve - %1 file in conflitto%1 file in conflitto%1 file in conflitto - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Scegli se vuoi tenere la versione locale, quella del server, o entrambe. Se scegli entrambe, al nome del tuo file locale verrà aggiunto un numero. + + %1 file in conflitto + %1 file in conflitto + - All local versions Tutte le versioni locali - All server versions Tutte le versioni del server - + Cancel + Annulla + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Scegli se vuoi tenere la versione locale, quella del server, o entrambe. Se scegli entrambe, al nome del tuo file locale verrà aggiunto un numero. + + Resolve conflicts Risolvi i conflitti - - Cancel - Annulla + Solve sync conflicts + Risolvi i conflitti di sincronizzazione - + - ShareDelegate + SesErrorBox - - Copied! - Copiato! + Error + - ShareDetailsPage + SesTrayHeader - - An error occurred setting the share password. - Si è verificato un errore nell'impostazione della password di condivisione + Open Nextcloud in browser + - - Edit share - Modifica la condivisione + Open local or team folders + Apri cartelle locali o di team - - - Share label - Condividi etichetta + + Website + + + + ShareDelegate - - - Allow upload and editing - Consenti caricamento e modifica + Copied! + Copiato! - - View only - Sola lettura + Share options + Opzioni di condivisione + + + ShareDetailsPage - - File drop (upload only) - File drop (solo invio) + Add another link + Aggiungi un altro collegamento - Allow resharing Consenti la ri-condivisione - - Hide download - Nascondi scaricamento + Allow upload and editing + Consenti caricamento e modifica - - Password protection - Protezione con password + An error occurred setting the share password. + Si è verificato un errore nell'impostazione della password di condivisione - - Set expiration date - Imposta data di scadenza + Copy share link + Copia il collegamento di condivisione + + + Custom Permissions + + + + Enter a note for the recipient + Inserisci una nota per il destinatario + + + File drop (upload only) + File drop (solo invio) + + + Hide download + Nascondi scaricamento - Note to recipient Nota al destinatario - - Enter a note for the recipient - Inserisci una nota per il destinatario + Password protection + Protezione con password + + + Set expiration date + Imposta data di scadenza + + + Share link copied! + Collegamento del collegamento di condivisione copiato! - Unshare Rimuovi condivisione - - Add another link - Aggiungi un altro collegamento + View only + Sola lettura + + + ShareeSearchField - - Share link copied! - Collegamento del collegamento di condivisione copiato! + Search for users or groups… + Cerca utenti o gruppi… - - Copy share link - Copia il collegamento di condivisione + Sharing is not available for this folder + La condivisione non è disponibile per questa cartella ShareView - + Expires in %1 + Scade tra %1 + + Password required for new share Password richiesta per la nuova condivisione - Share password Condividi la password - Shared with you by %1 Condiviso con te da %1 - - Expires in %1 - Scade tra %1 - - - Sharing is disabled La condivisione è disabilitata - - This item cannot be shared. - Questo elemento non può essere condiviso. - - - Sharing is disabled. La condivisione è disattivata. - - - ShareeSearchField - - - Search for users or groups… - Cerca utenti o gruppi… - - - - Sharing is not available for this folder - La condivisione non è disponibile per questa cartella + + This item cannot be shared. + Questo elemento non può essere condiviso. - + SyncJournalDb - Failed to connect database. Connessione al database non riuscita. @@ -6887,35 +5705,25 @@ Il server ha risposto con errore: %2 SyncStatus - - Sync now - Sincronizza ora + Open browser + Apri browser - - + Resolve conflicts Risolvi i conflitti - - Open browser - Apri browser - - - - Open settings - Apri impostazioni + Sync now + Sincronizza ora - + TalkReplyTextField - Reply to … Rispondi a … - Send reply to chat message Invia risposta al messaggio di chat @@ -6923,76 +5731,176 @@ Il server ha risposto con errore: %2 TermsOfServiceCheckWidget - - Terms of Service - Termini di servizio - - - Logo Logo - Switch to your browser to accept the terms of service Passa al tuo browser per accettare i termini di servizio - + + Terms of Service + Termini di servizio + + + + theme + + Error occurred during setup + Si è verificato un errore durante l'installazione + + + Error occurred during sync + Si è verificato un errore durante la sincronizzazione + + + Preparing to sync + Preparazione della sincronizzazione + + + Stopping sync + Interruzione della sincronizzazione + + + Sync is paused + La sincronizzazione è sospesa + + + Sync is running + La sincronizzazione è in corso + + + Sync status is unknown + Lo stato di sincronizzazione è sconosciuto + + + Sync was successful + Sincronizzazione riuscita + + + Sync was successful but some files were ignored + La sincronizzazione è riuscita ma alcuni file sono stati ignorati + + + Waiting to start syncing + In attesa di iniziare la sincronizzazione + + TrayFoldersMenuButton - - Open local folder - Apri cartella locale + Files + - - Open local or team folders - Apri cartelle locali o di team + Open %1 in file explorer + Apri %1 in esplora file + + + Open local folder + Apri cartella locale - Open local folder "%1" Apri cartella locale "%1" - - Open team folder "%1" - Apri la cartella del team "%1" + Open local or team folders + Apri cartelle locali o di team - - Open %1 in file explorer - Apri %1 in esplora file + Open team folder "%1" + Apri la cartella del team "%1" - User group and local folders menu Menu gruppo utenti e cartelle locali + + TrayWindowAccountMenu + + Account switcher and settings menu + Menu di cambio account e impostazioni + + + Add account + Aggiungi account + + + Current account + Account corrente + + + Current account avatar + Avatar dell'account corrente + + + Current account status is do not disturb + + + + Current account status is online + + + + Exit + Uscita + + + Pause sync for all + + + + Resume sync for all + + + + Settings + Impostazioni + + TrayWindowHeader - + More apps + Altre app + + + Open %1 in browser + Apri %1 nel browser + + Open local or team folders Apri cartelle locali o di team + + + TrayWindowHeaderBar - More apps - Altre app + Altre app - Open %1 in browser - Apri %1 nel browser + Apri %1 nel browser - + + Open Nextcloud in browser + + + + Open local or team folders + Apri cartelle locali o di team + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Cerca file, messaggi, eventi … @@ -7000,7 +5908,6 @@ Il server ha risposto con errore: %2 UnifiedSearchPlaceholderView - Start typing to search Inizia a digitare per cercare @@ -7008,7 +5915,6 @@ Il server ha risposto con errore: %2 UnifiedSearchResultFetchMoreTrigger - Load more results Carica più risultati @@ -7016,7 +5922,6 @@ Il server ha risposto con errore: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Scheletro dei risultati di ricerca. @@ -7024,7 +5929,6 @@ Il server ha risposto con errore: %2 UnifiedSearchResultListItem - Load more results Carica più risultati @@ -7032,7 +5936,6 @@ Il server ha risposto con errore: %2 UnifiedSearchResultNothingFound - No results for Nessun risultato per @@ -7040,7 +5943,6 @@ Il server ha risposto con errore: %2 UnifiedSearchResultSectionItem - Search results section %1 Sezione dei risultati della ricerca %1 @@ -7048,519 +5950,217 @@ Il server ha risposto con errore: %2 UserLine - - Switch to account - Cambia account - - - - Current account status is online - Lo stato attuale dell'account è in linea - - - - Current account status is do not disturb - Lo stato attuale dell'account è non disturbare - - - - Account sync status requires attention - Lo stato di sincronizzazione dell'account richiede attenzione - - - Account actions Azioni account - - Set status - Imposta stato - - - - Status message - Messaggio di stato + Log in + Accedi - Log out Esci - - Log in - Accedi + Remove account + Rimuovi account - + + Switch to account + Cambia account + + UserStatusMessageView - - Status message - Messaggio di stato + Apply + Applica + + + Cancel + Annulla - - What is your status? - Qual è il tuo stato? + Clear + Cancella - Clear status message after Cancella il messaggio di stato dopo - - Cancel - Annulla - - - - Clear - Cancella + Status message + Messaggio di stato - - Apply - Applica + What is your status? + Qual è il tuo stato? - + UserStatusSetStatusView - - Online status - Stato online - - - - Online - Online + Appear offline + Appari non in linea - Away Assente - Busy Occupato - Do not disturb Non disturbare - - Mute all notifications - Disattiva tutte le notifiche - - - Invisible Invisibile - - Appear offline - Appari non in linea + Mute all notifications + Disattiva tutte le notifiche - - Status message + Online + Online + + + Online status + Stato online + + + Status message Messaggio di stato Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - %n anno%n anni%n anni - - - - %n month(s) - %n mese%n mesi%n mesi - - - %n day(s) - %n giorno%n giorni%n giorni + + %n giorno + %n giorni + - %n hour(s) - %n ora%n ore%n ore + + %n ora + %n ore + - %n minute(s) - %n minuto%n minuti%n minuti + + %n minuto + %n minuti + - - %n second(s) - %n secondo%n secondi%n secondi - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - L'intestazione del codice di controllo non è valida. - - - - The checksum header contained an unknown checksum type "%1" - L'intestazione di controllo conteneva un tipo di codice di controllo "%1" sconosciuto - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - Il file scaricato non verifica il codice di controllo, sarà ripristinato. "%1" != "%2" - - - - main.cpp - - - System Tray not available - Il vassoio di sistema non è disponibile - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 richiede un vassoio di sistema. Se stai usando XFCE, segui <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">queste istruzioni</a>. Altrimenti, installa un'applicazione vassoio di sistema come "trayer" e riprova. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Realizzato dalla revisione Git <a href="%1">%2</a> su %3, %4 usando Qt %5, %6</small></p> - - - - progress - - - Virtual file created - File virtuale creato - - - - Replaced by virtual file - Sostituito da file virtuale - - - - Downloaded - Scaricato - - - - Uploaded - Caricato - - - - Server version downloaded, copied changed local file into conflict file - Versione del server scaricata, il file locale modificato è stato copiato come file di conflitto - - - - Server version downloaded, copied changed local file into case conflict conflict file - Versione del server scaricata, copiato file locale modificato nel file di conflitto di maiuscole/minuscole - - - - Deleted - Eliminato - - - - Moved to %1 - Spostato in %1 - - - - Ignored - Ignorato - - - - Filesystem access error - Errore di accesso al filesystem - - - - - Error - Errore - - - - Updated local metadata - Metadati locali aggiornati - - - - Updated local virtual files metadata - Metadati dei file virtuali locali aggiornati - - - - Updated end-to-end encryption metadata - Metadati di crittografia end-to-end aggiornati - - - - - Unknown - Sconosciuto - - - - Downloading - Scaricamento - - - - Uploading - Caricamento - - - - Deleting - Eliminazione - - - - Moving - Spostamento - - - - Ignoring - Ignorare - - - - Updating local metadata - Aggiornamento dei metadati locali + %n month(s) + + %n mese + %n mesi + - - - Updating local virtual files metadata - Aggiornamento dei metadati dei file virtuali locali + + %n second(s) + + %n secondo + %n secondi + - - - Updating end-to-end encryption metadata - Aggiornamento dei metadati di crittografia end-to-end + + %n year(s) + + %n anno + %n anni + - + - theme - - - Sync status is unknown - Lo stato di sincronizzazione è sconosciuto - - - - Waiting to start syncing - In attesa di iniziare la sincronizzazione - - - - Sync is running - La sincronizzazione è in corso - - - - Sync was successful - Sincronizzazione riuscita - - - - Sync was successful but some files were ignored - La sincronizzazione è riuscita ma alcuni file sono stati ignorati - - - - Error occurred during sync - Si è verificato un errore durante la sincronizzazione - - - - Error occurred during setup - Si è verificato un errore durante l'installazione - - - - Stopping sync - Interruzione della sincronizzazione - + utility - - Preparing to sync - Preparazione della sincronizzazione + Always available locally + Sempre disponibile localmente - - Sync is paused - La sincronizzazione è sospesa + Available online only + Disponibile solo in linea - - - utility - Could not open browser Impossibile aprire il browser - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Si è verificato un errore durante l'avvio del browser per raggiungere l'URL %1. Forse non hai configurato un browser predefinito? - - - Could not open email client Impossibile aprire il client di posta - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Si è verificato un errore durante l'avvio del client di posta per creare un nuovo messaggio. Forse non hai ancora configurato alcun client di posta predefinito? - - - - Always available locally - Sempre disponibile localmente - - - Currently available locally Attualmente disponibile localmente - - Some available online only - Alcuni disponibili solo in linea - - - - Available online only - Disponibile solo in linea - - - - Make always available locally - Rendi sempre disponibile localmente - - - Free up local space Libera spazio locale - - - FileProviderEvictionDialog - - - Remove local copies - Rimuovi copie locali - - - - Local copies - Copie locali - - - - Reload - Ricarica + + Make always available locally + Rendi sempre disponibile localmente - - - FileProviderStorageInfo - - Local storage use - Utilizzo del disco locale + Some available online only + Alcuni disponibili solo in linea - - %1 GB of %2 GB remote files synced - %1 GB di %2 GB file remoti sincronizzati + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Si è verificato un errore durante l'avvio del browser per raggiungere l'URL %1. Forse non hai configurato un browser predefinito? - - Free up space … - Liberare spazio … + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Si è verificato un errore durante l'avvio del client di posta per creare un nuovo messaggio. Forse non hai ancora configurato alcun client di posta predefinito? - + - FileProviderSyncStatus - - - Syncing - Sincronizzazione - + ValidateChecksumHeader - - All synced! - Tutto sincronizzato! + The checksum header contained an unknown checksum type "%1" + L'intestazione di controllo conteneva un tipo di codice di controllo "%1" sconosciuto - - Request sync - Richiesta di sincronizzazione + The checksum header is malformed. + L'intestazione del codice di controllo non è valida. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Richiedi una sincronizzazione delle modifiche per l'ambiente VFS. -macOS potrebbe ignorare o ritardare questa richiesta. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + Il file scaricato non verifica il codice di controllo, sarà ripristinato. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_nl.ts b/translations/client_nl.ts index be5ff322e9bbf..10f5682aa0a1a 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - %1 lokaal openen - - - In %1 In %1 - + + Open %1 locally + %1 lokaal openen + + ActivityItemContent - - Open file details - Bestandsdetails openen - - - - File details - Bestandsdetails - - - - File actions - Bestandsacties - - - Dismiss Negeren - + + Open file details + Bestandsdetails openen + + ActivityList - Activity list Activiteitenlijst - - Scroll to top - Naar boven schuiven - - - No activities yet Nog geen activiteiten - + + Scroll to top + Naar boven schuiven + + CallNotificationDialog - - Talk notification caller avatar - Talk notificatie beller avatar - - - Answer Talk call notification Beantwoord Talk oproepmelding - Decline Afwijzen - Decline Talk call notification Wijs Talk oproepmelding af - + + Talk notification caller avatar + Talk notificatie beller avatar + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Controleren op wijzigingen in '%1' - - Syncing %1 of %2 (%3 left) - Synchroniseer %1 van %2 (%3 over) - - - - Syncing %1 of %2 - Synchroniseren %1 van %2 - - - - Syncing %1 (%2 left) - Synchroniseren %1 (%2 over) + Help + Help - - Syncing %1 - Synchroniseren %1 + Log out + Uitloggen - - No recently changed files Geen recent gewijzigde bestanden - - Sync paused - Synchroniseren gepauzeerd - - - - Syncing - Synchroniseren - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop - Open in browser Open in browser - - Recently changed - Recent gewijzigd - - - Pause synchronization Pauzeer synchronisatie - - Help - Help + Quit sync client + Afsluiten synchronisatieclient + + + Recently changed + Recent gewijzigd - Settings Instellingen - - Log out - Uitloggen + Sync paused + Synchroniseren gepauzeerd - - Quit sync client - Afsluiten synchronisatieclient + Syncing + Synchroniseren - + + Syncing %1 + Synchroniseren %1 + + + Syncing %1 (%2 left) + Synchroniseren %1 (%2 over) + + + Syncing %1 of %2 + Synchroniseren %1 van %2 + + + Syncing %1 of %2 (%3 left) + + + ConflictDelegate - Local version Lokale versie - Server version Server versie @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Huidige gebruiker - - - - - Resume sync for all - Synchronisatie hervatten voor alles - - - - - Pause sync for all - Synchronisatie pauzeren voor alles + Account switcher and settings menu + Wisselen van gebruiker en instellingsmenu - - + Add account Gebruiker toevoegen - Add new account Nieuwe gebruiker toevoegen - - Settings - Instellingen - - - - Exit - Verlaat + Current account + Huidige gebruiker - Current account avatar Huidige gebruiker avatar - + Current account status is do not disturb + Huidige gebruikersstatus is Niet Storen + + Current account status is online Huidige gebruikersstatus is Online - - Current account status is do not disturb - Huidige gebruikersstatus is Niet Storen + Exit + Verlaat - - Account switcher and settings menu - Wisselen van gebruiker en instellingsmenu + Pause sync for all + Synchronisatie pauzeren voor alles - + + Resume sync for all + Synchronisatie hervatten voor alles + + + Settings + Instellingen + + EditFileLocallyLoadingDialog - Opening file for local editing Bestand openen voor lokaal bewerken @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis Geen recente emojis @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token De certificaten ontdekken die op je USB-token zijn opgeslagen @@ -266,44 +210,42 @@ ErrorBox - Error Fout - - FileActionsWindow - - - File actions for %1 - - - FileDetailsPage - - Activity - Activiteit - - - - Sharing - Delen + Dismiss + FileDetailsWindow - File details of %1 · %2 Bestandseigenschappen van %1 · %2 + + FileProviderEvictionDialog + + Local copies + Lokale kopieën + + + Reload + Herlaad + + + Remove local copies + Verwijder lokale kopieën + + FileProviderFileDelegate - Delete Verwijder @@ -311,755 +253,599 @@ FileProviderSettings - - Virtual files settings - Virtuele bestandsinstellingen + Enable virtual files + Virtuele bestanden inschakelen - General settings Algemene instellingen - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - + Reset virtual files environment + + + + Virtual files settings + Virtuele bestandsinstellingen + + + FileProviderStorageInfo - - Enable virtual files - Virtuele bestanden inschakelen + %1 GB of %2 GB remote files synced + %1 GB van %2 GB remote bestanden gesychroniseerd - - Reset virtual files environment - + Free up space … + Maak ruimte ... - + + Local storage use + Gebruik lokale opslag + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Fout bij verwijderen '%1': %2 + All synced! + Alles gesynchroniseerd! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Vraag een synchronisatie van wijzigingen voor de VFS-omgeving aan. +macOS kan dit verzoek negeren of uitstellen. + + + Request sync + Vraag synchronisatie aan + + + Syncing + Synchroniseren + + + FileSystem - Could not remove folder "%1" Kan map "%1" niet verwijderen - + + Error removing "%1": %2 + Fout bij verwijderen '%1': %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Er is een fout opgetreden tijdens het verbinden. Probeer het opnieuw. + + Browser Authentication Browserauthenticatie - + Copy Link + Kopiëren link + + Logo Logo - Switch to your browser to connect your account Schakel over naar je browser om je account te verbinden + + + FolderWizardSelectiveSync - - An error occurred while connecting. Please try again. - Er is een fout opgetreden tijdens het verbinden. Probeer het opnieuw. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Kies een map op je computer om te synchroniseren + &Choose + + + + Add Folder Sync + - - &Choose … - &Kies ... + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Kies een externe doelmap + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Maak map - + Folders + Mappen + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Vernieuwen - - Folders - Mappen + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content - + - - Issue with account %1 - Probleem met account %1 + New activities + - - - Issues with several accounts - Problemen met diverse accounts + + Unified search results list + + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Start nieuwe conversatie? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Gebouwd vanaf Git revisie <a href="%1">%2</a> op %3, %4 gebruik makend van Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - Nieuwe conversatie + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + - - Cancel - Annuleren + The server enforces strict transport security and does not accept untrusted certificates. + - - - This will clear the existing conversation. - + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + + + + OCC::Account - - Ask Assistant … - + File %1 is already locked by %2. + Bestand %1 is al vergrendeld door %2. - - Ask Assistant… - + Lock operation on %1 failed with error %2 + Vergrendeling van %1 mislukt met fout %2 - - Send assistant question - + Public Share Link + - - Start a new assistant chat - + Unlock operation on %1 failed with error %2 + Ontgrendeling van %1 mislukt met fout %2 + + + OCC::AccountManager - - Unified search results list - + An account was detected from a legacy desktop client. +Should the account be imported? + - - New activities - + Could not import accounts from legacy client configuration. + Kon geen accounts importeren van legacy client configuratie. - + + Import + Import + + + Legacy import + Legacy import + + + Skip + Overslaan + + - OCC::AbstractNetworkJob + OCC::AccountSettings - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) van %2 in gebruik. Sommige mappen, inclusief netwerkmappen en gedeelde mappen, kunnen andere limieten hebben. - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + %1 as %2 + %1 als %2 - - The server enforces strict transport security and does not accept untrusted certificates. - + %1 in use + %1 in gebruik - - - OCC::Account - - Public Share Link - + %1 of %2 in use + %1 van %2 in gebruik - - File %1 is already locked by %2. - Bestand %1 is al vergrendeld door %2. + (experimental) + (experimenteel) - - Lock operation on %1 failed with error %2 - Vergrendeling van %1 mislukt met fout %2 + <p>Could not create local folder <i>%1</i>.</p> + <p>Kan lokale map <i>%1</i> niet maken.</p> - - Unlock operation on %1 failed with error %2 - Ontgrendeling van %1 mislukt met fout %2 + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Weet je zeker dat je het synchroniseren van map <i>%1</i> wilt stoppen?</p><p><b>Opmerking:</b> Dit zal <b>geen</b> bestanden verwijderen.</p> - - - OCC::AccountManager - - An account was detected from a legacy desktop client. -Should the account be imported? - + Apply + Toepassen - - - Legacy import - Legacy import + Apply manual changes + Handmatige wijzigingen toepassen - - Import - Import + Availability + Beschikbaarheid - - Skip - Overslaan + Cancel + Annuleren - - Could not import accounts from legacy client configuration. - Kon geen accounts importeren van legacy client configuratie. + Choose what to sync + Kies wat je wilt synchroniseren - - - OCC::AccountSettings - - Virtual files - + Confirm Folder Sync Connection Removal + Bevestig het verwijderen van de verbinding voor mapsynchronisatie - - Classic sync - + Connected to %1. + Verbonden met %1. - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Niet-geselecteerde mappen worden <b>verwijderd</b> van je lokale bestandssysteem en zullen niet meer met deze computer worden gesynchroniseerd + Connected with <server> as <user> + Verbonden met <server> als <user> - - Storage space: … - Opslagruimte: ... + Connecting to %1 … + Verbinden met %1 ... - - Synchronize all - Alles synchroniseren + Connection settings + Verbindingsinstellingen - - Synchronize none - Niets synchroniseren + Could not encrypt folder because the folder does not exist anymore + Kon map niet versleutelen omdat de map niet meer bestaat - - Apply manual changes - Handmatige wijzigingen toepassen + Create new folder + Maak nieuwe map aan - - Standard file sync - Standaard bestandssynchronisatie + Currently there is no storage usage information available. + Er is nu geen informatie over het gebruik van de opslagruimte beschikbaar. - - Virtual file sync - Virtuele bestandssynchronisatie + Disable support + Ondersteuning uitschakelen - - Connection settings - Verbindingsinstellingen + Disable virtual file support … + Ondersteuning voor virtuele bestanden uitschakelen... - - Apply - Toepassen + Disable virtual file support? + Ondersteuning voor virtuele bestanden uitschakelen? - - - - Cancel - Annuleren + Display mnemonic + Geheugensteun weergeven - - Connected with <server> as <user> - Verbonden met <server> als <user> + Do not encrypt folder + Map niet versleutelen - - No account configured. - Geen account ingesteld. + Do you want to forget the end-to-end encryption settings for %1 on this device? + - - End-to-end Encryption with Virtual Files - End-to-end versleuteling met virtuele bestanden + Edit Ignored Files + Genegeerde bestanden bewerken - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Het lijkt erop dat de functie Virtuele bestanden voor deze map is ingeschakeld. Momenteel is het niet mogelijk om impliciet virtuele bestanden te downloaden die begin-tot-eind versleuteld zijn. Om de beste ervaring met virtuele bestanden en begin-tot-eind versleuteling te krijgen, moet je ervoor zorgen dat de versleutelde map is gemarkeerd met "Altijd lokaal beschikbaar maken". + Enable virtual file support %1 … + Virtuele bestandsondersteuning inschakelen %1... - - - Do not encrypt folder - Map niet versleutelen + Encrypt + Versleutelen - - Encrypt folder Versleutel map - - End-to-end Encryption - Begin-tot-eind versleuteling + Encryption failed + Versleuteling mislukt - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Dit versleutelt je map en alle bestanden in de map. Deze bestanden zijn niet langer toegankelijk zonder je geheugensteunsleutel. -<b>Deze actie is onomkeerbaar. Weet je het zeker?</b> + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + - - End-to-end encryption has not been initialized on this account. - + End-to-end Encryption + Begin-tot-eind versleuteling - - Forget encryption setup - + End-to-end Encryption with Virtual Files + End-to-end versleuteling met virtuele bestanden - - Display mnemonic - Geheugensteun weergeven + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - + End-to-end encryption has not been initialized on this account. + - - Warning - Waarschuwing + End-to-end encryption mnemonic + Geheugensteun voor begin-tot-eind versleuteling - - Please wait for the folder to sync before trying to encrypt it. - Wacht tot de map gesynchroniseerd is alvorens deze te versleutelen. + Expand Memory + + + + Folder creation failed + Map maken mislukt - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - De map heeft een klein synchronisatieprobleem. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. + Force sync now + Synchronisatie nu forceren - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - De map heeft een synchronisatiefout. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. + Forget encryption setup + - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - + Forget the end-to-end encryption on this device + - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - Je kunt een map met inhoud niet versleutelen, verwijder de bestanden. Wacht op de nieuwe synchronisatie en versleutel ze vervolgens. + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + - - Encryption failed - Versleuteling mislukt + Migrate certificate to a new one + - - Could not encrypt folder because the folder does not exist anymore - Kon map niet versleutelen omdat de map niet meer bestaat + No %1 connection configured. + Geen %1 connectie geconfigureerd. - - Encrypt - Versleutelen + No account configured. + Geen account ingesteld. - - - Edit Ignored Files - Genegeerde bestanden bewerken + Open folder + Map openen - - - Create new folder - Maak nieuwe map aan + Pause sync + Synchronisatie pauzeren - - - Availability - Beschikbaarheid + Please wait for the folder to sync before trying to encrypt it. + Wacht tot de map gesynchroniseerd is alvorens deze te versleutelen. - - Choose what to sync - Kies wat je wilt synchroniseren + Remove Folder Sync Connection + Verwijder verbinding voor mapsynchronisatie - - Force sync now - Synchronisatie nu forceren + Remove folder sync connection + Verwijder verbinding voor mapsynchronisatie - Restart sync Synchronisatie herstarten - - Remove folder sync connection - Verwijder verbinding voor mapsynchronisatie + Resume sync + Synchronisatie hervatten - - Disable virtual file support … - Ondersteuning voor virtuele bestanden uitschakelen... + Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 wordt momenteel doorgestuurd of je verbinding zit achter een 'captive portal'. - - Enable virtual file support %1 … - Virtuele bestandsondersteuning inschakelen %1... + Server %1 is currently in maintenance mode. + Server %1 is momenteel in onderhoudsmodus. - - (experimental) - (experimenteel) + Server %1 is temporarily unavailable. + Server %1 is tijdelijk niet beschikbaar. - - Folder creation failed - Map maken mislukt + Server configuration error: %1 at %2. + Serverconfiguratiefout: %1 op %2. - - Confirm Folder Sync Connection Removal - Bevestig het verwijderen van de verbinding voor mapsynchronisatie + Set up encryption + Versleuteling instellen - - Remove Folder Sync Connection - Verwijder verbinding voor mapsynchronisatie + Signed out from %1. + Uitgelogd van %1. - - Grant access to sync folder - + Standard file sync + Standaard bestandssynchronisatie - - Access Error - Toegangsfout + Storage space %1% occupied + - - Could not acquire access to the selected folder. Please try again. - + Storage space: … + Opslagruimte: ... - - Wrong Folder - Verkeerde Map + Sync Running + Bezig met synchroniseren - - Please select the original sync folder: %1 - + Synchronize all + Alles synchroniseren - - - Bookmark Error - + Synchronize none + Niets synchroniseren - - Could not create a security bookmark for the folder. Please try again. - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + De map heeft een klein synchronisatieprobleem. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. - - Could not resolve the security bookmark. Please try again. - + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + De map heeft een synchronisatiefout. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. - - Disable virtual file support? - Ondersteuning voor virtuele bestanden uitschakelen? + The server version %1 is unsupported! Proceed at your own risk. + De serverversie %1 wordt niet ondersteund! Verdergaan is op eigen risico. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Deze actie schakelt ondersteuning voor virtuele bestanden uit. Hierdoor zullen de mappen, die gemarkeerd zijn als "alleen online beschikbaar", gedownload worden. - -Het enige voordeel van het uitschakelen van ondersteuning voor virtuele bestanden, is dat de optie voor selectieve synchronisatie weer beschikbaar komt. - -Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. - - - - Disable support - Ondersteuning uitschakelen - - - - End-to-end encryption mnemonic - Geheugensteun voor begin-tot-eind versleuteling - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - - - - - Forget the end-to-end encryption on this device - - - - - Do you want to forget the end-to-end encryption settings for %1 on this device? - - - - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - - - - - Sync Running - Bezig met synchroniseren - - - The syncing operation is running.<br/>Do you want to terminate it? Bezig met synchroniseren.<br/>Wil je stoppen met synchroniseren? - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) van %2 in gebruik. Sommige mappen, inclusief netwerkmappen en gedeelde mappen, kunnen andere limieten hebben. - - - - Currently there is no storage usage information available. - Er is nu geen informatie over het gebruik van de opslagruimte beschikbaar. - - - - %1 in use - %1 in gebruik - - - - Connected to %1 (%2). - - - - - Migrate certificate to a new one - - - - There are folders that have grown in size beyond %1MB: %2 Er zijn bestanden die groter zijn geworden dan %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - - - - - This account supports end-to-end encryption, but it needs to be set up first. - - - - - The virtual files integration does not support end-to-end encryption yet. - - - - - Set up encryption - Versleuteling instellen - - - - Connected to %1. - Verbonden met %1. - - - - Server %1 is temporarily unavailable. - Server %1 is tijdelijk niet beschikbaar. - - - - Server %1 is currently in maintenance mode. - Server %1 is momenteel in onderhoudsmodus. - - - - Signed out from %1. - Uitgelogd van %1. - - - - There are folders that were not synchronized because they are too big: - Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn: - - - - There are folders that were not synchronized because they are external storages: - Er zijn mappen die niet gesynchroniseerd zijn, omdat ze op externe opslag staan: - - - - There are folders that were not synchronized because they are too big or external storages: - Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn of op externe opslag staan: + There are folders that were not synchronized because they are external storages: + - - - Open folder - Map openen + There are folders that were not synchronized because they are too big or external storages: + - - Resume sync - Synchronisatie hervatten + There are folders that were not synchronized because they are too big: + - - Pause sync - Synchronisatie pauzeren + This account supports end-to-end encryption, but it needs to be set up first. + - - <p>Could not create local folder <i>%1</i>.</p> - <p>Kan lokale map <i>%1</i> niet maken.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Deze actie schakelt ondersteuning voor virtuele bestanden uit. Hierdoor zullen de mappen, die gemarkeerd zijn als "alleen online beschikbaar", gedownload worden. + +Het enige voordeel van het uitschakelen van ondersteuning voor virtuele bestanden, is dat de optie voor selectieve synchronisatie weer beschikbaar komt. + +Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Weet je zeker dat je het synchroniseren van map <i>%1</i> wilt stoppen?</p><p><b>Opmerking:</b> Dit zal <b>geen</b> bestanden verwijderen.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Dit versleutelt je map en alle bestanden in de map. Deze bestanden zijn niet langer toegankelijk zonder je geheugensteunsleutel. +<b>Deze actie is onomkeerbaar. Weet je het zeker?</b> - - %1 of %2 in use - %1 van %2 in gebruik + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + - - %1 as %2 - %1 als %2 + Unable to connect to %1. + Kan niet verbinden met %1. - - The server version %1 is unsupported! Proceed at your own risk. - De serverversie %1 wordt niet ondersteund! Verdergaan is op eigen risico. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Niet-geselecteerde mappen worden <b>verwijderd</b> van je lokale bestandssysteem en zullen niet meer met deze computer worden gesynchroniseerd - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Server %1 wordt momenteel doorgestuurd of je verbinding zit achter een 'captive portal'. + Virtual file sync + Virtuele bestandssynchronisatie - - Connecting to %1 … - Verbinden met %1 ... + Warning + Waarschuwing - - Unable to connect to %1. - Kan niet verbinden met %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + Je kunt een map met inhoud niet versleutelen, verwijder de bestanden. Wacht op de nieuwe synchronisatie en versleutel ze vervolgens. - - Server configuration error: %1 at %2. - Serverconfiguratiefout: %1 op %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + - You need to accept the terms of service at %1. - + - - No %1 connection configured. - Geen %1 connectie geconfigureerd. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Het lijkt erop dat de functie Virtuele bestanden voor deze map is ingeschakeld. Momenteel is het niet mogelijk om impliciet virtuele bestanden te downloaden die begin-tot-eind versleuteld zijn. Om de beste ervaring met virtuele bestanden en begin-tot-eind versleuteling te krijgen, moet je ervoor zorgen dat de versleutelde map is gemarkeerd met "Altijd lokaal beschikbaar maken". - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - De geverifieerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Toegang door server verboden. Om te verifiëren dat je toegang mag hebben, <a href="%1">klik hier</a> om met je browser toegang tot de service te krijgen. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + De geverifieerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. + + There was an invalid response to an authenticated WebDAV request Er is een ongeldig antwoord ontvangen op een geverifieerde WebDAV aanvraag @@ -1067,57 +853,46 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::AccountState - - Signed out - Afgemeld + Asking Credentials + Vragen naar inloggegevens - - Disconnected - Niet verbonden + Configuration error + Configuratiefout - Connected Verbonden - - Service unavailable - Dienst niet beschikbaar + Disconnected + Niet verbonden - Maintenance mode Onderhoudsmodus - - Redirect detected - Redirect waargenomen + Need the user to accept the terms of service + - Network error Netwerkfout - - Configuration error - Configuratiefout + Redirect detected + Redirect waargenomen - - Asking Credentials - Vragen naar inloggegevens + Service unavailable + Dienst niet beschikbaar - - Need the user to accept the terms of service - + Signed out + Afgemeld - Unknown account state Onbekende account-status @@ -1125,17 +900,14 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::ActivityListModel - - For more activities please open the Activity app. - Voor meer activiteiten open de Activiteit app. - - - Fetching activities … Ophalen activiteiten... - + For more activities please open the Activity app. + Voor meer activiteiten open de Activiteit app. + + Network error occurred: client will retry syncing. Netwerkfout opgetreden: cliënt probeert synchronisatie opnieuw. @@ -1143,168 +915,134 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::AddCertificateDialog - - SSL client certificate authentication - SSL client certificaat authenticatie + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Een versleutelde pkcs12-bundel wordt sterk aanbevolen, aangezien er een kopie wordt opgeslagen in het configuratiebestand. - - This server probably requires a SSL client certificate. - De server vereist vermoedelijk een SSL client certificaat. + Browse … + Bladeren ... - Certificate & Key (pkcs12): Certificaat & Sleutel (pkcs12): - + Certificate files (*.p12 *.pfx) + Certificaat bestanden (*.p12 *.pfx) + + Certificate password: Wachtwoord certificaat: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Een versleutelde pkcs12-bundel wordt sterk aanbevolen, aangezien er een kopie wordt opgeslagen in het configuratiebestand. - - - - Browse … - Bladeren ... + SSL client certificate authentication + SSL client certificaat authenticatie - Select a certificate Selecteer een certificaat - - Certificate files (*.p12 *.pfx) - Certificaat bestanden (*.p12 *.pfx) - - - - Could not access the selected certificate file. - + This server probably requires a SSL client certificate. + De server vereist vermoedelijk een SSL client certificaat. - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Sommige instellingen zijn geconfigureerd in nieuwere versies van deze cliënt en maken gebruik van functies die niet beschikbaar zijn in deze versie.<br><br>Doorgaan betekent <br>%2 van deze instellingen</br>. Van het huidige configuratiebestand is al een back-up gemaakt naar <i>%3</i>. - - - - newer - newer software version - recenter - - - - older - older software version - ouder + %1 accounts + number of accounts imported + %1 accounts - - ignoring - negeren + %1 folders + number of folders imported + %1 mappen - - deleting - verwijderen + 1 account + 1 account - - Quit - Stoppen + 1 folder + 1 map - Continue Doorgaan - - %1 accounts - number of accounts imported - %1 accounts + Error accessing the configuration file + Fout bij benaderen configuratiebestand - - 1 account - 1 account + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + %1 and %2 geïmporteerd van een legacy desktop client. +%3 - - %1 folders - number of folders imported - %1 mappen + Legacy import + Legacy import - - 1 folder - 1 map + Quit + Stoppen - - Legacy import - Legacy import + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Sommige instellingen zijn geconfigureerd in nieuwere versies van deze cliënt en maken gebruik van functies die niet beschikbaar zijn in deze versie.<br><br>Doorgaan betekent <br>%2 van deze instellingen</br>. Van het huidige configuratiebestand is al een back-up gemaakt naar <i>%3</i>. - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - %1 and %2 geïmporteerd van een legacy desktop client. -%3 + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. + Fout bij het benaderen van het configuratiebestand op %1. Zorg ervoor dat het bestand door je systeemaccount kan worden benaderd. + + + deleting + verwijderen - - Error accessing the configuration file - Fout bij benaderen configuratiebestand + ignoring + negeren - - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. - Fout bij het benaderen van het configuratiebestand op %1. Zorg ervoor dat het bestand door je systeemaccount kan worden benaderd. + newer + newer software version + recenter - + + older + older software version + ouder + + OCC::AuthenticationDialog - + &Password: + &Wachtwoord: + + + &Username: + &Gebruikersnaam: + + Authentication Required Authenticatie vereist - Enter username and password for "%1" at %2. Geef gebruikersnaam en wachtwoord op voor "%1" bij %2. - - - &Username: - &Gebruikersnaam: - - - - &Password: - &Wachtwoord: - - + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 kon versleutelde map %2" niet ontgrendelen. - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". @@ -1312,245 +1050,195 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Fout bij bijwerken metadata: %1 + + File %1 can not be downloaded because of a local file name clash! - + - + The file %1 is currently in use + + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - - - - - The file %1 is currently in use - + Fout bij bijwerken metadata: %1 - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Bestand %1 kan niet worden geüpload omdat er al een ander bestand met dezelfde naam bestaat, al verschillen hoofd/kleine letters - - File contains leading or trailing spaces and couldn't be renamed - + File %1 has invalid modification time. Do not upload to the server. + Bestand %1 heeft een ongeldige laatste wijziging datum. Upload niet naar de server. - File %1 has invalid modified time. Do not upload to the server. Bestand %1 heeft een ongeldige wijzigingstijd. Niet uploaden naar de server. - File Removed (start upload) %1 Bestand verwijderd (start upload) %1 - - File %1 has invalid modification time. Do not upload to the server. - Bestand %1 heeft een ongeldige laatste wijziging datum. Upload niet naar de server. - - - - Local file changed during syncing. It will be resumed. - Lokaal bestand gewijzigd gedurende synchronisatie. Wordt opnieuw meegenomen. + File contains leading or trailing spaces and couldn't be renamed + - - Local file changed during sync. Lokaal bestand gewijzigd tijdens synchronisatie. - + Local file changed during syncing. It will be resumed. + Lokaal bestand gewijzigd gedurende synchronisatie. Wordt opnieuw meegenomen. + + Network error: %1 Netwerkfout: %1 - - Error updating metadata: %1 - Fout bij bijwerken metadata: %1 + Restoration failed: %1 + Herstellen mislukt: %1 - - + The file %1 is currently in use Bestand %1 is momenteel in gebruik - The local file was removed during sync. Het lokale bestand werd verwijderd tijdens synchronisatie. - - - Restoration failed: %1 - Herstellen mislukt: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Kan het bestand niet hernoemen omdat er al een bestand met dezelfde naam op de server bestaat. Kies een andere naam. - Could not rename file. Please make sure you are connected to the server. Kan het bestand niet hernoemen. Zorg dat je verbonden bent met de server. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. - - - Failed to fetch permissions with error %1 Ophalen van machtigingen mislukt met fout %1 - Filename contains leading and trailing spaces. De bestandsnaam bevat spaties vooraan en achteraan. - Filename contains leading spaces. De bestandsnaam bevat spaties vooraan. - Filename contains trailing spaces. De bestandsnaam bevat spaties achteraan. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 ondersteund geen overeenkomstige bestandsnamen met verschil in hoofdlettergebruik. + + + 0 byte + 0 bytes + + Case Clash Conflict Conflict in hoofdlettergebruik - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - Dit bestand kon niet worden gesynchroniseerd omdat er een conflict is in hoofdlettergebruik. + Case clashing file + Bestand met conflict in hoofdlettergebruik - Error Fout - Existing file Bestaand bestand - - file A - bestand A - - - - - today - vandaag + Filename contains illegal characters: %1 + Bestandsnaam bevat ongeldige tekens: %1 - - - - 0 byte - 0 bytes + + Filename contains leading and trailing spaces. + De bestandsnaam bevat spaties vooraan en achteraan. - - - Open existing file - Open bestaand bestand + Filename contains leading spaces. + De bestandsnaam bevat spaties vooraan. - - Case clashing file - Bestand met conflict in hoofdlettergebruik + Filename contains trailing spaces. + De bestandsnaam bevat spaties achteraan. - - file B - bestand B + New filename + Nieuwe bestandsnaam - - Open clashing file Open bestand met conflict - - Please enter a new name for the clashing file: - Voer alsjeblieft een nieuwe naam in voor het bestand met het conflict: + Open existing file + Open bestaand bestand - - New filename - Nieuwe bestandsnaam + Please enter a new name for the clashing file: + Voer alsjeblieft een nieuwe naam in voor het bestand met het conflict: - Rename file Bestand hernoemen - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. Het bestand %1 kan niet worden gesynchroniseerd vanwege een conflict in hoofdlettergebruik met een bestaand bestand op dit systeem. - - %1 does not support equal file names with only letter casing differences. - %1 ondersteund geen overeenkomstige bestandsnamen met verschil in hoofdlettergebruik. - - - - Filename contains leading and trailing spaces. - De bestandsnaam bevat spaties vooraan en achteraan. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Dit bestand kon niet worden gesynchroniseerd omdat er een conflict is in hoofdlettergebruik. - - Filename contains leading spaces. - De bestandsnaam bevat spaties vooraan. + Use invalid name + Gebruik ongeldige naam - - Filename contains trailing spaces. - De bestandsnaam bevat spaties achteraan. + file A + bestand A - - Use invalid name - Gebruik ongeldige naam + file B + bestand B - - Filename contains illegal characters: %1 - Bestandsnaam bevat ongeldige tekens: %1 + today + vandaag - + OCC::CleanupPollsJob - Error writing metadata to the database Fout bij schrijven van metadata naar de database @@ -1558,136 +1246,117 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - + Enter Certificate USB Token PIN: + - - Enter Certificate USB Token PIN: - + Enter E2E passphrase + Invoeren E2E wachtwoord + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + - Invalid PIN. Login failed Ongeldige PIN. Login mislukt. - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! - + - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Voer je begin-tot-eind versleutelingswachtwoord in: <br><br>Gebruiker: %2<br>Account: %3<br> - - - Enter E2E passphrase - Invoeren E2E wachtwoord - - + OCC::ConflictDialog - - Sync Conflict - Synchronisatieconflict - - - - - Conflicting versions of %1. - Conflicterende versies van %1. + 0 byte + 0 bytes - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Welke versie van het bestand wil je bewaren? <br/>Als je beide versies selecteert, wordt er een getal achter de bestandsnaam van het lokale bestand gezet. + <a href="%1">Open local version</a> + <a href="%1">Open lokale versie</a> - - Local version - Lokale versie + <a href="%1">Open server version</a> + <a href="%1">Open serverversie</a> - - Click to open the file Klik om het bestand te openen - - - today - vandaag + Conflicting versions of %1. + Conflicterende versies van %1. - - - 0 byte - 0 bytes + Keep both versions + Bewaar beide versies - - <a href="%1">Open local version</a> - <a href="%1">Open lokale versie</a> + Keep local version + Bewaar lokale versie - - Server version - Serverversie + Keep selected version + Bewaar geselecteerde versie - - <a href="%1">Open server version</a> - <a href="%1">Open serverversie</a> + Keep server version + Bewaar serverversie - - - - Keep selected version - Bewaar geselecteerde versie + + Local version + Lokale versie - Open local version Open lokale versie - Open server version Open serverversie - - Keep both versions - Bewaar beide versies + Server version + Serverversie - - Keep local version - Bewaar lokale versie + Sync Conflict + Synchronisatieconflict - - Keep server version - Bewaar serverversie + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Welke versie van het bestand wil je bewaren? <br/>Als je beide versies selecteert, wordt er een getal achter de bestandsnaam van het lokale bestand gezet. - + + today + vandaag + + OCC::ConflictSolver - - + Confirm deletion + Bevestig verwijderen + + + Do you want to delete the directory <i>%1</i> and all its contents permanently? + Wil je de map <i>%1</i>met gehele inhoud permanent verwijderen? + + + Do you want to delete the file <i>%1</i> permanently? + Wil je het bestand <i>%1</i>permanent verwijderen? + + Error Fout - - Moving file failed: %1 @@ -1695,224 +1364,212 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. + + + OCC::ConnectionValidator - - Do you want to delete the directory <i>%1</i> and all its contents permanently? - Wil je de map <i>%1</i>met gehele inhoud permanent verwijderen? + Authentication error: Either username or password are wrong. + Authenticatiefout: Gebruikersnaam of wachtwoord onjuist. - - Do you want to delete the file <i>%1</i> permanently? - Wil je het bestand <i>%1</i>permanent verwijderen? + No %1 account configured + The placeholder will be the application name. Please keep it + - - Confirm deletion - Bevestig verwijderen + Please update to the latest server and restart the client. + Werk de server bij naar de nieuwste versie en herstart het programma. - - - OCC::ConnectionValidator - - No %1 account configured - The placeholder will be the application name. Please keep it - + The configured server for this client is too old + De voor dit programma ingestelde server is te oud - + The provided credentials are not correct + De verstrekte inloggegevens zijn niet juist + + Timeout Time-out + + + OCC::DataProtectionPage - - The configured server for this client is too old - De voor dit programma ingestelde server is te oud + Agree + - - Please update to the latest server and restart the client. - Werk de server bij naar de nieuwste versie en herstart het programma. + Form + Formulier - - Authentication error: Either username or password are wrong. - Authenticatiefout: Gebruikersnaam of wachtwoord onjuist. + Settings + Instellingen - - The provided credentials are not correct - De verstrekte inloggegevens zijn niet juist + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Fout bij het annuleren van verwijdering van een bestand + Back + - - Error while canceling deletion of %1 - Fout bij annuleren verwijderen van %1 + Form + Formulier + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! + Error while canceling deletion of %1 + Fout bij annuleren verwijderen van %1 - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + + Error while canceling deletion of a file + Fout bij het annuleren van verwijdering van een bestand + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Fout bij instellen versleutelde metadata! - Encrypted metadata setup error: initial signature from server is empty. - + + + + Server error: PROPFIND reply is not XML formatted! + Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! - - - OCC::DiscoverySingleLocalDirectoryJob - - Error while opening directory %1 - Fout bij het openen van map %1 + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Map niet toegankelijk op client, toegang geweigerd - Directory not found: %1 Map niet gevonden: %1 - - Filename encoding is not valid - Bestandsnaamcodering is niet geldig + Error while opening directory %1 + Fout bij het openen van map %1 - Error while reading directory %1 Fout tijdens lezen van map %1 - + + Filename encoding is not valid + Bestandsnaamcodering is niet geldig + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Kon lokaal bewerken niet starten. + An error occurred during data retrieval. + Er trad een fout op tijdens het ophalen van data. - - An error occurred during setup. Er trad een fout op bij het instellen. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is en dat het lokaal gesynchroniseerd is. + An error occurred trying to synchronise the file to edit locally. + Er trad een fout op bij de poging het bestand voor lokaal bewerken te synchroniseren. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het niet uitgesloten is door selectieve synchronisatie. - - - - An error occurred during data retrieval. - Er trad een fout op tijdens het ophalen van data. - - - - - An error occurred trying to synchronise the file to edit locally. - Er trad een fout op bij de poging het bestand voor lokaal bewerken te synchroniseren. - - - - Server error: PROPFIND reply is not XML formatted! - Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is en dat het lokaal gesynchroniseerd is. - Could not find a remote file info for local editing. Make sure its path is valid. Kon geen remote bestandsinformatie vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is. - - Invalid local file path. - Ongeldig lokaal bestandspad. - - - Could not open %1 Kon %1 niet openen - - Please try again. - Probeer a.u.b opnieuw + Could not start editing locally. + Kon lokaal bewerken niet starten. - File %1 already locked. Bestand %1 is al vergrendeld. - - + File %1 could not be locked. + Bestand %1 kon niet vergrendeld worden. + + + File %1 now locked. + Bestand %1 is nu vergrendeld. + + + Invalid local file path. + Ongeldig lokaal bestandspad. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Vergrendeling duurt %1 minuten. Als je klaar bent met verwerken, kan je het bestand ook handmatig ontgrendelen. - - File %1 now locked. - Bestand %1 is nu vergrendeld. + Please try again. + Probeer a.u.b opnieuw - - File %1 could not be locked. - Bestand %1 kon niet vergrendeld worden. + Server error: PROPFIND reply is not XML formatted! + Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Kon de aanvraag niet valideren voor het openen van een bestand op de server. - Please try again. Probeer a.u.b opnieuw @@ -1920,404 +1577,304 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. OCC::EditLocallyVerificationJob - - Invalid token received. - Ongeldig token ontvangen. - - - - - - Please try again. - Probeer a.u.b opnieuw - - - - Invalid file path was provided. - Ongeldig pad opgegeven. + An error occurred trying to verify the request to edit locally. + Er trad een fout op bij de aanvraag voor lokaal bewerken. - - + Could not find an account for local editing. Kon geen account vinden voor lokaal bewerken. - Could not start editing locally. Kon lokaal bewerken niet starten. - - An error occurred trying to verify the request to edit locally. - Er trad een fout op bij de aanvraag voor lokaal bewerken. + Invalid file path was provided. + Ongeldig pad opgegeven. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Kan de metadata voor versleuteling niet genereren, de map wordt ontgrendeld. -Dit kan een probleem zijn met je OpenSSL-bibliotheken. + Invalid token received. + Ongeldig token ontvangen. - + + Please try again. + Probeer a.u.b opnieuw + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Fout bij ophalen ID van versleutelde map. + + Error fetching metadata. Fout bij ophalen metadata: %1 - - - Error locking folder. Fout bij vergrendelen map. - - Error fetching encrypted folder ID. - Fout bij ophalen ID van versleutelde map. - - - Error parsing or decrypting metadata. Fout bij verwerken of ontsleutelen metadata. - Failed to upload metadata Kon metadata niet uploaden. - OCC::FileActionsModel - - - Your account is offline %1. - account url - - - - - The file ID is empty for %1. - file name - - - - - The file type for %1 is not valid. - file name - - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - - + OCC::EncryptFolderJob - - %1 done. - file action success message - + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Kan de metadata voor versleuteling niet genereren, de map wordt ontgrendeld. +Dit kan een probleem zijn met je OpenSSL-bibliotheken. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - %1 seconde geleden%1 seconden geleden - - - - %1 minute(s) ago - minutes elapsed since file last modified - %1 minuut geleden%1 minuten geleden + %1 day(s) ago + days elapsed since file last modified + + %1 dag geleden + %1 dagen geleden + - %1 hour(s) ago hours elapsed since file last modified - %1 uur geleden%1 uren geleden + + %1 uur geleden + %1 uren geleden + - - %1 day(s) ago - days elapsed since file last modified - %1 dag geleden%1 dagen geleden + %1 minute(s) ago + minutes elapsed since file last modified + + %1 minuut geleden + %1 minuten geleden + - %1 month(s) ago months elapsed since file last modified - %1 maand geleden%1 maanden geleden + + %1 maand geleden + %1 maanden geleden + + + + %1 second(s) ago + seconds elapsed since file last modified + + %1 seconde geleden + %1 seconden geleden + - %1 year(s) ago years elapsed since file last modified - %1 jaar geleden%1 jaren geleden + + %1 jaar geleden + %1 jaren geleden + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - + + + + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. De geretourneerde server-URL begint niet met HTTPS, ondanks dat de inlog-URL begint met HTTPS. Inloggen is niet mogelijk omdat dit een beveiligingsprobleem kan zijn. Neem contact op met je beheerder. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. - + - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. + + + + OCC::Flow2AuthWidget - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + Copy Link + Kopiëren link - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + Error + Fout - - - OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Kan de browser niet openen, kopieer de link naar je browser. + Link copied to clipboard. + Link gekopieerd naar het klembord. - - Waiting for authorization - Wachten op autorisatie + Open Browser + - Polling for authorization Controleren op autorisatie - Starting authorization Starten autorisatie - - Link copied to clipboard. - Link gekopieerd naar het klembord. + Switch to your browser to connect your account + Schakel over naar je browser om je account te verbinden - - - Open Browser - + + Unable to open the Browser, please copy the link to your Browser. + Kan de browser niet openen, kopieer de link naar je browser. - - Copy Link - Kopiëren link + Waiting for authorization + Wachten op autorisatie - + OCC::Folder - - - %1 has been removed. - %1 names a file. - %1 is verwijderd. + + %1 and %n other file(s) are currently locked. + + %1 en %n ander bestand zijn momenteel op slot. + %1 en %n ander(e) bestand(en) zijn momenteel op slot. + - - - %1 has been updated. - %1 names a file. - %1 is bijgewerkt. + + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 en %n ander bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details. + %1 en %n andere bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details. + - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 is hernoemd naar %2. - - - - %1 has been moved to %2. - %1 is verplaatst naar %2. + + %1 and %n other file(s) have been added. + + %1 en %n andere bestand zijn toegevoegd. + %1 en %n andere bestanden zijn toegevoegd. + - %1 and %n other file(s) have been removed. - + + + + - - - Please choose a different location. The folder %1 doesn't exist. - + + %1 and %n other file(s) have been updated. + + %1 en %n ander bestand(en) zijn bijgewerkt. + %1 en %n andere bestand(en) zijn bijgewerkt. + - - Please choose a different location. %1 isn't a valid folder. - + %1 could not be synced due to an error. See the log for details. + %1 kon niet worden gesynchroniseerd door een fout. Bekijk het log voor details. - - Please choose a different location. %1 isn't a readable folder. - + %1 has a sync conflict. Please check the conflict file! + %1 heeft een synchronisatie-conflict. Controleer het conflictbestand! - - %1 and %n other file(s) have been added. - %1 en %n andere bestand zijn toegevoegd.%1 en %n andere bestanden zijn toegevoegd. + %1 has and %n other file(s) have sync conflicts. + + %1 en %n ander bestand(en) hebben een sync conflict. + %1 en %n andere bestand(en) hebben synchronisatie-conflicten. + - %1 has been added. %1 names a file. %1 is toegevoegd. - - %1 and %n other file(s) have been updated. - %1 en %n ander bestand(en) zijn bijgewerkt.%1 en %n andere bestand(en) zijn bijgewerkt. - - - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 is hernoemd naar %2 en %n ander bestand(en) is hernoemd.%1 is hernoemd naar %2 en %n andere bestand(en) zijn hernoemd. - - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 is verplaatst naar %2 en %n ander bestand(en) is verplaatst.%1 is verplaatst naar %2 en %n andere bestand(en) zijn verplaatst. - - - - %1 has and %n other file(s) have sync conflicts. - %1 en %n ander bestand(en) hebben een sync conflict.%1 en %n andere bestand(en) hebben synchronisatie-conflicten. + + %1 is verplaatst naar %2 en %n ander bestand(en) is verplaatst. + %1 is verplaatst naar %2 en %n andere bestand(en) zijn verplaatst. + - - %1 has a sync conflict. Please check the conflict file! - %1 heeft een synchronisatie-conflict. Controleer het conflictbestand! - - - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 en %n ander bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details.%1 en %n andere bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details. + %1 has been moved to %2. + %1 is verplaatst naar %2. - - %1 could not be synced due to an error. See the log for details. - %1 kon niet worden gesynchroniseerd door een fout. Bekijk het log voor details. + %1 has been removed. + %1 names a file. + %1 is verwijderd. - - %1 and %n other file(s) are currently locked. - %1 en %n ander bestand zijn momenteel op slot.%1 en %n ander(e) bestand(en) zijn momenteel op slot. - - - - %1 is currently locked. - %1 is momenteel op slot. - - - - Sync Activity - Synchronisatie-activiteit + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 is hernoemd naar %2 en %n ander bestand(en) is hernoemd. + %1 is hernoemd naar %2 en %n andere bestand(en) zijn hernoemd. + - - Could not read system exclude file - Kon het systeem-uitsluitingsbestand niet lezen + %1 has been renamed to %2. + %1 and %2 name files. + %1 is hernoemd naar %2. - - A new folder larger than %1 MB has been added: %2. - - Er is een nieuwe map groter dan %1 MB toegevoegd: %2. - + %1 has been updated. + %1 names a file. + %1 is bijgewerkt. - - A folder from an external storage has been added. - - Er is een map op externe opslag toegevoegd. - + %1 is currently locked. + %1 is momenteel op slot. - - Please go in the settings to select it if you wish to download it. - Ga naar de instellingen om het te selecteren als u deze wilt downloaden. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 Een map is groter geworden dan de ingestelde limiet van %1MB: %2. %3 - - Keep syncing - Doorgaan met synchronisatie - - - - Stop syncing - Stop synchronisatie - - - - The folder %1 has surpassed the set folder size limit of %2MB. - De map %1 is groter geworden dan de ingestelde limiet van %2MB - - - - Would you like to stop syncing this folder? - Wil je stoppen met het synchroniseren van deze map? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - Map %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Bestanden erin worden niet gesynchroniseerd. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Bestand %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Het wordt niet gesynchroniseerd. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2330,415 +1887,369 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - + Could not read system exclude file + Kon het systeem-uitsluitingsbestand niet lezen - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Keep syncing + Doorgaan met synchronisatie - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - + Please choose a different location. %1 isn't a readable folder. + - - Remove all files? - Alle bestanden verwijderen? + Please choose a different location. %1 isn't a valid folder. + + + + Please choose a different location. The folder %1 doesn't exist. + + + + Please go in the settings to select it if you wish to download it. + Ga naar de instellingen om het te selecteren als u deze wilt downloaden. - Proceed with Deletion - + - - Restore Files to Server - + Remove all files? + Alle bestanden verwijderen? - Restore Files from Server - + - + + Restore Files to Server + + + + Stop syncing + Stop synchronisatie + + + Sync Activity + Synchronisatie-activiteit + + + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Bestand %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Het wordt niet gesynchroniseerd. + + + The folder %1 has surpassed the set folder size limit of %2MB. + De map %1 is groter geworden dan de ingestelde limiet van %2MB + + + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Map %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Bestanden erin worden niet gesynchroniseerd. + + + Virtual file download failed with code "%1", status "%2" and error message "%3" + + + + Would you like to stop syncing this folder? + Wil je stoppen met het synchroniseren van deze map? + + OCC::FolderCreationDialog - + %1 Create new folder + + + + Could not create a folder! Check your write permissions. + Kan map niet aanmaken! Controleer je schrijfmachtiging. + + Create new folder Maak nieuwe map aan - Enter folder name Geef mapnaam op - - Folder already exists - Map bestaat al - - - Error Fout - - Could not create a folder! Check your write permissions. - Kan map niet aanmaken! Controleer je schrijfmachtiging. + Folder already exists + Map bestaat al - + OCC::FolderMan - - Could not reset folder state - Kan de beginstaat van de map niet terugzetten + %1 (Sync is paused) + %1 (Synchronisatie onderbroken) - - - (backup) - (backup) + + (backup %1) + - - (backup %1) - (backup %1) + (backup) + - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Een oud synchronisatieverslag "%1" is gevonden maar kan niet worden verwijderd. Zorg ervoor dat geen applicatie dit bestand gebruikt. - - Undefined state. - Ongedefinieerde status. + Could not reset folder state + Kan de beginstaat van de map niet terugzetten - - Waiting to start syncing. - In afwachting van synchronisatie. + Last sync was successful. + Laatste synchronisatie was geslaagd. - - Preparing for sync. - Synchronisatie wordt voorbereid + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + - - Syncing %1 of %2 (A few seconds left) - + Please choose a different location. %1 is already being used as a sync folder. + - - Syncing %1 of %2 (%3 left) - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + - - Syncing %1 of %2 - + Please choose a different location. The path %1 doesn't exist. + - - Syncing %1 (A few seconds left) - + Please choose a different location. The path %1 isn't a folder. + - - Syncing %1 (%2 left) - + Please choose a different location. The selected folder isn't valid. + - - Syncing %1 - + Please choose a different location. You don't have enough permissions to write to %1. + folder location + - - Sync is running. - Bezig met synchroniseren. + Preparing for sync. + Synchronisatie wordt voorbereid + + + Setup error. + Installatiefout. - Sync finished with unresolved conflicts. Synchronisatie beëindigd met niet opgeloste conflicten. - - Last sync was successful. - Laatste synchronisatie was geslaagd. + Sync is paused. + Synchronisatie gepauzeerd. - - Setup error. - Installatiefout. + Sync is running. + Bezig met synchroniseren. - Sync request was cancelled. Synchronisatieaanvraag werd geannuleerd. - - Please choose a different location. The selected folder isn't valid. - - - - - - Please choose a different location. %1 is already being used as a sync folder. - + Syncing %1 + Synchroniseren %1 - - Please choose a different location. The path %1 doesn't exist. - + Syncing %1 (%2 left) + Synchroniseren %1 (%2 over) - - Please choose a different location. The path %1 isn't a folder. - + Syncing %1 (A few seconds left) + - - - Please choose a different location. You don't have enough permissions to write to %1. - folder location - + Syncing %1 of %2 + Synchroniseren %1 van %2 - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - + Syncing %1 of %2 (%3 left) + - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - + Syncing %1 of %2 (A few seconds left) + - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. For advanced users: this issue might be related to multiple sync database files found in one folder. Please check %1 for outdated and unused .sync_*.db files and remove them. - - - - - Sync is paused. - Synchronisatie gepauzeerd. + - - Please open the app settings to grant access to the sync folders. - + Undefined state. + Ongedefinieerde status. - - %1 (Sync is paused) - %1 (Synchronisatie onderbroken) + Waiting to start syncing. + In afwachting van synchronisatie. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Toevoegen mapsynchronisatie verbinding - - - - - - Grant access - Geef toegang + Add Folder Sync + - File Bestand - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - U moet verbonden zijn om een map toe te voegen + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Klik op deze knop om een te synchroniseren map toe te voegen. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 van %4) - - Could not decrypt! - Kon niet ontsleutelen! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 ... - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Fout bij ophalen mappenlijst van de server. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 van %2, bestand %3 van %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - + %5 left, %1 of %2, file %3 of %4 + %5 over, %1 van %2, bestand %3 van %4 - - Virtual file support is enabled. - Virtuele bestandsondersteuning is ingeschakeld. - + , + , + - - Signed out - Afgemeld + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Een paar seconden over, %1 van %2, bestand %3 van %4 - - Synchronizing virtual files in local folder - Synchroniseren virtuele bestanden in lokale map + About to start syncing + In afwachting van synchronisatie - - Synchronizing files in local folder - Synchroniseren bestanden in lokale map + Checking for changes in local "%1" + Controleren op wijzigingen in lokale "%1" - Checking for changes in remote "%1" Controleren op wijzigingen in externe "%1" - - Checking for changes in local "%1" - Controleren op wijzigingen in lokale "%1" - - - - Syncing local and remote changes - Synchroniseren lokale en remote aanpassingen + Click this button to add a folder to synchronize. + Klik op deze knop om een te synchroniseren map toe te voegen. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 ... + Could not decrypt! + Kon niet ontsleutelen! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s - - File %1 of %2 - Bestand %1 van %2 - - - - There are unresolved conflicts. Click for details. - Er zijn nog niet-opgehelderde conflicten. Klik voor details. - - - - - , - , + Error while loading the list of folders from the server. + Fout bij ophalen mappenlijst van de server. - Fetching folder list from server … Mappenlijst ophalen van de server ... - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Bestand %1 van %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Upload %1/s + Preparing to sync … + Voorbereiden synchronisatie ... + + + Signed out + Afgemeld - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Synchroniseren bestanden in lokale map - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 van %4) + Synchronizing virtual files in local folder + Synchroniseren virtuele bestanden in lokale map - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Synchroniseren lokale en remote aanpassingen - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Een paar seconden over, %1 van %2, bestand %3 van %4 + There are unresolved conflicts. Click for details. + Er zijn nog niet-opgehelderde conflicten. Klik voor details. - - %5 left, %1 of %2, file %3 of %4 - %5 over, %1 van %2, bestand %3 van %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Upload %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 van %2, bestand %3 van %4 + Virtual file support is enabled. + Virtuele bestandsondersteuning is ingeschakeld. - Waiting for %n other folder(s) … - + + + + - - About to start syncing - In afwachting van synchronisatie + You need to be connected to add a folder + U moet verbonden zijn om een map toe te voegen - - Preparing to sync … - Voorbereiden synchronisatie ... + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. De kijker ontving geen testmelding. @@ -2746,7 +2257,6 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Dit gebeurt gewoonlijk wanneer de inotify monitors op zijn. Klik op de FAQ voor details. @@ -2754,12 +2264,10 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard - Add Folder Sync Connection Toevoegen mapsynchronisatie verbinding - Add Sync Connection Toevoegen Sync verbinding @@ -2767,428 +2275,388 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Klikken om een lokale map te selecteren voor synchronisatie - Enter the path to the local folder. Geef het pad op naar de lokale map. - - Select the source folder - Selecteer de bronmap + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - - - OCC::FolderWizardRemotePath - - Create Remote Folder - Externe map aanmaken + Select the source folder + Selecteer de bronmap - - Enter the name of the new folder to be created below "%1": - Voer de naam van de hieronder te maken nieuwe map in "%1": + Step 1 of 3: Select local folder + + + + OCC::FolderWizardRemotePath - - Folder was successfully created on %1. - Map is succesvol aangemaakt op %1. + Add Folder Sync + - Authentication failed accessing %1 Authenticatie mislukt bij benaderen %1 - - Failed to create the folder on %1. Please check manually. - Aanmaken van de map op %1 mislukt. Controleer handmatig. - - - - Failed to list a folder. Error: %1 - Tonen mappenlijst mislukt. Fout: %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - Choose this to sync the entire account Kies dit om je volledige account te synchroniseren - - - Please choose a different location. %1 is already being synced to %2. - + Create Remote Folder + Externe map aanmaken - - You are already syncing the subfolder %1 at %2. - + Create folder + Maak map - - - OCC::FolderWizardSelectiveSync - - - - Use virtual files instead of downloading content immediately %1 - Gebruik virtuele bestanden in plaats van de content direct te downloaden %1 + + Enter the name of the new folder to be created below "%1": + Voer de naam van de hieronder te maken nieuwe map in "%1": - - - (experimental) - (experimenteel) + Failed to create the folder on %1. Please check manually. + Aanmaken van de map op %1 mislukt. Controleer handmatig. - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. + Failed to list a folder. Error: %1 + Tonen mappenlijst mislukt. Fout: %1 - - Virtual files are not supported at the selected location - + Folder was successfully created on %1. + Map is succesvol aangemaakt op %1. - - - OCC::GETFileJob - - No E-Tag received from server, check Proxy/Gateway - Geen E-Tag ontvangen van de server, controleer Proxy/Gateway + Please choose a different location. %1 is already being synced to %2. + - - We received a different E-Tag for resuming. Retrying next time. - We ontvingen een afwijkende E-Tag om door te gaan. We proberen het later opnieuw. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + - - We received an unexpected download Content-Length. - We ontvingen een onverwachte download Content-Lengte. + Refresh + Vernieuwen - - Server returned wrong content-range - Server retourneerde verkeerde content-bandbreedte + Step 2 of 3: Directory in your %1 + - - Connection Timeout - Verbindingstime-out + You are already syncing the subfolder %1 at %2. + - + - OCC::GeneralSettings + OCC::FolderWizardSelectiveSync - - Show Call Notifications - Toon oproepmeldingen + (experimental) + (experimenteel) - - For System Tray - Voor systeemvak + Add Folder Sync + - - Show Chat Notifications - + Step 3 of 3: Selektive Synchronisation + - - Show Server &Notifications - Tonen server&meldingen + Use virtual files instead of downloading content immediately %1 + Gebruik virtuele bestanden in plaats van de content direct te downloaden %1 - - Advanced - Geavanceerd + Virtual files are not supported at the selected location + - - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. + + + OCC::GeneralSettings - - Ask for confirmation before synchronizing external storages - Vraag bevestiging voor synchronisatie van mappen op externe opslag + &Automatically check for updates + &Controleer automatisch op updates - &Launch on System Startup &Starten bij systeemstart - - General Settings - Algemene instellingen + &Restart && Update + &Herstarten && Bijwerken - - General settings - + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - - Use &Monochrome Icons - &Monochrome pictogrammen gebruiken + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - - Show &Quota Warning Notifications - + Advanced + Geavanceerd - - Ask for confirmation before synchronizing new folders larger than - Vraag bevestiging voordat mappen worden gesynchroniseerd groter dan + Ask for confirmation before synchronizing external storages + Vraag bevestiging voor synchronisatie van mappen op externe opslag - - Notify when synchronised folders grow larger than specified limit - Melding als gesynchroniseerde mappen groter worden dan de opgegeven limiet + Ask for confirmation before synchronizing new folders larger than + Vraag bevestiging voordat mappen worden gesynchroniseerd groter dan - Automatically disable synchronisation of folders that overcome limit Synchronisatie automatisch uitschakelen van mappen die de limiet overschrijden - - Move removed files to trash - Verplaats verwijderde bestanden naar de prullenbak - - - - Show sync folders in &Explorer's navigation pane - Toon synchronisatiemappen in &Verkennen navigatievenster + Cancel + Annuleren - - Server poll interval - + Change update channel + Wijzigen bijwerkkanaal - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - + Changing update channel? + Wijzigen bijwerkkanaal? - - Edit &Ignored Files - Bewerken &genegeerde bestanden + Check Now + Controleer nu - - Create Debug Archive Debugarchief maken - - Info - Info + Data Protection + - - Desktop client x.x.x - Desktop cliënt x.x.x + Debug Archive Created + Debugarchief Aangemaakt - - Update channel - Bijwerkkanaal + Desktop client x.x.x + Desktop cliënt x.x.x - - &Automatically check for updates - &Controleer automatisch op updates + Edit &Ignored Files + Bewerken &genegeerde bestanden - - Check Now - Controleer nu + For System Tray + Voor systeemvak - - Usage Documentation - Gebruiksdocumentatie + General Settings + Algemene instellingen - Legal Notice Juridische bepalingen - - Restore &Default - + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Restart && Update - &Herstarten && Bijwerken + More Information + + + + Move removed files to trash + Verplaats verwijderde bestanden naar de prullenbak - - Server notifications that require attention. - Servermeldingen die aandacht nodig hebben. + Necessary data + - - Show chat notification dialogs. - + Notify when synchronised folders grow larger than specified limit + Melding als gesynchroniseerde mappen groter worden dan de opgegeven limiet - - Show call notification dialogs. - Toon oproepmeldingenvensters. + Open Source Software + - - Show notification when quota usage exceeds 80%. - + Privacy Policy + - - You cannot disable autostart because system-wide autostart is enabled. - Je kunt autostart niet uitschakelen omdat systeem-brede autostart is ingeschakeld. + Redact information deemed sensitive before sharing! Debug archive created at %1 + + + + Required to ensure that the software can be used as expected + + + + Restore &Default + - Restore to &%1 - + - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - + Send anonymous use + - - stable - stabiel + Server notifications that require attention. + Servermeldingen die aandacht nodig hebben. - - beta - beta + Server poll interval + - - daily - dagelijks + Show &Quota Warning Notifications + - - enterprise - zakelijk + Show Call Notifications + Toon oproepmeldingen - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - + Show Chat Notifications + - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - + Show Server &Notifications + Tonen server&meldingen - - Changing update channel? - Wijzigen bijwerkkanaal? + Show call notification dialogs. + Toon oproepmeldingenvensters. + + + Show chat notification dialogs. + + + + Show notification when quota usage exceeds 80%. + + + + Show sync folders in &Explorer's navigation pane + Toon synchronisatiemappen in &Verkennen navigatievenster - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable starts list of available update channels, stable is always available - + - - Change update channel - Wijzigen bijwerkkanaal + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Annuleren + Update channel + Bijwerkkanaal + + + Updates + + + + Usage Documentation + Gebruiksdocumentatie - - Login Item Requires Approval - + Use &Monochrome Icons + &Monochrome pictogrammen gebruiken - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - + You cannot disable autostart because system-wide autostart is enabled. + Je kunt autostart niet uitschakelen omdat systeem-brede autostart is ingeschakeld. - Zip Archives Zip Archieven - - Failed to Access File - + beta + beta + + + daily + dagelijks - - Could not access the selected location. Please try again or choose a different location. - + enterprise + zakelijk - - Debug Archive Created - Debugarchief Aangemaakt + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + - - Redact information deemed sensitive before sharing! Debug archive created at %1 - + stable + stabiel - + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Wachtwoord voor deellink vereist + Connection Timeout + Verbindingstime-out + + + No E-Tag received from server, check Proxy/Gateway + Geen E-Tag ontvangen van de server, controleer Proxy/Gateway - - Please enter a password for your link share: - Voer het wachtwoord in voor je deellink: + Server returned wrong content-range + Server retourneerde verkeerde content-bandbreedte - - Sharing error - Fout bij delen + We received a different E-Tag for resuming. Retrying next time. + We ontvingen een afwijkende E-Tag om door te gaan. We proberen het later opnieuw. + + + We received an unexpected download Content-Length. + We ontvingen een onverwachte download Content-Lengte. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3196,54 +2664,57 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - - - OCC::HttpCredentialsGui + + Password for share required + Wachtwoord voor deellink vereist + - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Voer %1 wachtwoord in:<br><br>Gebruiker: %2<br>Account: %3<br> + Please enter a password for your link share: + Voer het wachtwoord in voor je deellink: - - Reading from keychain failed with error: "%1" - Het lezen van de sleutelketen is mislukt met fout: "%1" + Sharing error + Fout bij delen + + + OCC::HttpCredentialsGui - + <a href="%1">Click here</a> to request an app password from the web interface. + <a href="%1">Klik hier</a> om een nieuw app wachtwoord via de web interface op te vragen. + + Enter Password Vul het wachtwoord in - - <a href="%1">Click here</a> to request an app password from the web interface. - <a href="%1">Klik hier</a> om een nieuw app wachtwoord via de web interface op te vragen. + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Voer %1 wachtwoord in:<br><br>Gebruiker: %2<br>Account: %3<br> - + + Reading from keychain failed with error: "%1" + Het lezen van de sleutelketen is mislukt met fout: "%1" + + OCC::IgnoreListEditor - - Ignored Files Editor - Genegeerde bestanden-editor + Files Ignored by Patterns + Bestanden volgens patroon genegeerd - Global Ignore Settings Algemene negeer-instellingen - - Sync hidden files - Synchroniseer verborgen bestanden + Ignored Files Editor + Genegeerde bestanden-editor - - Files Ignored by Patterns - Bestanden volgens patroon genegeerd + Sync hidden files + Synchroniseer verborgen bestanden - This entry is provided by the system at "%1" and cannot be modified in this view. Dit gegeven is door het systeem vastgelegd op "%1" en kan niet worden aangepast in deze weergave. @@ -3251,32 +2722,26 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListTableWidget - - Pattern - Patroon + Add + Toevoegen - + Add a new ignore pattern: + Voeg nieuw negeerpatroon toe: + + Allow Deletion Verwijderen toestaan - - Add - Toevoegen - - - - Remove - Verwijderen + Cannot write changes to "%1". + Kan geen wijzigingen wegschrijven naar "%1". - - Remove all - Alles verwijderen + Could not open file + Kan het bestand niet openen - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3285,195 +2750,166 @@ Items where deletion is allowed will be deleted if they prevent a directory from Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een map verdwijnt. Dit is nuttig voor metadata. - - Could not open file - Kan het bestand niet openen + Ignore Pattern + - - Cannot write changes to "%1". - Kan geen wijzigingen wegschrijven naar "%1". + Pattern + Patroon - - Add Ignore Pattern - Toevoegen negeerpatroon + Remove + Verwijderen - - Add a new ignore pattern: - Voeg nieuw negeerpatroon toe: + Remove all + Alles verwijderen - + OCC::InvalidFilenameDialog - - Invalid filename - Ongeldige bestandsnaam + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Kan het bestand niet hernoemen omdat er al een bestand met dezelfde naam op de server bestaat. Kies een andere naam. - - The file could not be synced because it contains characters which are not allowed on this system. - Dit bestand kon niet worden gesynchroniseerd omdat het symbolen bevat die niet toegestaan zijn op dit systeem. + Checking rename permissions … + Hernoem machtigingen controleren ... + + + Could not rename file. Please make sure you are connected to the server. + Kan het bestand niet hernoemen. Zorg ervoor dat je verbonden bent met de server. - + Could not rename local file. %1 + Kan lokaal bestand niet hernoemen. %1 + + Error Fout - - Please enter a new name for the file: - Voer alsjeblieft een nieuwe naam voor dit bestand in: + Failed to fetch permissions with error %1 + Ophalen van machtigingen mislukt met fout %1 + + + Filename contains illegal characters: %1 + Bestandsnaam bevat ongeldige tekens: %1 + + + Filename contains leading and trailing spaces. + De bestandsnaam bevat spaties vooraan en achteraan. + + + Filename contains leading spaces. + De bestandsnaam bevat spaties vooraan. + + + Filename contains trailing spaces. + De bestandsnaam bevat spaties achteraan. + + + Invalid filename + Ongeldige bestandsnaam - New filename Nieuwe bestandsnaam - + Please enter a new name for the file: + Voer alsjeblieft een nieuwe naam voor dit bestand in: + + Rename file Bestand hernoemen - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Het bestand %1 kan niet worden gesynchroniseerd omdat de naam tekens bevat die niet zijn toegestaan op dit systeem. - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - - - - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Het bestand %1 kan niet worden gesynchroniseerd omdat de naam tekens bevat die niet zijn toegestaan op dit systeem. - - The following characters are not allowed: %1 - De volgende tekens zijn niet toegestaan: %1 + The file could not be synced because it contains characters which are not allowed on this system. + Dit bestand kon niet worden gesynchroniseerd omdat het symbolen bevat die niet toegestaan zijn op dit systeem. - The following basenames are not allowed: %1 De volgende basisnamen zijn niet toegestaan: %1 - - The following filenames are not allowed: %1 - De volgende bestandsnamen zijn niet toegestaan: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + + + + The following characters are not allowed: %1 + De volgende tekens zijn niet toegestaan: %1 - The following file extensions are not allowed: %1 De volgende bestandsextensies zijn niet toegestaan: %1 - - Checking rename permissions … - Hernoem machtigingen controleren ... + The following filenames are not allowed: %1 + De volgende bestandsnamen zijn niet toegestaan: %1 + + + Use invalid name + Gebruik ongeldige naam - You don't have the permission to rename this file. Please ask the author of the file to rename it. Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. - - - Failed to fetch permissions with error %1 - Ophalen van machtigingen mislukt met fout %1 - - - - Filename contains leading and trailing spaces. - De bestandsnaam bevat spaties vooraan en achteraan. - - - - Filename contains leading spaces. - De bestandsnaam bevat spaties vooraan. - - - - Filename contains trailing spaces. - De bestandsnaam bevat spaties achteraan. - - - - Use invalid name - Gebruik ongeldige naam - - - - Filename contains illegal characters: %1 - Bestandsnaam bevat ongeldige tekens: %1 - - - - Could not rename file. Please make sure you are connected to the server. - Kan het bestand niet hernoemen. Zorg ervoor dat je verbonden bent met de server. - - - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Kan het bestand niet hernoemen omdat er al een bestand met dezelfde naam op de server bestaat. Kies een andere naam. - - - - Could not rename local file. %1 - Kan lokaal bestand niet hernoemen. %1 - - + OCC::LegacyAccountSelectionDialog - Legacy import - + Legacy import - Select the accounts to import from the legacy configuration: - + OCC::LegalNotice - - - Legal notice - Juridische bepalingen - - - - Close - Sluiten - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Gelicenseerd onder de GNU General Public License (GPL) Versie 2.0 of later</p> - + + Close + Sluiten + + + Legal notice + Juridische bepalingen + + OCC::LogBrowser - + Enable logging to temporary folder + Inschakelen logging naar tijdelijke map + + Log Output Log Output - + Open folder + Openen map + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3482,415 +2918,393 @@ Omdat logbestanden groot kunnen worden, zal de client een nieuwe starten voor el Indien ingeschakeld, worden logboeken naar % 1 geschreven - - Enable logging to temporary folder - Inschakelen logging naar tijdelijke map - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Deze instelling blijft bestaan tijdens het opnieuw opstarten van de client. Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal overschrijven. - - - Open folder - Openen map - - + OCC::Logger - - - Error - Fout - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Bestand "%1"<br/>kan niet voor schrijven worden geopend.<br/><br/>De log output kan <b>niet</b> opgeslagen worden!</nobr> - + + Error + Fout + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Kon lokaal bewerken niet starten. - - - An error occurred during setup. Er trad een fout op bij het instellen. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - + Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is en dat het lokaal gesynchroniseerd is. - Could not get file ID. Kon het bestands-ID niet ophalen. - Could not get file identifier. Kon het bestands-ID niet ophalen. - - The file identifier is empty. - Het bestands-ID is leeg. - - - - OCC::NSISUpdater - - - New Version Available - Nieuwe versie beschikbaar - - - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>Er is een nieuwe versie van de %1 Client beschikbaar.</p><p><b>%2</b> is beschikbaar voor download. De geïnstalleerde versie is %3.</p> - - - - Update Failed - Bijwerken mislukt - - - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>Een nieuwe versie van de %1 Client is beschikbaar, maar het updaten is mislukt.</p><p><b>%2</b> is gedownload. De geïnstalleerde versie is %3. Als je herstarten en bijwerken bevestigt, kan je computer opnieuw opgestart worden om de installatie te voltooien.</p> - - - - Ask again later - Vraag later nogmaals - - - - Restart and update - Herstarten en bijwerken - - - - Update manually - Handmatig bijwerken - - - - Skip this time - Deze keer overslaan + Could not start editing locally. + Kon lokaal bewerken niet starten. - - Get update - Ophalen update + The file identifier is empty. + Het bestands-ID is leeg. OCC::NetworkSettings - - Proxy Settings - Proxy Instellingen + Download Bandwidth + Download bandbreedte - - Use system proxy - Gebruik systeem proxy + HTTP(S) proxy + HTTP(S) proxy - Host Server - - Proxy server requires authentication - Proxyserver heeft verificatie nodig + Hostname of proxy server + Hostnaam van proxyserver - - Download Bandwidth - Download bandbreedte + KBytes/s + KBytes/s + + + Limit automatically + Beperk automatisch - - Limit to Beperkt tot - - Limit to 3/4 of estimated bandwidth Beperk tot 3/4 van de geschatte bandbreedte - - - Limit automatically - Beperk automatisch + Manually specify proxy + Specificeer proxy handmatig - - - KBytes/s - KBytes/s + No limit + Geen beperking + + + No proxy + Geen proxy - Note: proxy settings have no effects for accounts on localhost Let op: proxy-instellingen hebben geen effect voor accounts op localhost - - Manually specify proxy - Specificeer proxy handmatig + Password for proxy server + Wachtwoord voor proxyserver - - No proxy - Geen proxy + Proxy Settings + Proxy Instellingen - - - No limit - Geen beperking + Proxy server requires authentication + Proxyserver heeft verificatie nodig - + SOCKS5 proxy + SOCKS5 proxy + + Upload Bandwidth Upload bandbreedte - - Hostname of proxy server - Hostnaam van proxyserver + Use system proxy + Gebruik systeem proxy - Username for proxy server Gebruikersnaam voor proxyserver + + + OCC::NSISUpdater - - Password for proxy server - Wachtwoord voor proxyserver + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>Een nieuwe versie van de %1 Client is beschikbaar, maar het updaten is mislukt.</p><p><b>%2</b> is gedownload. De geïnstalleerde versie is %3. Als je herstarten en bijwerken bevestigt, kan je computer opnieuw opgestart worden om de installatie te voltooien.</p> - - HTTP(S) proxy - HTTP(S) proxy + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>Er is een nieuwe versie van de %1 Client beschikbaar.</p><p><b>%2</b> is beschikbaar voor download. De geïnstalleerde versie is %3.</p> - - SOCKS5 proxy - SOCKS5 proxy + Ask again later + Vraag later nogmaals - - - OCC::OCUpdater - - Could not check for new updates. - Kan niet controleren op nieuwe updates. + Get update + Ophalen update + + + New Version Available + Nieuwe versie beschikbaar - - Checking update server … - Controleren updateserver ... + Restart and update + Herstarten en bijwerken - - New %1 update ready - Nieuwe %1 update is klaar + Skip this time + Deze keer overslaan - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - Een nieuwe update voor %1 wordt geïnstalleerd. De updater kan om extra privileges vragen tijdens het update proces. Je computer kan herstart worden om de installatie te voltooien. + Update Failed + Bijwerken mislukt - - Downloading %1 … - Downloaden %1 … + Update manually + Handmatig bijwerken + + + OCC::OCUpdater - %1 available. Restart application to start the update. %1 beschikbaar. Herstart de applicatie om de update te starten. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Kon de download niet bijwerken. Open <a href='%1'>%1</a> om de update handmatig te downloaden. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Een nieuwe update voor %1 wordt geïnstalleerd. De updater kan om extra privileges vragen tijdens het update proces. Je computer kan herstart worden om de installatie te voltooien. + + + Checking update server … + Controleren updateserver ... + + + Could not check for new updates. + Kan niet controleren op nieuwe updates. - Could not download update. Please open %1 to download the update manually. Kon de update niet downloaden. Open %1 om de update handmatig te downloaden. - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - Nieuwe %1 beschikbaar. Open <a href='%2'>%1</a> om de update te downloaden. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Kon de download niet bijwerken. Open <a href='%1'>%1</a> om de update handmatig te downloaden. + + + Downloading %1 … + Downloaden %1 … - New %1 is available. Please open %2 to download the update. Nieuwe %1 beschikbaar. Open %2 om de update te downloaden. - - Update status is unknown: Did not check for new updates. - Update status is onbekend: niet gecontroleerd op nieuwe updates. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + Nieuwe %1 beschikbaar. Open <a href='%2'>%1</a> om de update te downloaden. - - You are using the %1 update channel. Your installation is the latest version. - + New %1 update ready + Nieuwe %1 update is klaar - No updates available. Your installation is the latest version. - + - Update Check Controle update - + + Update status is unknown: Did not check for new updates. + Update status is onbekend: niet gecontroleerd op nieuwe updates. + + + You are using the %1 update channel. Your installation is the latest version. + + + OCC::OwncloudAdvancedSetupPage - - Connect - Verbinden + %1 folder "%2" is synced to local folder "%3" + %1 map "%2" is gesynchroniseerd naar de lokale map "%3" - - - (experimental) - (experimenteel) + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 vrije ruimte - - - Use &virtual files instead of downloading content immediately %1 - Gebruik &virtuele bestanden in plaats van direct downloaden content%1 + (%1) + (%1) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. + (experimental) + (experimenteel) - - %1 folder "%2" is synced to local folder "%3" - %1 map "%2" is gesynchroniseerd naar de lokale map "%3" + Connect + Verbinden + + + In Finder's "Locations" sidebar section + + + + Local Sync Folder + Lokale synchronisatiemap - Sync the folder "%1" Synchroniseer de map "%1" - - Warning: The local folder is not empty. Pick a resolution! - Waarschuwing: De lokale map is niet leeg. Maak een keuze! + There isn't enough free space in the local folder! + Er is niet genoeg ruimte beschikbaar in de lokale map! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 vrije ruimte + Use &virtual files instead of downloading content immediately %1 + Gebruik &virtuele bestanden in plaats van direct downloaden content%1 - Virtual files are not supported at the selected location - + - - Local Sync Folder - Lokale synchronisatiemap + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Waarschuwing: De lokale map is niet leeg. Maak een keuze! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - Er is niet genoeg ruimte beschikbaar in de lokale map! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres <em>%1</em>.Hoe wilt u verder gaan?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres. Hoe wilt u verder gaan?</p></body></html> - - In Finder's "Locations" sidebar section - + Configure client-side TLS certificate + Configureer het client-side TLS-certificaat - - - OCC::OwncloudConnectionMethodDialog - Connection failed Verbinding mislukt - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres. Hoe wilt u verder gaan?</p></body></html> + Retry unencrypted over HTTP (insecure) + Probeer onversleuteld over HTTP (onbeveiligd) - Select a different URL Selecteer een andere URL + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Probeer onversleuteld over HTTP (onbeveiligd) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Configureer het client-side TLS-certificaat + Account %1: %2 + Account %1: %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres <em>%1</em>.Hoe wilt u verder gaan?</p></body></html> + Account synchronization is disabled + Account synchronisatie is uitgeschakeld - + + Checking for changes in local "%1" + Controleren op wijzigingen in lokale "%1" + + + Checking for changes in remote "%1" + Controleren op wijzigingen in externe "%1" + + + Disconnected from %1 + Losgekoppeld van %1 + + + Disconnected from accounts: + Losgekoppeld van account: + + + Please sign in + Log alstublieft in + + + Terms of service + + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + De server van account %1 gebruikt een niet ondersteunde versie %2. Het gebruik van deze clientsoftware met niet-ondersteunde server versies is niet getest en mogelijk gevaarlijk. Verdergaan is op eigen risico. + + + There are no sync folders configured. + Er zijn geen synchronisatie-mappen geconfigureerd. + + + Unsupported Server Version + Niet-ondersteunde server versie + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + + + + macOS VFS for %1: A problem was encountered. + + + + macOS VFS for %1: Last sync was successful. + + + + macOS VFS for %1: Sync is running. + + + OCC::OwncloudHttpCredsPage - &Email &E-mail - Connect to %1 Verbinden met %1 - Enter user credentials Vul uw inloggegevens in @@ -3898,8 +3312,6 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Onmogelijk om wijzigingstijd te krijgen voor bestand in conflict %1) @@ -3907,220 +3319,184 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - De link naar je %1 web interface wanneer je die opent in de browser. - - - &Next > &Volgende > - + Could not load certificate. Maybe wrong password? + Kan certificaat niet laden. Misschien is het wachtwoord onjuist? + + Server address does not seem to be valid Het serveradres lijkt niet geldig - - Could not load certificate. Maybe wrong password? - Kan certificaat niet laden. Misschien is het wachtwoord onjuist? + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + De link naar je %1 web interface wanneer je die opent in de browser. - + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Lokale synch map %1 is succesvol aangemaakt!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Succesvol verbonden met %1: %2 versie %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Kon geen verbinding maken met %1 op %2:<br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.</font><br/>ga terug en controleer je inloggevens.</p> - - Timeout while trying to connect to %1 at %2. - Time-out bij verbinden met %1 op %2. + A sync connection from %1 to remote directory %2 was set up. + Er is een synchronisatie verbinding van %1 naar externe map %2 opgezet. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Toegang door server verboden. Om te verifiëren dat je toegang mag hebben, <a href="%1">klik hier</a> om met je browser toegang tot de service te krijgen. - - Invalid URL - Ongeldige URL + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Kan de map niet verwijderen en back-uppen, omdat de map of een bestand daarin, geopend is in een ander programma. Sluit de map of het bestand en drup op Opnieuw of annuleer de installatie. - - - Trying to connect to %1 at %2 … - Probeer te verbinden met %1 om %2 ... + Connection to %1 could not be established. Please check again. + Er kan geen verbinding worden gemaakt met %1. Probeer het nog eens. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - De geauthentiseerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. + Could not create local folder %1 + Kan lokale map %1 niet aanmaken - - There was an invalid response to an authenticated WebDAV request - Er is een ongeldig antwoord ontvangen op een geauthenticeerde WebDAV opvraging + Creating local sync folder %1 … + Creëren lokale synchronisatie map %1 ... - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - Lokale synchronisatie map %1 bestaat al, deze wordt ingesteld voor synchronisatie.<br/><br/> + Error: %1 + Fout: %1 - - Creating local sync folder %1 … - Creëren lokale synchronisatie map %1 ... + Failed to connect to %1 at %2:<br/>%3 + Kon geen verbinding maken met %1 op %2:<br/>%3 - - OK - OK + Folder rename failed + Hernoemen map mislukt - - failed. - mislukt. + Invalid URL + Ongeldige URL - - Could not create local folder %1 - Kan lokale map %1 niet aanmaken + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Lokale synchronisatie map %1 bestaat al, deze wordt ingesteld voor synchronisatie.<br/><br/> - No remote folder specified! Geen externe map opgegeven! - - Error: %1 - Fout: %1 - - - - creating folder on Nextcloud: %1 - aanmaken map op Nextcloud: %1 + OK + OK - Remote folder %1 created successfully. Externe map %1 succesvol gecreëerd. - - The remote folder %1 already exists. Connecting it for syncing. - De externe map %1 bestaat al. Verbinden voor synchroniseren. - - - - - The folder creation resulted in HTTP error code %1 - Het aanmaken van de map resulteerde in HTTP foutcode %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + Aanmaken van externe map %1 mislukt met fout <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.<br/>Ga terug en controleer je inloggegevens.</p> + Successfully connected to %1! + Succesvol verbonden met %1! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.</font><br/>ga terug en controleer je inloggevens.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + De geauthentiseerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Aanmaken van externe map %1 mislukt met fout <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + Het aanmaken van de map resulteerde in HTTP foutcode %1 - - A sync connection from %1 to remote directory %2 was set up. - Er is een synchronisatie verbinding van %1 naar externe map %2 opgezet. + The remote folder %1 already exists. Connecting it for syncing. + De externe map %1 bestaat al. Verbinden voor synchroniseren. - - Successfully connected to %1! - Succesvol verbonden met %1! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.<br/>Ga terug en controleer je inloggegevens.</p> - - Connection to %1 could not be established. Please check again. - Er kan geen verbinding worden gemaakt met %1. Probeer het nog eens. + There was an invalid response to an authenticated WebDAV request + Er is een ongeldig antwoord ontvangen op een geauthenticeerde WebDAV opvraging - - Folder rename failed - Hernoemen map mislukt + Timeout while trying to connect to %1 at %2. + Time-out bij verbinden met %1 op %2. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Kan de map niet verwijderen en back-uppen, omdat de map of een bestand daarin, geopend is in een ander programma. Sluit de map of het bestand en drup op Opnieuw of annuleer de installatie. + Trying to connect to %1 at %2 … + Probeer te verbinden met %1 om %2 ... - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - + creating folder on Nextcloud: %1 + aanmaken map op Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Lokale synch map %1 is succesvol aangemaakt!</b></font> + failed. + mislukt. - + OCC::OwncloudWizard - Add %1 account Toevoegen %1 account - - Skip folders configuration - Sla configuratie van mappen over + Back + Next button text in new account wizard + - Cancel Annuleren - - Proxy Settings - Proxy Settings button text in new account wizard - + Enable experimental feature? + Inschakelen experimentele functies? + + + Enable experimental placeholder mode + Inschakelen experimentele aanduider modus - Next Next button text in new account wizard - + - - Back - Next button text in new account wizard - + Proxy Settings + Proxy Settings button text in new account wizard + Proxy Instellingen - - Enable experimental feature? - Inschakelen experimentele functies? + Skip folders configuration + Sla configuratie van mappen over - + Stay safe + Blijf veilig + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4136,26 +3512,14 @@ Als je naar deze modus overschakelt, wordt elke momenteel lopende synchronisatie Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen we je om eventuele problemen te melden. - - - Enable experimental placeholder mode - Inschakelen experimentele aanduider modus - - - - Stay safe - Blijf veilig - - + OCC::PasswordInputDialog - Password for share required Wachtwoord voor delen vereist - Please enter a password for your share: Voer het wachtwoord in voor je deellink: @@ -4163,7 +3527,6 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PollJob - Invalid JSON reply from the poll URL Ongeldig JSON antwoord van de opgegeven URL @@ -4171,344 +3534,259 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Symbolische links worden niet ondersteund bij het synchroniseren. + Cannot be renamed or uploaded. + - - File is locked by another application. - + Cannot modify encrypted item because the selected certificate is not valid. + - - File is listed on the ignore list. - Het bestand is opgenomen op de negeerlijst. + Cannot sync due to invalid modification time + Kan niet synchroniseren door ongeldig wijzigingstijdstip - - File names ending with a period are not supported on this file system. - Bestandsnamen die eindigen met een punt worden niet ondersteund door het bestandssysteem. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Conflict: Server version downloaded, local copy renamed and not uploaded. + Bestandsconflict: serverversie is gedownload, de lokale kopie is hernoemd en niet geüpload - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - + Could not upload file, because it is open in "%1". + Kan bestand niet uploaden, omdat het geopend is in "%1". - - Folder name contains at least one invalid character - Mapnaam bevat minimaal één ongeldig karakter + Error while deleting file record %1 from the database + Fout tijdens verwijderen bestandsrecord %1 uit de database - - File name contains at least one invalid character - De bestandsnaam bevat ten minste één ongeldig teken + Error while reading the database + Fout bij lezen database - - - Folder name is a reserved name on this file system. - + + File has extension reserved for virtual files. + Bestand heeft een extensie gereserveerd voor virtuele bestanden. - - File name is a reserved name on this file system. - + File is listed on the ignore list. + Het bestand is opgenomen op de negeerlijst. - - Filename contains trailing spaces. - De bestandsnaam bevat spaties achteraan. + File is not accessible on the server. + server error + - - - - - Cannot be renamed or uploaded. - + File name contains at least one invalid character + De bestandsnaam bevat ten minste één ongeldig teken - - Filename contains leading spaces. - De bestandsnaam bevat spaties vooraan. + File name is a reserved name on this file system. + - - Filename contains leading and trailing spaces. - De bestandsnaam bevat spaties vooraan en achteraan. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - Filename is too long. - De bestandsnaam is te lang. + File names ending with a period are not supported on this file system. + Bestandsnamen die eindigen met een punt worden niet ondersteund door het bestandssysteem. - File/Folder is ignored because it's hidden. Bestand/Map is genegeerd omdat het verborgen is. - - Stat failed. - Stat mislukt. - - - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Bestandsconflict: serverversie is gedownload, de lokale kopie is hernoemd en niet geüpload + Filename contains leading and trailing spaces. + De bestandsnaam bevat spaties vooraan en achteraan. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - + Filename contains leading spaces. + De bestandsnaam bevat spaties vooraan. - - The filename cannot be encoded on your file system. - De bestandsnaam kan op je bestandssysteem niet worden gecodeerd. + Filename contains trailing spaces. + De bestandsnaam bevat spaties achteraan. - - The filename is blacklisted on the server. - De bestandsnaam staat op de negeerlijst van de server. + Filename is too long. + De bestandsnaam is te lang. - - Reason: the entire filename is forbidden. - + Folder is not accessible on the server. + server error + - - Reason: the filename has a forbidden base name (filename start). - + Folder name contains at least one invalid character + Mapnaam bevat minimaal één ongeldig karakter - - Reason: the file has a forbidden extension (.%1). - + Folder name is a reserved name on this file system. + - - Reason: the filename contains a forbidden character (%1). - + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + - - File has extension reserved for virtual files. - Bestand heeft een extensie gereserveerd voor virtuele bestanden. + Ignored because of the "choose what to sync" blacklist + Genegeerd vanwege de "wat synchroniseren" negeerlijst - - Folder is not accessible on the server. - server error - + Moved to invalid target, restoring + Verplaatst naar ongeldig doel, herstellen - - File is not accessible on the server. - server error - + Not allowed because you don't have permission to add files in that folder + Niet toegestaan omdat je geen machtiging hebt om bestanden in die map toe te voegen - - Cannot sync due to invalid modification time - Kan niet synchroniseren door ongeldig wijzigingstijdstip + Not allowed because you don't have permission to add subfolders to that folder + Niet toegestaan, omdat je geen machtiging hebt om submappen aan die map toe te voegen - - Upload of %1 exceeds %2 of space left in personal files. - + Not allowed to remove, restoring + Niet toegestaan om te verwijderen, herstellen - - Upload of %1 exceeds %2 of space left in folder %3. - + Not allowed to upload this file because it is read-only on the server, restoring + Niet toegestaan om dit bestand te uploaden, omdat het alleen-lezen is op de server, herstellen - - Could not upload file, because it is open in "%1". - Kan bestand niet uploaden, omdat het geopend is in "%1". + Reason: the entire filename is forbidden. + - - Error while deleting file record %1 from the database - Fout tijdens verwijderen bestandsrecord %1 uit de database + Reason: the file has a forbidden extension (.%1). + - - - Moved to invalid target, restoring - Verplaatst naar ongeldig doel, herstellen + Reason: the filename contains a forbidden character (%1). + - - Cannot modify encrypted item because the selected certificate is not valid. - + Reason: the filename has a forbidden base name (filename start). + - - Ignored because of the "choose what to sync" blacklist - Genegeerd vanwege de "wat synchroniseren" negeerlijst + Stat failed. + Stat mislukt. - - Not allowed because you don't have permission to add subfolders to that folder - Niet toegestaan, omdat je geen machtiging hebt om submappen aan die map toe te voegen + Symbolic links are not supported in syncing. + Symbolische links worden niet ondersteund bij het synchroniseren. - - Not allowed because you don't have permission to add files in that folder - Niet toegestaan omdat je geen machtiging hebt om bestanden in die map toe te voegen + The filename cannot be encoded on your file system. + De bestandsnaam kan op je bestandssysteem niet worden gecodeerd. - - Not allowed to upload this file because it is read-only on the server, restoring - Niet toegestaan om dit bestand te uploaden, omdat het alleen-lezen is op de server, herstellen + The filename is blacklisted on the server. + De bestandsnaam staat op de negeerlijst van de server. - - Not allowed to remove, restoring - Niet toegestaan om te verwijderen, herstellen + Upload of %1 exceeds %2 of space left in folder %3. + - - Error while reading the database - Fout bij lezen database + Upload of %1 exceeds %2 of space left in personal files. + - + OCC::PropagateDirectory - Could not delete file %1 from local DB - + - Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum - - - - - - - The folder %1 cannot be made read-only: %2 - Map %1 kon niet alleen-lezen gemaakt worden: %2 - - - - - unknown exception - - - - Error updating metadata: %1 Fout bij bijwerken metadata: %1 - File is currently in use Bestand is al in gebruik - + + The folder %1 cannot be made read-only: %2 + Map %1 kon niet alleen-lezen gemaakt worden: %2 + + + unknown exception + onbekende uitzondering + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Kon bestandsrecord %1 niet verwijderen uit de lokale DB + + Could not get file %1 from local DB - + + + + Error updating metadata: %1 + Fout bij bijwerken metadata: %1 - File %1 cannot be downloaded because encryption information is missing. Bestand %1 kan niet worden gedownload, omdat crypto informatie ontbreekt. - - - Could not delete file record %1 from local DB - Kon bestandsrecord %1 niet verwijderen uit de lokale DB + File %1 downloaded but it resulted in a local file name clash! + Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! - - The download would reduce free local disk space below the limit - De download zou de vrije lokale schijfruimte beperken tot onder de limiet + File %1 has invalid modified time reported by server. Do not save it. + Bestand %1 heeft een ongeldige wijzigingstijd gerapporteerd door de server. Bewaar het niet. - - Free space on disk is less than %1 - Vrije schijfruimte is minder dan %1 + File has changed since discovery + Het bestand is gewijzigd sinds het is gevonden - - + File was deleted from server Bestand was verwijderd van de server - - The file could not be downloaded completely. - Het bestand kon niet volledig worden gedownload. - - - - The downloaded file is empty, but the server said it should have been %1. - Het gedownloade bestand is leeg, maar de server meldde dat het %1 zou moeten zijn. - - - - - File %1 has invalid modified time reported by server. Do not save it. - Bestand %1 heeft een ongeldige wijzigingstijd gerapporteerd door de server. Bewaar het niet. + Free space on disk is less than %1 + Vrije schijfruimte is minder dan %1 - - File %1 downloaded but it resulted in a local file name clash! - Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! + The download would reduce free local disk space below the limit + De download zou de vrije lokale schijfruimte beperken tot onder de limiet - - Error updating metadata: %1 - Fout bij bijwerken metadata: %1 + The downloaded file is empty, but the server said it should have been %1. + Het gedownloade bestand is leeg, maar de server meldde dat het %1 zou moeten zijn. - The file %1 is currently in use Bestand %1 is al in gebruik - - - File has changed since discovery - Het bestand is gewijzigd sinds het is gevonden + The file could not be downloaded completely. + Het bestand kon niet volledig worden gedownload. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - - - - ; Restoration Failed: %1 ; Herstellen mislukt: %1 - A file or folder was removed from a read only share, but restoring failed: %1 Er is een bestand of map verwijderd van een alleen-lezen share, maar herstellen is mislukt: %1 @@ -4516,130 +3794,102 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - kon bestand file %1 niet verwijderen, fout: %2 + Could not create folder %1 + Kon map %1 niet maken + + + Error updating metadata: %1 + Fout bij bijwerken metadata: %1 - Folder %1 cannot be created because of a local file or folder name clash! Map %1 kan niet worden gemaakt wegens een lokaal map- of bestandsnaam conflict! - - Could not create folder %1 - Kon map %1 niet maken + The file %1 is currently in use + Bestand %1 is al in gebruik - - - - + The folder %1 cannot be made read-only: %2 Map %1 kon niet alleen-lezen gemaakt worden: %2 - - unknown exception - onbekende uitzondering - - - - Error updating metadata: %1 - Fout bij bijwerken metadata: %1 + could not delete file %1, error: %2 + kon bestand file %1 niet verwijderen, fout: %2 - - The file %1 is currently in use - Bestand %1 is al in gebruik + unknown exception + onbekende uitzondering - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Kon bestandsrecord %1 niet verwijderen uit de lokale DB + + Could not remove %1 because of a local file name clash Bestand %1 kon niet worden verwijderd, omdat de naam conflicteert met een lokaal bestand - - - Temporary error when removing local item removed from server. - + + + + OCC::PropagateLocalRename - Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB - - - OCC::PropagateLocalRename + + Could not get file %1 from local DB + + - - Folder %1 cannot be renamed because of a local file or folder name clash! - Map %1 kan niet worden hernoemd wegens een lokaal map- of bestandsnaam conflict! - - - - File %1 downloaded but it resulted in a local file name clash! - Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! - - - - - Could not get file %1 from local DB - - - - - Error setting pin state Fout bij instellen pin status - Error updating metadata: %1 Fout bij bijwerken metadata: %1 - - The file %1 is currently in use - Bestand %1 is al in gebruik - - - Failed to propagate directory rename in hierarchy - + - Failed to rename file Kon bestand niet hernoemen - - Could not delete file record %1 from local DB - Kon bestandsrecord %1 niet verwijderen uit de lokale DB + File %1 downloaded but it resulted in a local file name clash! + Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". + Folder %1 cannot be renamed because of a local file or folder name clash! + Map %1 kan niet worden hernoemd wegens een lokaal map- of bestandsnaam conflict! + + + The file %1 is currently in use + Bestand %1 is al in gebruik + + + OCC::PropagateRemoteDelete - Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". @@ -4647,203 +3897,152 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Foutieve HTTP code ontvangen van de server. Verwacht was 201, maar ontvangen "%1 %2". + Error writing metadata to the database: %1 + Fout bij schrijven van metadata naar de database: %1 - Failed to encrypt a folder %1 Kon een map %1 niet versleutelen - - Error writing metadata to the database: %1 - Fout bij schrijven van metadata naar de database: %1 - - - The file %1 is currently in use Bestand %1 is al in gebruik - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Foutieve HTTP code ontvangen van de server. Verwacht was 201, maar ontvangen "%1 %2". + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Kon bestandsrecord %1 niet verwijderen uit de lokale DB + + + Could not get file %1 from local DB + + + Could not rename %1 to %2, error: %3 Kon niet %1 hernoemen naar %2, fout: %3 - - + Error setting pin state + Fout bij instellen pin status + + Error updating metadata: %1 Fout bij bijwerken metadata: %1 - - + Error writing metadata to the database + Fout bij schrijven van Metadata naar de database + + The file %1 is currently in use Bestand %1 is al in gebruik - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht werd 201, maar ontvangen "%1 %2". + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - - - - - Could not delete file record %1 from local DB - Kon bestandsrecord %1 niet verwijderen uit de lokale DB + Error updating metadata: %1 + Fout bij bijwerken metadata: %1 - - Error setting pin state - Fout bij instellen pin status + Failed to unlock encrypted folder. + Kon versleutelde map niet ontgrendelen. - - Error writing metadata to the database - Fout bij schrijven van Metadata naar de database + Failed to upload encrypted file. + Kon versleuteld bestand niet uploaden. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Bestand %1 kan niet worden geüpload omdat er al een ander bestand met dezelfde naam bestaat, al verschillen hoofd/kleine letters - - - File %1 has invalid modification time. Do not upload to the server. Bestand %1 heeft een ongeldige laatste wijziging datum. Upload niet naar de server. - - Local file changed during syncing. It will be resumed. - Lokaal bestand gewijzigd gedurende sync. Wordt opnieuw meegenomen. + File Removed (start upload) %1 + Bestand verwijderd (start upload) %1 - - + Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. - - Failed to unlock encrypted folder. - Kon versleutelde map niet ontgrendelen. - - - - Unable to upload an item with invalid characters - Kon een item met onjuiste tekens niet uploaden - - - - Error updating metadata: %1 - Fout bij bijwerken metadata: %1 + Local file changed during syncing. It will be resumed. + Lokaal bestand gewijzigd gedurende sync. Wordt opnieuw meegenomen. - The file %1 is currently in use Bestand %1 is al in gebruik - - - Upload of %1 exceeds the quota for the folder - Upload van %1 overschrijdt het quotum voor de map - - - - Failed to upload encrypted file. - Kon versleuteld bestand niet uploaden. + Unable to upload an item with invalid characters + Kon een item met onjuiste tekens niet uploaden - - File Removed (start upload) %1 - Bestand verwijderd (start upload) %1 + Upload of %1 exceeds the quota for the folder + Upload van %1 overschrijdt het quotum voor de map - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + File is not accessible on the server. + server error + - - - The local file was removed during sync. - Het lokale bestand werd verwijderd tijdens sync. + + Folder is not accessible on the server. + server error + - Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. - - Poll URL missing - Peilingen-URL ontbreekt - - - - Unexpected return code from server (%1) - Onverwachte reactie van server (%1) - - - Missing File ID from server Ontbrekende File ID van de server - - Folder is not accessible on the server. - server error - + Poll URL missing + Peilingen-URL ontbreekt - - File is not accessible on the server. - server error - + The local file was removed during sync. + Het lokale bestand werd verwijderd tijdens sync. - + + Unexpected return code from server (%1) + Onverwachte reactie van server (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - + Local file changed during sync. + Lokaal bestand gewijzigd tijdens sync. - Poll URL missing URL opvraag ontbreekt - The local file was removed during sync. Het lokale bestand werd verwijderd tijdens sync. - - Local file changed during sync. - Lokaal bestand gewijzigd tijdens sync. - - - The server did not acknowledge the last chunk. (No e-tag was present) De server heeft het laatste deel niet bevestigd (er was geen e-tag aanwezig) @@ -4851,35 +4050,29 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ProxyAuthDialog - + Password: + Wachtwoord: + + Proxy authentication required Proxy-authenticatie vereist - - Username: - Gebruikersnaam: - - - Proxy: Proxy: - The proxy server needs a username and password. De proxyserver heeft een gebruikersnaam en wachtwoord nodig - - Password: - Wachtwoord: + Username: + Gebruikersnaam: - + OCC::SelectiveSyncDialog - Choose What to Sync Kies wat te synchroniseren @@ -4887,78 +4080,103 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::SelectiveSyncWidget - - Loading … - Laden ... + An error occurred while loading the list of sub folders. + Er trad een fout op bij het laden van de lijst met submappen. - - + Deselect remote folders you do not wish to synchronize. Deselecteer de externe mappen die u niet wenst te synchroniseren. - - Name - Naam + Loading … + Laden ... - - Size - Grootte + Name + Naam - - No subfolders currently on the server. Momenteel geen submappen op de server. - - An error occurred while loading the list of sub folders. - Er trad een fout op bij het laden van de lijst met submappen. + Size + Grootte - + OCC::ServerNotificationHandler - + Dismiss + Terzijde leggen + + Reply Antwoord + + + OCC::sesSnackBar - - Dismiss - Terzijde leggen + Error + Fout - - - OCC::SettingsDialog - - Settings - Instellingen + Success + + + + Warning + Waarschuwing + + + OCC::SettingsDialog - %1 Settings This name refers to the application name e.g Nextcloud %1 Instellingen - + Account + Account + + General Algemeen - - Account - Account + New account + - + + Settings + Instellingen + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Zoekresultaten (global) + + + No results found + Geen resultaten gevonden + + + Search globally + Zoek door alles + + OCC::ShareManager - Error Fout @@ -4966,1118 +4184,850 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ShareModel - %1 days - + - - %1 day - + 1 day + - - 1 day - + Could not find local folder for %1 + Kan lokale map niet vinden voor %1 + + + Internal link + Interne link - - Today - + Link share + + + + Secure file drop + Beveiligde bestands-drop - Secure file drop link Beveiligde bestands-drop link - Share link Deellink - - Link share - + Today + Vandaag + + + OCC::SocketApi - - Internal link - Interne link + Activity + Activiteit - - Secure file drop - Beveiligde bestands-drop + Context menu share + Contextmenu delen - - Could not find local folder for %1 - Kan lokale map niet vinden voor %1 + Copy internal link + Kopieer interne link - - - OCC::ShareeModel - - - Search globally - Zoek door alles + Copy private link to clipboard + Kopieer privé-link naar klembord - - No results found - Geen resultaten gevonden - - - - Global search results - Zoekresultaten (global) - - - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Could not encrypt the following folder: "%1". + +Server replied with error: %2 + Kon de volgende map niet versleutelen: "%1". + +Server antwoordde met fout: %2 - - - OCC::SocketApi - - Context menu share - Contextmenu delen + Delete + Verwijderen - - I shared something with you - Ik deelde iets met u + Delete local changes + Verwijder lokale aanpassingen - - - Share options - Deelopties + Encrypt + Versleutel - - - Send private link by email … - Verstuur privélink per e-mail --- + + Expires in %1 minutes + remaining time before lock expires + + + + - - Copy private link to clipboard - Kopieer privé-link naar klembord + Failed to encrypt folder + Kon de map niet versleutelen - Failed to encrypt folder at "%1" Kon een map niet versleutelen in %1 - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - Het account %1 heeft geen begin-tot-eind versleuteling ingesteld. Ga naar je accountinstellingen om mapversleuteling in te stellen. + Folder encrypted successfully + Map succesvol versleuteld - - Failed to encrypt folder - Kon de map niet versleutelen + I shared something with you + Ik deelde iets met u - - Could not encrypt the following folder: "%1". - -Server replied with error: %2 - Kon de volgende map niet versleutelen: "%1". - -Server antwoordde met fout: %2 + Leave this share + Verlaat deze gedeelde locatie - - Folder encrypted successfully - Map succesvol versleuteld + Lock file + Vergrendel bestand - - The following folder was encrypted successfully: "%1" - De volgende map was succesvol versleuteld: "%1" + Locked by %1 + Vergrendeld door %1 - - Select new location … - Selecteer nieuwe locatie ... + Move and rename … + Verplaatsen en hernoemen ... - - - File actions - + Move and upload … + Verplaatsen en uploaden ... - - - Activity - Activiteit + Move, rename and upload … + Verplaatsen, hernoemen en uploaden ... - - Leave this share - Verlaat deze gedeelde locatie + Open in browser + Openen in browser - - + Resharing this file is not allowed Opnieuw delen van dit bestand is niet toegestaan - Resharing this folder is not allowed Opnieuw delen van deze map is niet toegestaan - - Encrypt - Versleutel - - - - Lock file - Vergrendel bestand - - - - Unlock file - Ontgrendel bestand - - - - Locked by %1 - Vergrendeld door %1 - - - - Expires in %1 minutes - remaining time before lock expires - - - - Resolve conflict … Oplossen conflict ... - - Move and rename … - Verplaatsen en hernoemen ... - - - - Move, rename and upload … - Verplaatsen, hernoemen en uploaden ... + Select new location … + Selecteer nieuwe locatie ... - - Delete local changes - Verwijder lokale aanpassingen + Send private link by email … + Verstuur privélink per e-mail --- - - Move and upload … - Verplaatsen en uploaden ... + Share options + Deelopties - - Delete - Verwijderen + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + Het account %1 heeft geen begin-tot-eind versleuteling ingesteld. Ga naar je accountinstellingen om mapversleuteling in te stellen. - - Copy internal link - Kopieer interne link + The following folder was encrypted successfully: "%1" + De volgende map was succesvol versleuteld: "%1" - - - Open in browser - Openen in browser + Unlock file + Ontgrendel bestand - + OCC::SslButton - + %1 + %1 + + + %1 (self-signed) + %1 (zelf ondertekend) + + <h3>Certificate Details</h3> <h3>Certificaat details</h3> - - Common Name (CN): - Common Name (CN): + <h3>Fingerprints</h3> + <h3>Vingerafdrukken</h3> - - Subject Alternative Names: - Alternatieve subject namen: + <h3>Issuer</h3> + <h3>Uitgever</h3> - - Organization (O): - Organisatie (O): + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Let op:</b> Dit certificaat werd handmatig goedgekeurd</p> - - Organizational Unit (OU): - Organisatie unit (OU): + Certificate information: + Certificaat informatie: - - State/Province: - Land/Provincie: + Common Name (CN): + Common Name (CN): - Country: Land: - - Serial: - Serienummer: + Expires on: + Vervalt op: - - <h3>Issuer</h3> - <h3>Uitgever</h3> + Issued on: + Uitgegeven op: - Issuer: Uitgever: - - Issued on: - Uitgegeven op: - - - - Expires on: - Vervalt op: + No support for SSL session tickets/identifiers + Geen ondersteuning voor SSL-sessie tickets/identifiers - - <h3>Fingerprints</h3> - <h3>Vingerafdrukken</h3> + Organization (O): + Organisatie (O): - - SHA-256: - SHA-256: + Organizational Unit (OU): + Organisatie unit (OU): - SHA-1: SHA-1: - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Let op:</b> Dit certificaat werd handmatig goedgekeurd</p> - - - - %1 (self-signed) - %1 (zelf ondertekend) - - - - %1 - %1 + SHA-256: + SHA-256: - - This connection is encrypted using %1 bit %2. - - Deze verbinding is versleuteld via %1 bit %2. - + Serial: + Serienummer: - Server version: %1 Serverversie: %1 - - No support for SSL session tickets/identifiers - Geen ondersteuning voor SSL-sessie tickets/identifiers + State/Province: + Land/Provincie: - - Certificate information: - Certificaat informatie: + Subject Alternative Names: + Alternatieve subject namen: - The connection is not secure De verbinding is niet veilig + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Deze verbinding is NIET veilig, omdat deze niet versleuteld is. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Vertrouw dit certificaat alsnog + &lt;not specified&gt; + &lt;niet gespecificeerd&gt; - - Untrusted Certificate - Niet vertrouwd certificaat + Additional errors: + Additionele fouten: - Cannot connect securely to <i>%1</i>: Kan niet beveiligd verbinden met <i>%1</i>: - - Additional errors: - Additionele fouten: - - - - with Certificate %1 - met certificaat %1 + Country: %1 + Land: %1 - - - - &lt;not specified&gt; - &lt;niet gespecificeerd&gt; + Effective Date: %1 + Ingangsdatum: %1 - - - Organization: %1 - Organisatie: %1 + Expiration Date: %1 + Vervaldatum: %1 - - - Unit: %1 - Unit: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Fingerprint (SHA-256): <tt>%1</tt> - - - Country: %1 - Land: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Fingerprint (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Fingerprint (SHA-256): <tt>%1</tt> + Issuer: %1 + Uitgever: %1 - - - Fingerprint (SHA-512): <tt>%1</tt> - Fingerprint (SHA-512): <tt>%1</tt> + + Organization: %1 + Organisatie: %1 - - Effective Date: %1 - Ingangsdatum: %1 + Trust this certificate anyway + Vertrouw dit certificaat alsnog - - Expiration Date: %1 - Vervaldatum: %1 + Unit: %1 + Unit: %1 - - Issuer: %1 - Uitgever: %1 + Untrusted Certificate + Niet vertrouwd certificaat - + + with Certificate %1 + met certificaat %1 + + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (overgeslagen wegens een eerdere fout, probeer opnieuw over %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Slechts %1 beschikbaar, maar heeft minimaal %2 nodig om te starten - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Kon de lokale sync-database niet openen of aanmaken. Zorg ervoor dat je schrijf-toegang hebt in de sync-map - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Schijfruimte laag: Downloads die de vrije ruimte tot onder %1 zouden reduceren, zijn overgeslagen. + Cannot open the sync journal + Kan het sync transactielog niet openen - - - There is insufficient space available on the server for some uploads. - Onvoldoende schijfruimte op de server voor sommige uploads. + + Could not set file record to local DB: %1 + Kon bestandsrecord %1 niet instellen op de lokale DB: %1 - - Unresolved conflict. - Bestandsconflict + Could not update file metadata: %1 + Kon bestand metadata niet bijwerken: %1 - Could not update file: %1 Kon bestand niet bijwerken: %1 - Could not update virtual file metadata: %1 Kon virtuele bestand metadata niet bijwerken: %1 - - Could not update file metadata: %1 - Kon bestand metadata niet bijwerken: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Schijfruimte laag: Downloads die de vrije ruimte tot onder %1 zouden reduceren, zijn overgeslagen. - - Could not set file record to local DB: %1 - Kon bestandsrecord %1 niet instellen op de lokale DB: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Slechts %1 beschikbaar, maar heeft minimaal %2 nodig om te starten - - Using virtual files with suffix, but suffix is not set - gebruik maken van virtuele bestanden met achtervoegsel, maar achtervoegsel niet ingesteld + There is insufficient space available on the server for some uploads. + Onvoldoende schijfruimte op de server voor sommige uploads. - - Unable to read the blacklist from the local database - Kan de blacklist niet lezen uit de lokale database + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Kon de lokale sync-database niet openen of aanmaken. Zorg ervoor dat je schrijf-toegang hebt in de sync-map - Unable to read from the sync journal. Niet mogelijk om te lezen uit het synchronisatie verslag. - - Cannot open the sync journal - Kan het sync transactielog niet openen + Unable to read the blacklist from the local database + Kan de blacklist niet lezen uit de lokale database - - - OCC::SyncStatusSummary - - - - Offline - Offline + Unresolved conflict. + Bestandsconflict - - You need to accept the terms of service - + Using virtual files with suffix, but suffix is not set + gebruik maken van virtuele bestanden met achtervoegsel, maar achtervoegsel niet ingesteld + + + OCC::SyncStatusSummary - - Reauthorization required - + %1 of %2 + %1 van %2 - - Please grant access to your sync folders - + %1 of %2 · %3 left + %1 van %2 · %3 resterend - - - All synced! Alles gesynchroniseerd! - - Some files couldn't be synced! - Sommige bestanden konden niet gesynchroniseerd worden! + Checking folder changes + Controleren op wijzigingen map - - See below for errors - Zie hieronder voor fouten + Offline + Offline - - Checking folder changes - Controleren op wijzigingen map + See below for errors + Zie hieronder voor fouten - - Syncing changes - Synchroniseren wijzigingen + See below for warnings + Zie hieronder voor waarschuwingen - - Sync paused - Synchronisatie gepauzeerd + Some files could not be synced! + Sommige bestanden konden niet gesynchroniseerd worden! - - Some files could not be synced! + Some files couldn't be synced! Sommige bestanden konden niet gesynchroniseerd worden! - - See below for warnings - Zie hieronder voor waarschuwingen + Sync paused + Synchronisatie gepauzeerd - Syncing Synchroniseren - - %1 of %2 · %3 left - %1 van %2 · %3 resterend - - - - %1 of %2 - %1 van %2 + Syncing changes + Synchroniseren wijzigingen - Syncing file %1 of %2 Bestand %1 van %2 synchroniseren - - - No synchronisation configured - + + You need to accept the terms of service + - + OCC::Systray - + Add account + Account toevoegen + + Download Download - - Add account - Account toevoegen + Exit %1 + %1 afsluiten + + + Help + Help - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. - + Open %1 Desktop - - Pause sync Pauzeer sync - - + Pause sync for all + Pauzeer sync voor iedereen + + Resume sync Vervolg sync - + Resume sync for all + Vervolg sync voor iedereen + + Settings Instellingen + + + OCC::TermsOfServiceCheckWidget - - Help - Help + Copy Link + Kopiëren link + + + Link copied to clipboard. + Link gekopieerd naar het klembord. - - Exit %1 - %1 afsluiten + Open Browser + - - Pause sync for all - Pauzeer sync voor iedereen + Polling + - - Resume sync for all - Vervolg sync voor iedereen + Waiting for terms to be accepted + - + - OCC::TermsOfServiceCheckWidget + OCC::Theme - - Waiting for terms to be accepted - + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + - - Polling - + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Gebruik makend van virtuele bestanden plugin: %1</small></p> - - Link copied to clipboard. - + <p>This release was supplied by %1.</p> + <p>Deze release is geleverd door %1</p> - - Open Browser - + ExpandMemory-Link + - - Copy Link - + ExpandMemory-Link_STRATO + - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - + Help-Link + - - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - + Help-Link_STRATO + - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Gebruik makend van virtuele bestanden plugin: %1</small></p> + LegalNotice-Link + - - <p>This release was supplied by %1.</p> - <p>Deze release is geleverd door %1</p> + LegalNotice-Link_STRATO + - + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Fout bij het laden van providers. - Failed to fetch search providers for '%1'. Error: %2 Fout bij het zoeken van providers voor '%1'. Error: %2 - - Search has failed for '%2'. - Fout bij het zoeken naar '%2'. - - - Search has failed for '%1'. Error: %2 Fout bij het zoeken naar '%1'. Error: %2 - + + Search has failed for '%2'. + Fout bij het zoeken naar '%2'. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Kon metadata niet uploaden. + Failed to finalize item. + Kon item niet afronden. - - + Failed to unlock encrypted folder. Kon versleutelde map niet ontgrendelen. - - Failed to finalize item. - Kon item niet afronden. + Failed to update folder metadata. + Kon metadata niet uploaden. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Fout bij bijwerken metadata voor een map: %1 + Could not add or remove user %1 to access folder %2 + Kon gebruiker %1 niet toevoegen of verwijderen om toegang te krijgen tot map %2 - Could not fetch public key for user %1 Kon de publieke sleutel voor gebruiker %1 niet vinden - Could not find root encrypted folder for folder %1 Kon de versleutelde basismap voor map %1 niet vinden - - Could not add or remove user %1 to access folder %2 - Kon gebruiker %1 niet toevoegen of verwijderen om toegang te krijgen tot map %2 + Error updating metadata for a folder %1 + Fout bij bijwerken metadata voor een map: %1 - Failed to unlock a folder. Kon een map niet ontgrendelen. OCC::User - - - End-to-end certificate needs to be migrated to a new one - - - - - Trigger the migration - - - %n notification(s) - %n melding%n meldingen - - - - - “%1” was not synchronized - + + %n melding + %n meldingen + - - Insufficient storage on the server. The file requires %1 but only %2 are available. - + End-to-end certificate needs to be migrated to a new one + - - Insufficient storage on the server. The file requires %1. - + Open %1 Assistant in browser + The placeholder will be the application name. Please keep it + - - Insufficient storage on the server. - + Open %1 Talk in browser + The placeholder will be the application name. Please keep it + - - There is insufficient space available on the server for some uploads. - + Public Share Link + - - Retry all uploads - Probeer alle uploads opnieuw + Quota Warning - %1 percent or more storage in use + - - - - Resolve conflict - Conflict oplossen... + + Quota is updated; %1 percent of the total space is used. + - Rename file Bestand hernoemen - - Public Share Link - - - - - Open %1 Assistant in browser - The placeholder will be the application name. Please keep it - - - - - Open %1 Talk in browser - The placeholder will be the application name. Please keep it - + Resolve conflict + Conflict oplossen... - - Open %1 Assistant - The placeholder will be the application name. Please keep it - + Retry all uploads + Probeer alle uploads opnieuw - - Assistant is not available for this account. - + Trigger the migration + + + + OCC::UserModel - - Assistant is already processing a request. - + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Wilt je echt de verbinding met het account <i>%1</i> verbreken?</p><p><b>Let op:</b> Hierdoor verwijder je <b>geen</b> bestanden.</p> - - Sending your request… - + Cancel + Annuleren - - Sending your request … - + Confirm Account Removal + Bevestig verwijderen account - - No response yet. Please try again later. - + Leave share + - - No supported assistant task types were returned. - + Remove account + - - - Waiting for the assistant response… - + + Remove connection + Verwijderen verbinding - - - Assistant request failed (%1). - - - - - Quota is updated; %1 percent of the total space is used. - - - - - Quota Warning - %1 percent or more storage in use - - - + - OCC::UserModel - - - Confirm Account Removal - Bevestig verwijderen account + OCC::UserStatusSelectorModel + + %n day(s) + + + + - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Wilt je echt de verbinding met het account <i>%1</i> verbreken?</p><p><b>Let op:</b> Hierdoor verwijder je <b>geen</b> bestanden.</p> + + %n hour(s) + + + + + + + %n minute(s) + + + + - - Remove connection - Verwijderen verbinding + 1 hour + 1 uur - - Cancel - Annuleren + 30 minutes + 30 minuten - - Leave share - + 4 hours + 4 uren - - Remove account - + Could not clear status message. Make sure you are connected to the server. + Kan het statusbericht niet wissen. Zorg ervoor dat je verbonden bent met de server. - - - OCC::UserStatusSelectorModel - Could not fetch predefined statuses. Make sure you are connected to the server. Kan vooraf gedefinieerde statussen niet ophalen. Zorg ervoor dat je verbonden bent met de server. - Could not fetch status. Make sure you are connected to the server. Kan status niet ophalen. Zorg ervoor dat je verbonden bent met de server. - - Status feature is not supported. You will not be able to set your status. - Gebruikersstatus functie wordt niet ondersteund. Je zult je gebruikersstatus niet kunnen instellen. - - - - Emojis are not supported. Some status functionality may not work. - Emoji's worden niet ondersteund. Sommige gebruikersstatusfuncties werken mogelijk niet. - - - Could not set status. Make sure you are connected to the server. Kan status niet instellen. Zorg ervoor dat je verbonden bent met de server. - - Could not clear status message. Make sure you are connected to the server. - Kan het statusbericht niet wissen. Zorg ervoor dat je verbonden bent met de server. - - - - Don't clear Niet wissen - - 30 minutes - 30 minuten - - - - 1 hour - 1 uur + Emojis are not supported. Some status functionality may not work. + Emoji's worden niet ondersteund. Sommige gebruikersstatusfuncties werken mogelijk niet. - - 4 hours - 4 uren + Less than a minute + Minder dan een minuut - - - Today - Vandaag + Status feature is not supported. You will not be able to set your status. + Gebruikersstatus functie wordt niet ondersteund. Je zult je gebruikersstatus niet kunnen instellen. - - This week Deze week - - Less than a minute - Minder dan een minuut - - - - %n minute(s) - - - - - %n hour(s) - - - - - %n day(s) - + Today + Vandaag - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. - - - - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + - Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + + + OCC::VfsDownloadErrorDialog - - Download error - Downloadfout + %1 could not be downloaded. + %1 kon niet worden gedownload. - - - Error downloading - Fout bij downloaden + + > More details + > Meer details - Could not be downloaded - + - - > More details - > Meer details + Download error + Downloadfout - - More details - Meer details + Error downloading + Fout bij downloaden - Error downloading %1 Fout bij downloaden %1 - - %1 could not be downloaded. - %1 kon niet worden gedownload. + More details + Meer details - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum @@ -6085,8 +5035,6 @@ Server antwoordde met fout: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum @@ -6094,12 +5042,10 @@ Server antwoordde met fout: %2 OCC::WebEnginePage - Invalid certificate detected Ongeldig certificaat gedetecteerd - The host "%1" provided an invalid certificate. Continue? De server "%1" heeft een ongeldig certificaat . Wilt u doorgaan? @@ -6107,769 +5053,642 @@ Server antwoordde met fout: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Je bent afgemeld bij je account %1 op %2. Meld opnieuw aan. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formulier - - Log in - Aanmelden - - - - Sign up with provider - Aanmelden bij provider + Host your own server + Host je eigen server - - + Keep your data secure and under your control Hou je gegevens veilig en in eigen beheer - - Secure collaboration & file exchange - Veilige samenwerking & bestandsuitwisseling - - - - Easy-to-use web mail, calendaring & contacts - Eenvoudig te gebruiken webmail, agenda & contacten - - - - Screensharing, online meetings & web conferences - Schermdelen, online afspraken & web conferenties + Log in + Aanmelden - - Host your own server - Host je eigen server + Sign up with provider + Aanmelden bij provider - + OCC::WizardProxySettingsDialog - - Proxy Settings - Dialog window title for proxy settings - + HTTP(S) proxy + HTTP(S) proxy - Hostname of proxy server - - - - - Username for proxy server - + Hostnaam van proxyserver - Password for proxy server - + Wachtwoord voor proxyserver - - HTTP(S) proxy - + Proxy Settings + Dialog window title for proxy settings + Proxy Instellingen - SOCKS5 proxy - + SOCKS5 proxy - + + Username for proxy server + Gebruikersnaam voor proxyserver + + - OCC::ownCloudGui + OwncloudAdvancedSetupPage - - Please sign in - Log alstublieft in + &Local Folder + &Lokale map - - - There are no sync folders configured. - Er zijn geen synchronisatie-mappen geconfigureerd. + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Als deze checkbox is aangevinkt zullen bestaande bestanden in de lokale map worden gewist om een schone sync vanaf de server te starten.</p><p>Vink dit niet aan als de lokale bestanden naar de map op de server zouden moeten worden geüploadet.</p></body></html> - - Disconnected from %1 - Losgekoppeld van %1 + Ask before syncing folders larger than + Vraag bevestiging voor synchronisatie van mappen groter dan - - Unsupported Server Version - Niet-ondersteunde server versie + Choose different folder + Kies een andere map - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - De server van account %1 gebruikt een niet ondersteunde versie %2. Het gebruik van deze clientsoftware met niet-ondersteunde server versies is niet getest en mogelijk gevaarlijk. Verdergaan is op eigen risico. + Choose what to sync + Selectieve synchronisatie - - Terms of service - + Erase local folder and start a clean sync + Wis de map op je computer en start een schone sync - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - + Keep local data + Bewaar de lokale gegevens - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - + Local Folder + Lokale map - - macOS VFS for %1: Sync is running. - + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - macOS VFS for %1: Last sync was successful. - + Server address + Serveradres - - macOS VFS for %1: A problem was encountered. - + Sync Logo + Sync Logo - - macOS VFS for %1: An error was encountered. - + Synchronize everything from server + Synchroniseer alles vanaf de server - - Checking for changes in remote "%1" - Controleren op wijzigingen in externe "%1" + Username + Gebruikersnaam + + + OwncloudHttpCredsPage - - Checking for changes in local "%1" - Controleren op wijzigingen in lokale "%1" + &Password + &Wachtwoord - - - Internal link copied - + + &Username + &Gebruikersnaam + + + OwncloudSetupPage - - The internal link has been copied to the clipboard. - + Server address + Serveradres - - Disconnected from accounts: - Losgekoppeld van account: + This is the link to your %1 web interface when you open it in the browser. + De link naar je %1 web interface wanneer je die opent in de browser. + + + progress - - Account %1: %2 - Account %1: %2 + Deleted + Verwijderd - - Account synchronization is disabled - Account synchronisatie is uitgeschakeld + Deleting + Verwijderen - - %1 (%2, %3) - %1 (%2, %3) + Downloaded + Gedownload - - - OwncloudAdvancedSetupPage - - Username - Gebruikersnaam + Downloading + Downloaden - - Local Folder - Lokale map + Error + Fout - - Choose different folder - Kies een andere map + Filesystem access error + Toegangsfout van het bestandssysteem - - Server address - Serveradres + Ignored + Genegeerd - - Sync Logo - Sync Logo + Ignoring + Negeren - - Synchronize everything from server - Synchroniseer alles vanaf de server + Moved to %1 + Verplaatst naar %1 - - Ask before syncing folders larger than - Vraag bevestiging voor synchronisatie van mappen groter dan + Moving + Verplaatsen - - Ask before syncing external storages - Vraag bevestiging voor synchronisatie externe opslag + Replaced by virtual file + Vervangen door virtueel bestand - - Keep local data - Bewaar de lokale gegevens + Server version downloaded, copied changed local file into case conflict conflict file + Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Als deze checkbox is aangevinkt zullen bestaande bestanden in de lokale map worden gewist om een schone sync vanaf de server te starten.</p><p>Vink dit niet aan als de lokale bestanden naar de map op de server zouden moeten worden geüploadet.</p></body></html> + Server version downloaded, copied changed local file into conflict file + Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand - - Erase local folder and start a clean sync - Wis de map op je computer en start een schone sync + Unknown + Onbekend - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Updated end-to-end encryption metadata + - - Choose what to sync - Selectieve synchronisatie + Updated local metadata + Lokale metadata geüploaded - - &Local Folder - &Lokale map + Updated local virtual files metadata + Lokale virtuele bestanden metadata geüploaded - - - OwncloudHttpCredsPage - - &Username - &Gebruikersnaam + Updating end-to-end encryption metadata + + + + Updating local metadata + Bijwerken lokale metadata - - &Password - &Wachtwoord + Updating local virtual files metadata + Bijwerken lokale virtuele bestanden metadata - - - OwncloudSetupPage - - Logo - Logo + Uploaded + Geüpload - - Server address - Serveradres + Uploading + Uploaden - - This is the link to your %1 web interface when you open it in the browser. - De link naar je %1 web interface wanneer je die opent in de browser. + Virtual file created + Virtueel bestand gecreëerd - + ProxySettings - Form - + Formulier - - Proxy Settings - + Host + Server - Manually specify proxy - + Specificeer proxy handmatig - - Host - + No proxy + Geen proxy - - - Proxy server requires authentication - + + Note: proxy settings have no effects for accounts on localhost + Let op: proxy-instellingen hebben geen effect voor accounts op localhost - - Note: proxy settings have no effects for accounts on localhost - + Proxy Settings + Proxy Instellingen - - Use system proxy - + Proxy server requires authentication + Proxyserver heeft verificatie nodig - - No proxy - + Use system proxy + Gebruik systeem proxy - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %nd%nd - - - - in the future - in de toekomst + + %nd + %nd + - %nh delay in hours after an activity - %nu%nu + + %nu + %nu + - - - now - nu + + %nmin + delay in minutes after an activity + + + + - 1min one minute after activity date and time - - - - - %nmin - delay in minutes after an activity - + - - Some time ago - Even geleden + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + Kon foutopsporingsarchief niet aanmaken op de geselecteerde locatie! - - New folder - Nieuwe map + Error deleting the file + - Failed to create debug archive Kon foutopsporingsarchief niet aanmaken - - Could not create debug archive in selected location! - Kon foutopsporingsarchief niet aanmaken op de geselecteerde locatie! - - - - Could not create debug archive in temporary location! - + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + - - Could not remove existing file at destination! - + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + - - Could not move debug archive to selected location! - + New folder + Nieuwe map - - You renamed %1 - Je hernoemde %1 + Paths beginning with '#' character are not supported in VFS mode. + - - You deleted %1 - Je verwijderde %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + - - You created %1 - Je creëerde %1 + Some time ago + Even geleden - - You changed %1 - Je wijzigde %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + - Synced %1 Gesynchroniseerd %1 - - Error deleting the file - + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + - - Paths beginning with '#' character are not supported in VFS mode. - + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - + The server does not recognize the request method. Please contact your server administrator for help. + - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - + The server does not support the version of the connection being used. Contact your server administrator for help. + - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - + This file type isn’t supported. Please contact your server administrator for assistance. + - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + - - This file type isn’t supported. Please contact your server administrator for assistance. - + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - + You changed %1 + Je wijzigde %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - + You created %1 + Je creëerde %1 - - The server does not recognize the request method. Please contact your server administrator for help. - + You deleted %1 + Je verwijderde %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + - - The server does not support the version of the connection being used. Contact your server administrator for help. - + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - + You renamed %1 + Je hernoemde %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - + - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - + in the future + in de toekomst - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + now + nu - + ResolveConflictsDialog - - - Solve sync conflicts - Los synchronisatieconflicten op - - %1 files in conflict indicate the number of conflicts to resolve - - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Kies of je lokale versie, server versie of beide wilt behouden. Als je voor beide kiest, krijgt het lokale bestand een nummer toegevoegd aan de naam. + + + + - All local versions Alle lokale versies - All server versions Alle server versies - + Cancel + Annuleren + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Kies of je lokale versie, server versie of beide wilt behouden. Als je voor beide kiest, krijgt het lokale bestand een nummer toegevoegd aan de naam. + + Resolve conflicts Los conflicten op - - Cancel - Annuleren + Solve sync conflicts + Los synchronisatieconflicten op + + + + SesErrorBox + + Error + Fout + + SesTrayHeader + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + ShareDelegate - Copied! Gekopieerd! + + Share options + Deelopties + ShareDetailsPage - - An error occurred setting the share password. - Er trad een fout op bij het instellen van het wachtwoord voor de deellink - - - - Edit share - Bewerk deellink + Add another link + Nog een link toevoegen - - Share label - Deel label + Allow resharing + Opnieuw delen toestaan - - Allow upload and editing Uploaden en bewerken toestaan - - View only - Alleen bekijken + An error occurred setting the share password. + Er trad een fout op bij het instellen van het wachtwoord voor de deellink - - File drop (upload only) - Bestands-drop (alleen uploaden) + Copy share link + Kopiëren deellink + + + Custom Permissions + - - Allow resharing - Opnieuw delen toestaan + Enter a note for the recipient + + + + File drop (upload only) + Bestands-drop (alleen uploaden) - Hide download Verberg download - + Note to recipient + Notitie voor ontvanger + + Password protection - + - Set expiration date Instellen vervaldatum - - Note to recipient - Notitie voor ontvanger - - - - Enter a note for the recipient - + Share link copied! + Deellink gekopieerd! - Unshare Delen opheffen - - Add another link - Nog een link toevoegen + View only + Alleen bekijken + + + ShareeSearchField - - Share link copied! - Deellink gekopieerd! + Search for users or groups… + Zoeken naar gebruikers of groepen ... - - Copy share link - Kopiëren deellink + Sharing is not available for this folder + Delen is niet beschikbaar voor deze map ShareView - + Expires in %1 + + + Password required for new share Wachtwoord vereist voor delen - Share password Wachtwoord - Shared with you by %1 - + - - Expires in %1 - - - - Sharing is disabled Delen is uitgeschakeld - - This item cannot be shared. - Dit item kan niet worden gedeeld - - - Sharing is disabled. Delen is uitgeschakeld. - - - ShareeSearchField - - - Search for users or groups… - Zoeken naar gebruikers of groepen ... - - - - Sharing is not available for this folder - Delen is niet beschikbaar voor deze map + + This item cannot be shared. + Dit item kan niet worden gedeeld - + SyncJournalDb - Failed to connect database. Kon niet verbinden met database. @@ -6877,35 +5696,25 @@ Server antwoordde met fout: %2 SyncStatus - - Sync now - Nu synchroniseren + Open browser + - - + Resolve conflicts Los conflicten op - - Open browser - - - - - Open settings - Open instellingen + Sync now + Nu synchroniseren - + TalkReplyTextField - Reply to … Antwoord aan ... - Send reply to chat message Stuur antwoord op chatbericht @@ -6913,76 +5722,176 @@ Server antwoordde met fout: %2 TermsOfServiceCheckWidget - + Logo + Logo + + + Switch to your browser to accept the terms of service + + + Terms of Service - + + + + theme - - Logo - + Error occurred during setup + Er trad een fout op bij het instellen - - Switch to your browser to accept the terms of service - + Error occurred during sync + Er trad een fout op tijdens synchronisatie - + + Preparing to sync + Voorbereiden synchronisatie + + + Stopping sync + Synchronisatie stoppen + + + Sync is paused + Synchronisatie is gepauzeerd + + + Sync is running + Bezig met synchroniseren + + + Sync status is unknown + Synchronisatiestatus is onbekend + + + Sync was successful + Synchronisatie was geslaagd + + + Sync was successful but some files were ignored + Synchronisatie geslaagd, sommige bestanden werden genegeerd + + + Waiting to start syncing + In afwachting van synchronisatie + + TrayFoldersMenuButton - - Open local folder - Open lokale map + Files + - - Open local or team folders - + Open %1 in file explorer + Open %1 in bestandsverkenner + + + Open local folder + Open lokale map - Open local folder "%1" Open lokale map "%1" - - Open team folder "%1" - + Open local or team folders + - - Open %1 in file explorer - Open %1 in bestandsverkenner + Open team folder "%1" + - User group and local folders menu Menu gebruikersgroep en lokale mappen + + TrayWindowAccountMenu + + Account switcher and settings menu + Wisselen van gebruiker en instellingsmenu + + + Add account + + + + Current account + Huidige gebruiker + + + Current account avatar + Huidige gebruiker avatar + + + Current account status is do not disturb + + + + Current account status is online + + + + Exit + Verlaat + + + Pause sync for all + + + + Resume sync for all + + + + Settings + Instellingen + + TrayWindowHeader - + More apps + + + + Open %1 in browser + + + Open local or team folders - + + + + TrayWindowHeaderBar - More apps - + - Open %1 in browser - + - + + Open Nextcloud in browser + + + + Open local or team folders + + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Zoek in bestanden, berichten, afspraak ... @@ -6990,15 +5899,13 @@ Server antwoordde met fout: %2 UnifiedSearchPlaceholderView - Start typing to search - + UnifiedSearchResultFetchMoreTrigger - Load more results Laad meer resultaten @@ -7006,7 +5913,6 @@ Server antwoordde met fout: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Zoekresultaat skelet. @@ -7014,7 +5920,6 @@ Server antwoordde met fout: %2 UnifiedSearchResultListItem - Load more results Laad meer resultaten @@ -7022,7 +5927,6 @@ Server antwoordde met fout: %2 UnifiedSearchResultNothingFound - No results for Geen resultaten voor @@ -7030,7 +5934,6 @@ Server antwoordde met fout: %2 UnifiedSearchResultSectionItem - Search results section %1 Zoekresultaten sectie %1 @@ -7038,128 +5941,88 @@ Server antwoordde met fout: %2 UserLine - - Switch to account - Omschakelen naar account - - - - Current account status is online - Huidige gebruikersstatus is online - - - - Current account status is do not disturb - Huidige gebruikersstatus is niet storen - - - - Account sync status requires attention - - - - Account actions Accountacties - - Set status - Status instellen - - - - Status message - + Log in + Meld u aan - Log out Afmelden - - Log in - Meld u aan + Remove account + - + + Switch to account + Omschakelen naar account + + UserStatusMessageView - - Status message - - - - - What is your status? - - - - - Clear status message after - + Apply + Toepassen - - + Cancel Annuleren - Clear Wissen - - Apply - + Clear status message after + - - - UserStatusSetStatusView - - Online status - Online status + Status message + Status bericht - - Online - Online + What is your status? + + + + + UserStatusSetStatusView + + Appear offline + - Away Afwezig - Busy Bezet - Do not disturb Niet storen - + Invisible + Onzichtbaar + + Mute all notifications Demp alle meldingen - - Invisible - Onzichtbaar + Online + Online - - Appear offline - + Online status + Online status - Status message Status bericht @@ -7167,390 +6030,128 @@ Server antwoordde met fout: %2 Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - - - - - %n month(s) - - - - %n day(s) - + + + + - %n hour(s) - + + + + - %n minute(s) - + + + + - - %n second(s) - - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - De header van het controlegetal is misvormd. - - - - The checksum header contained an unknown checksum type "%1" - Het header controlegetal bevat een onbekend controlegetal type "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - Het gedownloade bestand komt niet overeen met het controlegetal. Het wordt opnieuw verwerkt. "%1" != "%2" - - - - main.cpp - - - System Tray not available - Systeemvak niet beschikbaar - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 heeft een werkend systeemvak nodig. Als je XFCE draait volg je <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">deze instructies</a>. Installeer anders een systeemvak applicatie zoals "trayer" en probeer het opnieuw. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Gebouwd vanaf Git revisie <a href="%1">%2</a> op %3, %4 gebruik makend van Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Virtueel bestand gecreëerd - - - - Replaced by virtual file - Vervangen door virtueel bestand - - - - Downloaded - Gedownload - - - - Uploaded - Geüpload - - - - Server version downloaded, copied changed local file into conflict file - Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand - - - - Server version downloaded, copied changed local file into case conflict conflict file - Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand - - - - Deleted - Verwijderd - - - - Moved to %1 - Verplaatst naar %1 - - - - Ignored - Genegeerd - - - - Filesystem access error - Toegangsfout van het bestandssysteem - - - - - Error - Fout - - - - Updated local metadata - Lokale metadata geüploaded - - - - Updated local virtual files metadata - Lokale virtuele bestanden metadata geüploaded - - - - Updated end-to-end encryption metadata - - - - - - Unknown - Onbekend - - - - Downloading - Downloaden - - - - Uploading - Uploaden - - - - Deleting - Verwijderen - - - - Moving - Verplaatsen - - - - Ignoring - Negeren - - - - Updating local metadata - Bijwerken lokale metadata + %n month(s) + + + + - - - Updating local virtual files metadata - Bijwerken lokale virtuele bestanden metadata + + %n second(s) + + + + - - - Updating end-to-end encryption metadata - + + %n year(s) + + + + - + - theme - - - Sync status is unknown - Synchronisatiestatus is onbekend - - - - Waiting to start syncing - In afwachting van synchronisatie - - - - Sync is running - Bezig met synchroniseren - - - - Sync was successful - Synchronisatie was geslaagd - - - - Sync was successful but some files were ignored - Synchronisatie geslaagd, sommige bestanden werden genegeerd - - - - Error occurred during sync - Er trad een fout op tijdens synchronisatie - - - - Error occurred during setup - Er trad een fout op bij het instellen - - - - Stopping sync - Synchronisatie stoppen - + utility - - Preparing to sync - Voorbereiden synchronisatie + Always available locally + Altijd lokaal beschikbaar - - Sync is paused - Synchronisatie is gepauzeerd + Available online only + Alleen online beschikbaar - - - utility - Could not open browser Kon browser niet openen - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Er trad een fout op bij het starten van de browser om naar URL %1 te gaan. Misschien is er geen standaardbrowser geconfigureerd? - - - Could not open email client Kon e-mailclient niet openen - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Er trad een fout op bij het starten van de e-mailclient om een nieuw bericht te maken. Misschien is er geen e-mailclient gedefinieerd? - - - - Always available locally - Altijd lokaal beschikbaar - - - Currently available locally Momenteel lokaal beschikbaar - - Some available online only - Sommige alleen online beschikbaar - - - - Available online only - Alleen online beschikbaar - - - - Make always available locally - Maak altijd lokaal beschikbaar - - - Free up local space Lokale ruimte vrijmaken - - - FileProviderEvictionDialog - - - Remove local copies - Verwijder lokale kopieën - - - - Local copies - Lokale kopieën - - - - Reload - Herlaad + + Make always available locally + Maak altijd lokaal beschikbaar - - - FileProviderStorageInfo - - Local storage use - Gebruik lokale opslag + Some available online only + Sommige alleen online beschikbaar - - %1 GB of %2 GB remote files synced - %1 GB van %2 GB remote bestanden gesychroniseerd + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Er trad een fout op bij het starten van de browser om naar URL %1 te gaan. Misschien is er geen standaardbrowser geconfigureerd? - - Free up space … - Maak ruimte ... + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Er trad een fout op bij het starten van de e-mailclient om een nieuw bericht te maken. Misschien is er geen e-mailclient gedefinieerd? - + - FileProviderSyncStatus - - - Syncing - Synchroniseren - + ValidateChecksumHeader - - All synced! - Alles gesynchroniseerd! + The checksum header contained an unknown checksum type "%1" + Het header controlegetal bevat een onbekend controlegetal type "%1" - - Request sync - Vraag synchronisatie aan + The checksum header is malformed. + De header van het controlegetal is misvormd. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Vraag een synchronisatie van wijzigingen voor de VFS-omgeving aan. -macOS kan dit verzoek negeren of uitstellen. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + Het gedownloade bestand komt niet overeen met het controlegetal. Het wordt opnieuw verwerkt. "%1" != "%2" \ No newline at end of file diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 1f4b0f356fcb8..5f4938af3293b 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -1,180 +1,140 @@ - + + ActivityItem - - Open %1 locally - Öppna %1 lokalt - - - In %1 Om %1 - + + Open %1 locally + Öppna %1 lokalt + + ActivityItemContent - - Open file details - Öppna filinformation - - - - File details - Filinformation - - - - File actions - Filåtgärder - - - Dismiss Avfärda - + + Open file details + Öppna filinformation + + ActivityList - Activity list Aktivitetslista - - Scroll to top - Bläddra till toppen - - - No activities yet Inga aktiviteter än - + + Scroll to top + Bläddra till toppen + + CallNotificationDialog - - Talk notification caller avatar - Avatar för samtalsavisering - - - Answer Talk call notification Svara på samtalsavisering från Talk - Decline Avvisa - Decline Talk call notification Avvisa samtalsavisering från Talk - + + Talk notification caller avatar + Avatar för samtalsavisering + + CloudProviderWrapper - %1 (%2, %3) %1 (%2, %3) - Checking for changes in "%1" Söker efter ändringar i "%1" - - Syncing %1 of %2 (%3 left) - Synkroniserar %1 av %2 (%3 kvar) - - - - Syncing %1 of %2 - Synkroniserar %1 av %2 - - - - Syncing %1 (%2 left) - Synkroniserar %1 (%2 kvar) + Help + Hjälp - - Syncing %1 - Synkroniserar %1 + Log out + Logga ut - - No recently changed files Inga nyligen ändrade filer - - Sync paused - Synkroniseringen pausad - - - - Syncing - Synkroniserar - - - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Öppna %1 Desktop - Open in browser Öppna i webbläsare - - Recently changed - Nyligen ändrade - - - Pause synchronization Pausa synkronisering - - Help - Hjälp + Quit sync client + Avsluta + + + Recently changed + Nyligen ändrade - Settings Inställningar - - Log out - Logga ut + Sync paused + Synkroniseringen pausad - - Quit sync client - Avsluta + Syncing + Synkroniserar - + + Syncing %1 + Synkroniserar %1 + + + Syncing %1 (%2 left) + Synkroniserar %1 (%2 kvar) + + + Syncing %1 of %2 + Synkroniserar %1 av %2 + + + Syncing %1 of %2 (%3 left) + Synkroniserar %1 av %2 (%3 kvar) + + ConflictDelegate - Local version Lokal version - Server version Serverversion @@ -182,67 +142,53 @@ CurrentAccountHeaderButton - - Current account - Nuvarande konto - - - - - Resume sync for all - Återuppta synkronisering för alla - - - - - Pause sync for all - Pausa synkronisering för alla + Account switcher and settings menu + Kontobytare och inställningsmeny - - + Add account Lägg till konto - Add new account Lägg till nytt konto - - Settings - Inställningar - - - - Exit - Avsluta + Current account + Nuvarande konto - Current account avatar Avatar för aktuellt konto - + Current account status is do not disturb + Aktuell kontostatus är stör ej + + Current account status is online Aktuell kontostatus är online - - Current account status is do not disturb - Aktuell kontostatus är stör ej + Exit + Avsluta - - Account switcher and settings menu - Kontobytare och inställningsmeny + Pause sync for all + Pausa synkronisering för alla - + + Resume sync for all + Återuppta synkronisering för alla + + + Settings + Inställningar + + EditFileLocallyLoadingDialog - Opening file for local editing Öppnar fil för lokal redigering @@ -250,7 +196,6 @@ EmojiPicker - No recent emojis Inga senaste emojier @@ -258,7 +203,6 @@ EncryptionTokenDiscoveryDialog - Discovering the certificates stored on your USB token Sök efter certifikaten som är lagrade på din USB-token @@ -266,44 +210,42 @@ ErrorBox - Error Fel - - FileActionsWindow - - - File actions for %1 - Filåtgärder för %1 - - FileDetailsPage - - Activity - Aktivitet - - - - Sharing - Delning + Dismiss + Avfärda FileDetailsWindow - File details of %1 · %2 Filinformation för %1 · %2 + + FileProviderEvictionDialog + + Local copies + Lokala kopior + + + Reload + Ladda om + + + Remove local copies + Ta bort lokala kopior + + FileProviderFileDelegate - Delete Radera @@ -311,208 +253,205 @@ FileProviderSettings - - Virtual files settings - Inställningar virtuella filer + Enable virtual files + Aktivera virtuella filer - General settings Allmänna inställningar - - Virtual files appear like regular files, but they do not use local storage space. The content downloads automatically when you open the file. Virtual files and classic sync can not be used at the same time. - Virtuella filer ser ut som vanliga filer, men de använder inte lokalt lagringsutrymme. Innehållet laddas ner automatiskt när du öppnar filen. Virtuella filer och klassisk synkronisering kan inte användas samtidigt. + Reset virtual files environment + Återställ miljön för virtuella filer + + + Virtual files settings + Inställningar virtuella filer + + + FileProviderStorageInfo - - Enable virtual files - Aktivera virtuella filer + %1 GB of %2 GB remote files synced + %1 GB av %2 GB filer synkroniserade - - Reset virtual files environment - Återställ miljön för virtuella filer + Free up space … + Frigör utrymme … - + + Local storage use + Användning lokal lagring + + - FileSystem + FileProviderSyncStatus - - Error removing "%1": %2 - Kunde inte radera "%1": %2 + All synced! + Allt synkroniserat! + + + Request a sync of changes for the VFS environment. +macOS may ignore or delay this request. + Begär en synkronisering av ändringar för VFS-miljön. +macOS kan ignorera eller fördröja denna begäran. + + Request sync + Begär synkronisering + + + Syncing + Synkroniserar + + + + FileSystem - Could not remove folder "%1" Kunde inte ta bort mappen "%1" - + + Error removing "%1": %2 + Kunde inte radera "%1": %2 + + Flow2AuthWidget - + An error occurred while connecting. Please try again. + Ett fel inträffade vid anslutning. Försök igen. + + Browser Authentication Webbläsarautentisering - + Copy Link + Kopiera länk + + Logo Logotyp - Switch to your browser to connect your account Använd din webbläsare för att få åtkomst till ditt konto + + + FolderWizardSelectiveSync + + Add Folder Sync + + - - An error occurred while connecting. Please try again. - Ett fel inträffade vid anslutning. Försök igen. + Step 3 of 3: Selektive Synchronisation + FolderWizardSourcePage - - Pick a local folder on your computer to sync - Välj en lokal mapp på din dator för synkronisering + &Choose + + + + Add Folder Sync + - - &Choose … - &Välj … + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + - + + Step 1 of 3: Select local folder + + + FolderWizardTargetPage - - Select a remote destination folder - Välj en målmapp på servern + Add Folder Sync + - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + + + Create folder Skapa mapp - + Folders + Mappar + + + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + Refresh Uppdatera - - Folders - Mappar + Step 2 of 3: Directory in your %1 + - + MainWindow - Main content Huvudinnehåll - - Issue with account %1 - Problem med kontot %1 + New activities + Nya aktiviteter - - - Issues with several accounts - Problem med flera konton + + Unified search results list + Sammanlagda sökresultat + + + nextcloudTheme::aboutInfo() - - Start new conversation? - Starta ny konversation? + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> + <p><small>Byggd från Git revision <a href="%1">%2</a> den %3, %4 med Qt %5, %6</small></p> + + + OCC::AbstractNetworkJob - - New conversation - Ny konversation + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. - - Cancel - Avbryt + The server enforces strict transport security and does not accept untrusted certificates. + Servern tillämpar strikt transport­skydd och accepterar inte opålitliga certifikat. - - - This will clear the existing conversation. - Detta kommer att rensa den befintliga konversationen. + + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. + Servern tog för lång tid på sig att svara. Kontrollera din anslutning och försök synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. + + + OCC::Account - - Ask Assistant … - Fråga assistenten … + File %1 is already locked by %2. + Filen %1 är redan låst av %2. - - Ask Assistant… - Fråga assistenten... - - - - Send assistant question - Skicka fråga till assistenten - - - - Start a new assistant chat - Starta en ny chatt med assistenten. - - - - Unified search results list - Sammanlagda sökresultat - - - - New activities - Nya aktiviteter - - - - OCC::AbstractNetworkJob - - - The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - Servern tog för lång tid på sig att svara. Kontrollera din anslutning och försök synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. - - - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. - - - - The server enforces strict transport security and does not accept untrusted certificates. - Servern tillämpar strikt transport­skydd och accepterar inte opålitliga certifikat. + Lock operation on %1 failed with error %2 + Låsning av %1 misslyckades med felet %2 - - - OCC::Account - Public Share Link Offentlig delningslänk - - File %1 is already locked by %2. - Filen %1 är redan låst av %2. - - - - Lock operation on %1 failed with error %2 - Låsning av %1 misslyckades med felet %2 - - - Unlock operation on %1 failed with error %2 Upplåsning av %1 misslyckades med felet %2 @@ -520,549 +459,396 @@ OCC::AccountManager - An account was detected from a legacy desktop client. Should the account be imported? Ett konto upptäcktes från en äldre skrivbordsklient. Ska kontot importeras? - - - Legacy import - Import från äldre version + Could not import accounts from legacy client configuration. + Kunde inte importera konton från äldre klientkonfiguration. - - + Import Importera - - Skip - Hoppa över + Legacy import + Import från äldre version - - Could not import accounts from legacy client configuration. - Kunde inte importera konton från äldre klientkonfiguration. + Skip + Hoppa över - + OCC::AccountSettings - - Virtual files - Virtuella filer + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 (%3%) av %2 används. Vissa mappar, inklusive nätverks- eller delade mappar, kan ha andra begränsningar. - - Classic sync - Klassisk synkronisering + %1 as %2 + %1 som %2 - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - De mappar som inte väljs kommer att <b>raderas</b> från det lokala filsystemet och kommer inte att synkroniseras till den här datorn längre. + %1 in use + %1 används - - Storage space: … - Lagringsutrymme: … + %1 of %2 in use + %1 av %2 används - - Synchronize all - Synkronisera alla + (experimental) + (experimentell) - - Synchronize none - Synkronisera inga + <p>Could not create local folder <i>%1</i>.</p> + <p>Kunde inte skapa lokal mapp <i>%1</i>.</p> + + + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + <p>Vill du verkligen avbryta synkronisering av mappen <i>%1</i>?</p><p><b>Observera:</b> Detta kommer <b>inte</b> att radera några filer.</p> + + + Apply + Tillämpa - Apply manual changes Spara manuella ändringar - - Standard file sync - Filsynkronisering standard + Availability + Tillgänglighet - - Virtual file sync - Filsynkronisering virtuella filer + Cancel + Avbryt - - Connection settings - Anslutningsinställningar + Choose what to sync + Välj vad som ska synkroniseras - - Apply - Tillämpa + Confirm Folder Sync Connection Removal + Bekräfta borttagning av synkroniseringskoppling för mapp - - - - Cancel - Avbryt + Connected to %1. + Ansluten till %1. - Connected with <server> as <user> Ansluten till <server> som <user> - - No account configured. - Inget konto konfigurerat. - - - - End-to-end Encryption with Virtual Files - ände-till-ände-kryptering med virtuella filer + Connecting to %1 … + Ansluter till %1 … - - You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - Det verkar som att funktionen "Virtuella filer" är aktiverad för denna mapp. För närvarande är det inte möjligt att ladda ner virtuella filer som är end-to-end-krypterade. För att använda virtuella filer med ände-till-ände-kryptering, säkerställ att "Gör alltid tillgänglig lokalt" är aktiverat på den krypterade mappen. + Connection settings + Anslutningsinställningar - - - Do not encrypt folder - Kryptera inte mapp + Could not encrypt folder because the folder does not exist anymore + Kunde inte kryptera mappen eftersom den inte längre finns - - - Encrypt folder - Kryptera mapp + Create new folder + Skapa ny mapp - - End-to-end Encryption - Ände-till-ände-kryptering + Currently there is no storage usage information available. + För närvarande finns ingen information om lagringsanvändning tillgänglig. - - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Detta kommer att kryptera din mapp och alla filer den innehåller. Dessa filer kommer inte längre att vara tillgängliga utan dina krypteringsord. -<b>Denna process går inte att ångra. Är du säker på att du vill fortsätta?</b> + Disable support + Inaktivera stöd - - End-to-end encryption has not been initialized on this account. - Ände-till-ände-kryptering har inte aktiverats på detta konto. + Disable virtual file support … + Inaktivera stöd för virtuella filer ... - - Forget encryption setup - Glöm krypteringsinställning + Disable virtual file support? + Inaktivera stöd för virtuella filer? - Display mnemonic Visa krypteringsord - - Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. - Kryptering är konfigurerad. Kom ihåg att <b>Kryptera</b> en mapp för att ände-till-ände-kryptera alla nya filer som läggs till i den. - - - - Warning - Varning + Do not encrypt folder + Kryptera inte mapp - - Please wait for the folder to sync before trying to encrypt it. - Vänta tills mappen är synkroniserad innan du försöker kryptera den. + Do you want to forget the end-to-end encryption settings for %1 on this device? + Vill du glömma inställningarna till ände-till-ände-kryptering för %1 på den här enheten? - - The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully - Mappen har ett mindre synkroniseringsproblem. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats + Edit Ignored Files + Redigera ignorerade filer - - The folder has a sync error. Encryption of this folder will be possible once it has synced successfully - Mappen har ett synkroniseringsfel. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats + Enable virtual file support %1 … + Aktivera stöd för virtuella filer %1 … - - You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. -Would you like to do this now? - Du kan inte ände-till-ände-kryptera den här mappen eftersom end-to-end-kryptering ännu inte är konfigurerad på den här enheten. -Vill du konfigurera den nu? + Encrypt + Kryptera - - You cannot encrypt a folder with contents, please remove the files. -Wait for the new sync, then encrypt it. - Du kan inte kryptera en mapp med innehåll, ta bort filerna. -Vänta på en ny synk och kryptera den sedan. + Encrypt folder + Kryptera mapp - Encryption failed Kryptering misslyckades - - Could not encrypt folder because the folder does not exist anymore - Kunde inte kryptera mappen eftersom den inte längre finns + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + Kryptering är konfigurerad. Kom ihåg att <b>Kryptera</b> en mapp för att ände-till-ände-kryptera alla nya filer som läggs till i den. - - Encrypt - Kryptera + End-to-end Encryption + Ände-till-ände-kryptering - - - Edit Ignored Files - Redigera ignorerade filer + End-to-end Encryption with Virtual Files + ände-till-ände-kryptering med virtuella filer - - - Create new folder - Skapa ny mapp + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + Ände-till-ände-kryptering har initierats på det här kontot med en annan enhet.<br>Ange den unika minnesfrasen för att synkronisera de krypterade mapparna även på den här enheten. - - - Availability - Tillgänglighet + End-to-end encryption has not been initialized on this account. + Ände-till-ände-kryptering har inte aktiverats på detta konto. - - Choose what to sync - Välj vad som ska synkroniseras + End-to-end encryption mnemonic + Krypteringsord för ände-till-ände-kryptering + + + Expand Memory + + + + Folder creation failed + Kunde inte skapa mappen - Force sync now Tvinga synkronisering nu - - Restart sync - Starta om synkronisering + Forget encryption setup + Glöm krypteringsinställning - - Remove folder sync connection - Ta bort synkroniseringskoppling för mapp + Forget the end-to-end encryption on this device + Glöm ände-till-ände-krypteringen på den här enheten - - Disable virtual file support … - Inaktivera stöd för virtuella filer ... + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Att glömma ände-till-ände-kryptering kommer att ta bort känslig data och alla krypterade filer från den här enheten.<br>Filerna kommer dock att finnas kvar på servern och på alla dina andra enheter, om de är konfigurerade. - - Enable virtual file support %1 … - Aktivera stöd för virtuella filer %1 … + Migrate certificate to a new one + Migrera certifikat till ett nytt - - (experimental) - (experimentell) + No %1 connection configured. + Ingen %1 anslutning konfigurerad. - - Folder creation failed - Kunde inte skapa mappen + No account configured. + Inget konto konfigurerat. - - Confirm Folder Sync Connection Removal - Bekräfta borttagning av synkroniseringskoppling för mapp + Open folder + Öppna mapp + + + Pause sync + Pausa synkronisering + + + Please wait for the folder to sync before trying to encrypt it. + Vänta tills mappen är synkroniserad innan du försöker kryptera den. - Remove Folder Sync Connection Ta bort synkroniseringskoppling för mapp - - Grant access to sync folder - Bevilja åtkomst till synkroniseringsmappen + Remove folder sync connection + Ta bort synkroniseringskoppling för mapp - - Access Error - Åtkomstfel + Restart sync + Starta om synkronisering - - Could not acquire access to the selected folder. Please try again. - Det gick inte att få åtkomst till den valda mappen. Vänligen försök igen. + Resume sync + Återuppta synkronisering - - Wrong Folder - Fel mapp + Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 omdirigeras för närvarande, eller så ligger din anslutning bakom en inloggningsportal. - - Please select the original sync folder: %1 - Välj den ursprungliga synkroniseringsmappen: %1 + Server %1 is currently in maintenance mode. + Servern %1 är för närvarande i underhållsläge. - - - Bookmark Error - Bokmärkesfel + Server %1 is temporarily unavailable. + Servern %1 är för tillfället inte tillgänglig. - - Could not create a security bookmark for the folder. Please try again. - Det gick inte att skapa ett säkerhetsbokmärke för mappen. Vänligen försök igen. + Server configuration error: %1 at %2. + Felaktig serverkonfiguration: %1 vid %2. - - Could not resolve the security bookmark. Please try again. - Det gick inte att hantera säkerhetsbokmärket. Vänligen försök igen. + Set up encryption + Aktivera kryptering - - Disable virtual file support? - Inaktivera stöd för virtuella filer? + Signed out from %1. + Utloggad från %1. - - This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. - -The only advantage of disabling virtual file support is that the selective sync feature will become available again. - -This action will abort any currently running synchronization. - Denna åtgärd kommer att inaktivera stöd för virtuella filer. Som en konsekvens kommer innehållet i mappar som för närvarande är markerade som "endast tillgänglig online" att laddas ner. - -Den enda fördelen med att inaktivera stödet för virtuella filer är att funktionen för selektiv synkronisering blir tillgänglig igen. - -Den här åtgärden avbryter alla pågående synkroniseringar. - - - - Disable support - Inaktivera stöd - - - - End-to-end encryption mnemonic - Krypteringsord för ände-till-ände-kryptering - - - - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - För att skydda din kryptografiska identitet krypterar vi den med en minnesfras bestående av 12 ord från en ordlista. Skriv ner den och förvara den säkert. Du kommer att behöva den för att konfigurera synkronisering av krypterade mappar på dina andra enheter. - - - - Forget the end-to-end encryption on this device - Glöm ände-till-ände-krypteringen på den här enheten + Standard file sync + Filsynkronisering standard - - Do you want to forget the end-to-end encryption settings for %1 on this device? - Vill du glömma inställningarna till ände-till-ände-kryptering för %1 på den här enheten? + Storage space %1% occupied + - - Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. - Att glömma ände-till-ände-kryptering kommer att ta bort känslig data och alla krypterade filer från den här enheten.<br>Filerna kommer dock att finnas kvar på servern och på alla dina andra enheter, om de är konfigurerade. + Storage space: … + Lagringsutrymme: … - Sync Running Synkronisering pågår - - The syncing operation is running.<br/>Do you want to terminate it? - En synkronisering pågår.<br/>Vill du avbryta den? + Synchronize all + Synkronisera alla - - %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) av %2 används. Vissa mappar, inklusive nätverks- eller delade mappar, kan ha andra begränsningar. + Synchronize none + Synkronisera inga - - Currently there is no storage usage information available. - För närvarande finns ingen information om lagringsanvändning tillgänglig. + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + Mappen har ett mindre synkroniseringsproblem. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats - - %1 in use - %1 används + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + Mappen har ett synkroniseringsfel. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats - - Connected to %1 (%2). - Ansluten till %1 (%2). + The server version %1 is unsupported! Proceed at your own risk. + Serverversion %1 stöds inte! Fortsätt på egen risk. - - Migrate certificate to a new one - Migrera certifikat till ett nytt + The syncing operation is running.<br/>Do you want to terminate it? + En synkronisering pågår.<br/>Vill du avbryta den? - There are folders that have grown in size beyond %1MB: %2 Det finns mappar som har vuxit i storlek större än %1MB: %2 - - End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. - Ände-till-ände-kryptering har initierats på det här kontot med en annan enhet.<br>Ange den unika minnesfrasen för att synkronisera de krypterade mapparna även på den här enheten. - - - - This account supports end-to-end encryption, but it needs to be set up first. - Det här kontot stöder ände-till-ände-kryptering, men det måste konfigureras först. - - - - The virtual files integration does not support end-to-end encryption yet. - Integrationen av virtuella filer stöder ännu inte ände-till-ände-kryptering. + There are folders that were not synchronized because they are external storages: + - - Set up encryption - Aktivera kryptering - - - - Connected to %1. - Ansluten till %1. - - - - Server %1 is temporarily unavailable. - Servern %1 är för tillfället inte tillgänglig. - - - - Server %1 is currently in maintenance mode. - Servern %1 är för närvarande i underhållsläge. - - - - Signed out from %1. - Utloggad från %1. - - - - There are folders that were not synchronized because they are too big: - Dessa mappar har inte synkroniserats för att de är för stora: - - - - There are folders that were not synchronized because they are external storages: - Det finns mappar som inte synkroniserats för att de är externa lagringsytor: - - - - There are folders that were not synchronized because they are too big or external storages: - Det finns mappar som inte blivit synkroniserade på grund av att de är för stora eller är externa lagringsytor: + There are folders that were not synchronized because they are too big or external storages: + - - - Open folder - Öppna mapp - - - - Resume sync - Återuppta synkronisering + There are folders that were not synchronized because they are too big: + - - Pause sync - Pausa synkronisering + This account supports end-to-end encryption, but it needs to be set up first. + Det här kontot stöder ände-till-ände-kryptering, men det måste konfigureras först. - - <p>Could not create local folder <i>%1</i>.</p> - <p>Kunde inte skapa lokal mapp <i>%1</i>.</p> + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. + +The only advantage of disabling virtual file support is that the selective sync feature will become available again. + +This action will abort any currently running synchronization. + Denna åtgärd kommer att inaktivera stöd för virtuella filer. Som en konsekvens kommer innehållet i mappar som för närvarande är markerade som "endast tillgänglig online" att laddas ner. + +Den enda fördelen med att inaktivera stödet för virtuella filer är att funktionen för selektiv synkronisering blir tillgänglig igen. + +Den här åtgärden avbryter alla pågående synkroniseringar. - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - <p>Vill du verkligen avbryta synkronisering av mappen <i>%1</i>?</p><p><b>Observera:</b> Detta kommer <b>inte</b> att radera några filer.</p> + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Detta kommer att kryptera din mapp och alla filer den innehåller. Dessa filer kommer inte längre att vara tillgängliga utan dina krypteringsord. +<b>Denna process går inte att ångra. Är du säker på att du vill fortsätta?</b> - - %1 of %2 in use - %1 av %2 används + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. + För att skydda din kryptografiska identitet krypterar vi den med en minnesfras bestående av 12 ord från en ordlista. Skriv ner den och förvara den säkert. Du kommer att behöva den för att konfigurera synkronisering av krypterade mappar på dina andra enheter. - - %1 as %2 - %1 som %2 + Unable to connect to %1. + Kan inte ansluta till %1. - - The server version %1 is unsupported! Proceed at your own risk. - Serverversion %1 stöds inte! Fortsätt på egen risk. + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + De mappar som inte väljs kommer att <b>raderas</b> från det lokala filsystemet och kommer inte att synkroniseras till den här datorn längre. - - Server %1 is currently being redirected, or your connection is behind a captive portal. - Server %1 omdirigeras för närvarande, eller så ligger din anslutning bakom en inloggningsportal. + Virtual file sync + Filsynkronisering virtuella filer - - Connecting to %1 … - Ansluter till %1 … + Warning + Varning - - Unable to connect to %1. - Kan inte ansluta till %1. + You cannot encrypt a folder with contents, please remove the files. +Wait for the new sync, then encrypt it. + Du kan inte kryptera en mapp med innehåll, ta bort filerna. +Vänta på en ny synk och kryptera den sedan. - - Server configuration error: %1 at %2. - Felaktig serverkonfiguration: %1 vid %2. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. +Would you like to do this now? + Du kan inte ände-till-ände-kryptera den här mappen eftersom end-to-end-kryptering ännu inte är konfigurerad på den här enheten. +Vill du konfigurera den nu? - You need to accept the terms of service at %1. Du måste acceptera användarvillkoren på %1. - - No %1 connection configured. - Ingen %1 anslutning konfigurerad. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". + Det verkar som att funktionen "Virtuella filer" är aktiverad för denna mapp. För närvarande är det inte möjligt att ladda ner virtuella filer som är end-to-end-krypterade. För att använda virtuella filer med ände-till-ände-kryptering, säkerställ att "Gör alltid tillgänglig lokalt" är aktiverat på den krypterade mappen. - + OCC::AccountSetupFromCommandLineJob - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - Den autentiserade begäran till servern omdirigerades till "%1". URL:en är felaktig, servern är felkonfigurerad. - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Åtkomst förbjuden av servern. För att kontrollera att du har korrekta rättigheter, <a href="%1">klicka här</a> för att ansluta till tjänsten med din webb-läsare. - + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + Den autentiserade begäran till servern omdirigerades till "%1". URL:en är felaktig, servern är felkonfigurerad. + + There was an invalid response to an authenticated WebDAV request Det kom ett felaktigt svar på en autentiserad WebDAV-begäran @@ -1070,57 +856,46 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::AccountState - - Signed out - Utloggad + Asking Credentials + Frågar efter inloggningsuppgifter - - Disconnected - Bortkopplad + Configuration error + Konfigurationsfel - Connected Ansluten - - Service unavailable - Tjänsten är inte tillgänglig + Disconnected + Bortkopplad - Maintenance mode Underhållsläge - - Redirect detected - Omdirigering upptäcktes + Need the user to accept the terms of service + Användaren behöver acceptera användarvillkoren - Network error Nätverksfel - - Configuration error - Konfigurationsfel + Redirect detected + Omdirigering upptäcktes - - Asking Credentials - Frågar efter inloggningsuppgifter + Service unavailable + Tjänsten är inte tillgänglig - - Need the user to accept the terms of service - Användaren behöver acceptera användarvillkoren + Signed out + Utloggad - Unknown account state Okänd kontostatus @@ -1128,17 +903,14 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::ActivityListModel - - For more activities please open the Activity app. - Öppna Aktivitetsappen för fler aktiviteter. - - - Fetching activities … Hämtar aktiviteter ... - + For more activities please open the Activity app. + Öppna Aktivitetsappen för fler aktiviteter. + + Network error occurred: client will retry syncing. Nätverksfel inträffade: klienten kommer att försöka synkronisera igen. @@ -1146,168 +918,134 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::AddCertificateDialog - - SSL client certificate authentication - SSL klientcertifikat-autentisering + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + En krypterad PKCS12-kedja är starkt rekommenderad då en kopia kommer att lagras i konfigurationsfilen. - - This server probably requires a SSL client certificate. - Denna server kräver förmodligen ett SSL klientcertifikat + Browse … + Välj … - Certificate & Key (pkcs12): Certifikat och nyckel (pkcs12) : - + Certificate files (*.p12 *.pfx) + Certifikatfiler (*.p12 *.pfx) + + Certificate password: Certifikatlösenord: - - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - En krypterad PKCS12-kedja är starkt rekommenderad då en kopia kommer att lagras i konfigurationsfilen. - - - - Browse … - Välj … + SSL client certificate authentication + SSL klientcertifikat-autentisering - Select a certificate Välj ett certifikat - - Certificate files (*.p12 *.pfx) - Certifikatfiler (*.p12 *.pfx) - - - - Could not access the selected certificate file. - Det gick inte att öppna den valda certifikatfilen. + This server probably requires a SSL client certificate. + Denna server kräver förmodligen ett SSL klientcertifikat - + OCC::Application - - Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. - Vissa inställningar har konfigurerats i %1 versioner av den här klienten och använder funktioner som inte är tillgängliga i den här versionen.<br><br>Att fortsätta kommer att betyda <b>%2 dessa inställningar</b>.<br><br>Den aktuella konfigurationsfilen har redan säkerhetskopierats till <i>%3</i>. - - - - newer - newer software version - nyare - - - - older - older software version - äldre + %1 accounts + number of accounts imported + %1 konton - - ignoring - ignorera + %1 folders + number of folders imported + %1 mappar - - deleting - radera + 1 account + 1 konto - - Quit - Avsluta + 1 folder + 1 mapp - Continue Fortsätt - - %1 accounts - number of accounts imported - %1 konton + Error accessing the configuration file + Kunde inte komma åt konfigurationsfilen - - 1 account - 1 konto - - - - %1 folders - number of folders imported - %1 mappar - - - - 1 folder - 1 mapp + Imported %1 and %2 from a legacy desktop client. +%3 + number of accounts and folders imported. list of users. + Importerade %1 och %2 från en äldre skrivbordsklient. +%3 - Legacy import Import från äldre version - - Imported %1 and %2 from a legacy desktop client. -%3 - number of accounts and folders imported. list of users. - Importerade %1 och %2 från en äldre skrivbordsklient. -%3 + Quit + Avsluta - - Error accessing the configuration file - Kunde inte komma åt konfigurationsfilen + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + Vissa inställningar har konfigurerats i %1 versioner av den här klienten och använder funktioner som inte är tillgängliga i den här versionen.<br><br>Att fortsätta kommer att betyda <b>%2 dessa inställningar</b>.<br><br>Den aktuella konfigurationsfilen har redan säkerhetskopierats till <i>%3</i>. - There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ett fel uppstod vid läsning av konfigurationsfilen vid %1. Kontrollera att filen kan nås av ditt datorkonto. - - - OCC::AuthenticationDialog + + deleting + radera + - - Authentication Required - Autentisering krävs + ignoring + ignorera - - Enter username and password for "%1" at %2. - Ange användarnamn och lösenord för "%1" på %2. + newer + newer software version + nyare - - &Username: - &Användarnamn: + older + older software version + äldre + + + OCC::AuthenticationDialog - &Password: &Lösenord: - + + &Username: + &Användarnamn: + + + Authentication Required + Autentisering krävs + + + Enter username and password for "%1" at %2. + Ange användarnamn och lösenord för "%1" på %2. + + OCC::BasePropagateRemoteDeleteEncrypted - "%1 Failed to unlock encrypted folder %2". "%1 kunde inte låsa upp den krypterade mappen %2". - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. 204 förväntades, men "%1 %2" mottogs. @@ -1315,245 +1053,195 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::BulkPropagatorDownloadJob - + Error updating metadata: %1 + Fel vid uppdatering av metadata: %1 + + File %1 can not be downloaded because of a local file name clash! Filen %1 kan inte laddas ner på grund av en namnkonflikt med en lokal fil! - + The file %1 is currently in use + Filen %1 används för närvarande + + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Kunde inte uppdatera metadata för den nya filen %1. + + + OCC::BulkPropagatorJob - Error updating metadata: %1 - Fel vid uppdatering av metadata: %1 - - - - The file %1 is currently in use - Filen %1 används för närvarande + Ett fel uppstod när metadata skulle uppdateras: %1 - - - OCC::BulkPropagatorJob - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Fil %1 kan inte laddas upp eftersom en annan fil med samma namn, där endast stora/små bokstäver skiljer sig, finns - - File contains leading or trailing spaces and couldn't be renamed - Filen innehåller inledande eller avslutande mellanslag och kunde inte döpas om + File %1 has invalid modification time. Do not upload to the server. + Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. - File %1 has invalid modified time. Do not upload to the server. Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. - File Removed (start upload) %1 Filen borttagen (starta uppladdning) %1 - - File %1 has invalid modification time. Do not upload to the server. - Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. - - - - Local file changed during syncing. It will be resumed. - Lokal fil ändrades under synkronisering. Den kommer återupptas. + File contains leading or trailing spaces and couldn't be renamed + Filen innehåller inledande eller avslutande mellanslag och kunde inte döpas om - - Local file changed during sync. Lokal fil ändrades under synkronisering. - + Local file changed during syncing. It will be resumed. + Lokal fil ändrades under synkronisering. Den kommer återupptas. + + Network error: %1 Nätverksfel: %1 - - Error updating metadata: %1 - Ett fel uppstod när metadata skulle uppdateras: %1 + Restoration failed: %1 + Återställning misslyckades: %1 - - + The file %1 is currently in use Filen %1 används för närvarande - The local file was removed during sync. Den lokala filen togs bort under synkronisering. - - - Restoration failed: %1 - Återställning misslyckades: %1 - - + OCC::CaseClashConflictSolver - Cannot rename file because a file with the same name already exists on the server. Please pick another name. Kunde inte byta namn på filen eftersom filnamnet är upptaget. Ange ett annat filnamn. - Could not rename file. Please make sure you are connected to the server. Kunde inte byta namn på filen. Kontrollera anslutningen till servern. - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. - - - Failed to fetch permissions with error %1 Misslyckades att hämta behörigheter med felet %1 - Filename contains leading and trailing spaces. Filnamnet innehåller blanksteg i början och slutet. - Filename contains leading spaces. Filnamnet innehåller inledande blanksteg. - Filename contains trailing spaces. Filnamnet innehåller blanksteg i slutet. - + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. + + OCC::CaseClashFilenameDialog - + %1 does not support equal file names with only letter casing differences. + %1 stöder inte lika filnamn med endast skillnader i versalisering. + + + 0 byte + 0 byte + + Case Clash Conflict Versaliseringskrock - - The file could not be synced because it generates a case clash conflict with an existing file on this system. - Filen kunde inte synkroniseras eftersom den skapar en versaliseringskrock med en befintlig fil på detta system. + Case clashing file + Fil med versaliseringskrock - Error Fel - Existing file Befintlig fil - - file A - fil A - - - - - today - idag + Filename contains illegal characters: %1 + Filnamnet innehåller ogiltiga tecken: %1 - - - - 0 byte - 0 byte + + Filename contains leading and trailing spaces. + Filnamnet innehåller blanksteg i början och slutet. - - - Open existing file - Öppna befintlig fil + Filename contains leading spaces. + Filnamnet innehåller inledande blanksteg. - - Case clashing file - Fil med versaliseringskrock + Filename contains trailing spaces. + Filnamnet innehåller blanksteg i slutet. - - file B - fil B + New filename + Nytt filnamn - - Open clashing file Öppna filen med krocken - - Please enter a new name for the clashing file: - Ange ett nytt namn för filen med krocken: + Open existing file + Öppna befintlig fil - - New filename - Nytt filnamn + Please enter a new name for the clashing file: + Ange ett nytt namn för filen med krocken: - Rename file Byt namn på fil - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. Filen "%1" kunde inte synkroniseras på grund av en versaliseringskrock med en befintlig fil på detta system. - - %1 does not support equal file names with only letter casing differences. - %1 stöder inte lika filnamn med endast skillnader i versalisering. - - - - Filename contains leading and trailing spaces. - Filnamnet innehåller blanksteg i början och slutet. + The file could not be synced because it generates a case clash conflict with an existing file on this system. + Filen kunde inte synkroniseras eftersom den skapar en versaliseringskrock med en befintlig fil på detta system. - - Filename contains leading spaces. - Filnamnet innehåller inledande blanksteg. + Use invalid name + Använd ogiltigt namn - - Filename contains trailing spaces. - Filnamnet innehåller blanksteg i slutet. + file A + fil A - - Use invalid name - Använd ogiltigt namn + file B + fil B - - Filename contains illegal characters: %1 - Filnamnet innehåller ogiltiga tecken: %1 + today + idag - + OCC::CleanupPollsJob - Error writing metadata to the database Fel vid skrivning av metadata till databasen @@ -1561,361 +1249,330 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::ClientSideEncryption - - Input PIN code - Please keep it short and shorter than "Enter Certificate USB Token PIN:" - Ange PIN-kod - - - Enter Certificate USB Token PIN: Ange PIN-kod för certifikat-USB-token: - + Enter E2E passphrase + Ange lösenord för E2E + + + Input PIN code + Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Ange PIN-kod + + Invalid PIN. Login failed Ogiltig PIN-kod. Inloggningen misslyckades - Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Inloggningen till token misslyckades efter att användarens PIN-kod angavs. Den kan vara ogiltig eller felaktig. Försök igen! - Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Ange din lösenordsfras för ände-till-ände-kryptering:<br><br>Användarnamn: %2<br>Konto: %3<br> - - - Enter E2E passphrase - Ange lösenord för E2E - - + OCC::ConflictDialog - - Sync Conflict - Synk-konflikt - - - - - Conflicting versions of %1. - Versioner med konflikter av %1. + 0 byte + 0 byte - - Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. - Vilken version av filen vill du behålla?<br/>Om du väljer båda versionerna kommer den lokala filen att få ett nummer adderat till namnet. + <a href="%1">Open local version</a> + <a href="%1">Öppna lokal version</a> - - Local version - Lokal version + <a href="%1">Open server version</a> + <a href="%1">Öppna serverversion</a> - - Click to open the file Klicka för att öppna filen - - - today - idag + Conflicting versions of %1. + Versioner med konflikter av %1. - - - 0 byte - 0 byte + Keep both versions + Behåll båda versionerna - - <a href="%1">Open local version</a> - <a href="%1">Öppna lokal version</a> + Keep local version + Behåll lokal version - - Server version - Serverversion + Keep selected version + Behåll vald version - - <a href="%1">Open server version</a> - <a href="%1">Öppna serverversion</a> + Keep server version + Behåll serverversion - - - - Keep selected version - Behåll vald version + + Local version + Lokal version - Open local version Öppna lokal version - Open server version Öppna serverversion - - Keep both versions - Behåll båda versionerna + Server version + Serverversion - - Keep local version - Behåll lokal version + Sync Conflict + Synk-konflikt - - Keep server version - Behåll serverversion + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + Vilken version av filen vill du behålla?<br/>Om du väljer båda versionerna kommer den lokala filen att få ett nummer adderat till namnet. - - - OCC::ConflictSolver - - - Error - Fel + today + idag + + + OCC::ConflictSolver - - - Moving file failed: - -%1 - Misslyckades flytta filen: - -%1 + Confirm deletion + Bekräfta radering - - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vill du radera mappen <i>%1</i> och allt innehåll permanent? - Do you want to delete the file <i>%1</i> permanently? Vill du radera filen <i>%1</i> permanent? - - Confirm deletion - Bekräfta radering + Error + Fel - + + Moving file failed: + +%1 + Misslyckades flytta filen: + +%1 + + OCC::ConnectionValidator - + Authentication error: Either username or password are wrong. + Autentiseringsfel: Användarnamn eller lösenord är felaktigt + + No %1 account configured The placeholder will be the application name. Please keep it Inget %1 konto konfigurerat - - Timeout - Timeout + Please update to the latest server and restart the client. + Vänligen uppdatera till den senaste servern och starta om klienten. - The configured server for this client is too old Den konfigurerade servern är för den här klienten är för gammal - - Please update to the latest server and restart the client. - Vänligen uppdatera till den senaste servern och starta om klienten. + The provided credentials are not correct + De angivna uppgifterna stämmer inte + + + Timeout + Timeout + + + OCC::DataProtectionPage - - Authentication error: Either username or password are wrong. - Autentiseringsfel: Användarnamn eller lösenord är felaktigt + Agree + - - The provided credentials are not correct - De angivna uppgifterna stämmer inte + Form + Formulär + + + Settings + Inställningar + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + - OCC::DiscoveryPhase + OCC::DataProtectionSettingsPage - - Error while canceling deletion of a file - Ett fel uppstod när radering av en fil skulle avbrytas + Back + Tillbaka - - Error while canceling deletion of %1 - Ett fel uppstod när radering av %1 skulle avbrytas + Form + Formulär + + + Necessary data + + + + Required to ensure that the software can be used as expected + + + + Save Settings + + + + Send anonymous use + + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + - OCC::DiscoverySingleDirectoryJob + OCC::DiscoveryPhase - - Server error: PROPFIND reply is not XML formatted! - Serverfel: PROPFIND-svar är inte XML-formaterat! + Error while canceling deletion of %1 + Ett fel uppstod när radering av %1 skulle avbrytas - - - The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - Servern returnerade ett oväntat svar som inte kunde läsas. Kontakta din serveradministratör. + + Error while canceling deletion of a file + Ett fel uppstod när radering av en fil skulle avbrytas + + + OCC::DiscoverySingleDirectoryJob - - Encrypted metadata setup error! Inställningsfel för krypterad metadata! - Encrypted metadata setup error: initial signature from server is empty. Inställningsfel för krypterad metadata: initial signatur från servern är tom. - - - OCC::DiscoverySingleLocalDirectoryJob + + Server error: PROPFIND reply is not XML formatted! + Serverfel: PROPFIND-svar är inte XML-formaterat! + - - Error while opening directory %1 - Fel uppstod när mappen %1 öppnades + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” + Servern returnerade ett oväntat svar som inte kunde läsas. Kontakta din serveradministratör. + + + OCC::DiscoverySingleLocalDirectoryJob - Directory not accessible on client, permission denied Mappen kan inte öppnas av klienten, åtkomst nekad - Directory not found: %1 Mappen hittades inte: %1 - - Filename encoding is not valid - Filnamnets teckenuppsättning är ogiltig + Error while opening directory %1 + Fel uppstod när mappen %1 öppnades - Error while reading directory %1 Ett fel uppstod när mappen %1 skulle öppnas - + + Filename encoding is not valid + Filnamnets teckenuppsättning är ogiltig + + OCC::EditLocallyJob - - - - - - - - - Could not start editing locally. - Det gick inte att börja redigera lokalt. + An error occurred during data retrieval. + Ett fel uppstod under datahämtning. - - An error occurred during setup. Ett fel uppstod under installationen. - - - Could not find a file for local editing. Make sure its path is valid and it is synced locally. - Det gick inte att hitta en fil för lokal redigering. Se till att sökvägen är giltig och att den är synkroniserad lokalt. + An error occurred trying to synchronise the file to edit locally. + Ett fel uppstod vid försök att synkronisera filen för att redigera lokalt. - - - - Could not find a file for local editing. Make sure it is not excluded via selective sync. Det gick inte att hitta en fil för lokal redigering. Kontrollera att den inte exkluderas via selektiv synkronisering. - - - - An error occurred during data retrieval. - Ett fel uppstod under datahämtning. - - - - - An error occurred trying to synchronise the file to edit locally. - Ett fel uppstod vid försök att synkronisera filen för att redigera lokalt. - - - - Server error: PROPFIND reply is not XML formatted! - Serverfel: PROPFIND-svar är inte XML-formaterat! + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Det gick inte att hitta en fil för lokal redigering. Se till att sökvägen är giltig och att den är synkroniserad lokalt. - Could not find a remote file info for local editing. Make sure its path is valid. Kunde inte hitta filinformation för lokal redigering. Kontrollera att sökvägen är giltig. - - Invalid local file path. - Ogiltig lokal filsökväg. - - - Could not open %1 Kunde inte öppna %1 - - Please try again. - Försök igen. + Could not start editing locally. + Det gick inte att börja redigera lokalt. - File %1 already locked. Filen %1 är redan låst. - - + File %1 could not be locked. + Filen %1 kunde inte låsas. + + + File %1 now locked. + Filen %1 är nu låst. + + + Invalid local file path. + Ogiltig lokal filsökväg. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Låset varar i %1 minuter. Du kan också låsa upp filen manuellt när du är klar med redigeringen. - - File %1 now locked. - Filen %1 är nu låst. + Please try again. + Försök igen. - - File %1 could not be locked. - Filen %1 kunde inte låsas. + Server error: PROPFIND reply is not XML formatted! + Serverfel: PROPFIND-svar är inte XML-formaterat! - + OCC::EditLocallyManager - Could not validate the request to open a file from server. Det gick inte att validera begäran om att öppna en fil från servern. - Please try again. Försök igen. @@ -1923,404 +1580,308 @@ Den här åtgärden avbryter alla pågående synkroniseringar. OCC::EditLocallyVerificationJob - - Invalid token received. - Ogiltig token mottagen. - - - - - - Please try again. - Försök igen. - - - - Invalid file path was provided. - Ogiltig sökväg angavs. + An error occurred trying to verify the request to edit locally. + Ett fel uppstod vid försök att verifiera begäran om att redigera lokalt. - - + Could not find an account for local editing. Det gick inte att hitta ett konto för lokal redigering. - Could not start editing locally. Det gick inte att börja redigera lokalt. - - An error occurred trying to verify the request to edit locally. - Ett fel uppstod vid försök att verifiera begäran om att redigera lokalt. + Invalid file path was provided. + Ogiltig sökväg angavs. - - - OCC::EncryptFolderJob - - Could not generate the metadata for encryption, Unlocking the folder. -This can be an issue with your OpenSSL libraries. - Kunde inte generera metadata för kryptering, låser upp mappen. -Det kan vara problem med dina OpenSSL-bibliotek. + Invalid token received. + Ogiltig token mottagen. - + + Please try again. + Försök igen. + + OCC::EncryptedFolderMetadataHandler - - - - - - + Error fetching encrypted folder ID. + Fel vid hämtning av krypterat mapp-ID. + + Error fetching metadata. Fel vid hämtning av metadata. - - - Error locking folder. Fel vid låsning av mapp. - - Error fetching encrypted folder ID. - Fel vid hämtning av krypterat mapp-ID. - - - Error parsing or decrypting metadata. Fel vid tolkning eller dekryptering av metadata. - Failed to upload metadata Misslyckades med att ladda upp metadata - OCC::FileActionsModel - - - Your account is offline %1. - account url - Ditt konto är offline %1. - - - - The file ID is empty for %1. - file name - Filidentiteten är tomt för %1. - - - - The file type for %1 is not valid. - file name - Filtypen för %1är ogiltig. - - - - No file actions were returned by the server for %1 files. - file mimetype, e.g text/plain files - TRANSLATOR Placeholder contains file MIME type - Servern returnerade inga filåtgärder för %1 filer. - - - - %1 did not succeed, please try again later. If you need help, contact your server administrator. - file action error message - %1 lyckades inte, försök igen senare. Om du behöver hjälp, kontakta din serveradministratör. - + OCC::EncryptFolderJob - - %1 done. - file action success message - %1 klar. + Could not generate the metadata for encryption, Unlocking the folder. +This can be an issue with your OpenSSL libraries. + Kunde inte generera metadata för kryptering, låser upp mappen. +Det kan vara problem med dina OpenSSL-bibliotek. OCC::FileDetails - - %1 second(s) ago - seconds elapsed since file last modified - %1 sekund(er) sedan%1 sekund(er) sedan - - - - %1 minute(s) ago - minutes elapsed since file last modified - %1 minut(er) sedan%1 minut(er) sedan + %1 day(s) ago + days elapsed since file last modified + + %1 dag(ar) sedan + %1 dag(ar) sedan + - %1 hour(s) ago hours elapsed since file last modified - %1 timme sedan%1 timmar sedan + + %1 timme sedan + %1 timmar sedan + - - %1 day(s) ago - days elapsed since file last modified - %1 dag(ar) sedan%1 dag(ar) sedan + %1 minute(s) ago + minutes elapsed since file last modified + + %1 minut(er) sedan + %1 minut(er) sedan + - %1 month(s) ago months elapsed since file last modified - %1 månad sedan%1 månader sedan + + %1 månad sedan + %1 månader sedan + + + + %1 second(s) ago + seconds elapsed since file last modified + + %1 sekund(er) sedan + %1 sekund(er) sedan + - %1 year(s) ago years elapsed since file last modified - %1 år sedan%1 år sedan + + %1 år sedan + %1 år sedan + - Locked by %1 - Expires in %2 minute(s) remaining time before lock expires - Låst av %1 - Går ut om %2 minutLåst av %1 - Går ut om %2 minuter + + Låst av %1 - Går ut om %2 minut + Låst av %1 - Går ut om %2 minuter + OCC::Flow2Auth - + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + Ett oväntat fel inträffade vid försök att komma åt servern. Försök igen senare eller kontakta serveradministratören om problemet kvarstår. + + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. Den returnerade server-URL:n börjar inte med HTTPS trots att inloggnings-URL:n började med HTTPS. Inloggning kommer inte att vara möjlig eftersom detta kan vara ett säkerhetsproblem. Kontakta din administratör. - + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + Servern svarade inte som förväntat. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. + + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Servern är tillfälligt otillgänglig eftersom den är i underhållsläge. Försök igen när underhållet har avslutats. - - - An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. - Ett oväntat fel inträffade vid försök att komma åt servern. Försök igen senare eller kontakta serveradministratören om problemet kvarstår. - - - We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Vi kunde inte tolka serversvaret. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. - - - The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - Servern svarade inte som förväntat. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. - - + OCC::Flow2AuthWidget - - Unable to open the Browser, please copy the link to your Browser. - Det går inte att öppna webbläsaren, kopiera länken till din webbläsare. - - - - Waiting for authorization - Väntar på auktorisation - - - - Polling for authorization - Kontrollerar auktorisation + Copy Link + Kopiera länk - - Starting authorization - Startar auktorisering + Error + Fel - Link copied to clipboard. Länken kopierad till urklipp. - Open Browser Öppna webbläsare - - Copy Link - Kopiera länk + Polling for authorization + Kontrollerar auktorisation - - - OCC::Folder - - %1 has been removed. - %1 names a file. - %1 har tagits bort. + Starting authorization + Startar auktorisering - - %1 has been updated. - %1 names a file. - %1 har uppdaterats. + Switch to your browser to connect your account + Använd din webbläsare för att få åtkomst till ditt konto - - - %1 has been renamed to %2. - %1 and %2 name files. - %1 har döpts om till %2. + + Unable to open the Browser, please copy the link to your Browser. + Det går inte att öppna webbläsaren, kopiera länken till din webbläsare. - - %1 has been moved to %2. - %1 har flyttats till %2. + Waiting for authorization + Väntar på auktorisation + + + OCC::Folder - - %1 and %n other file(s) have been removed. - %1 och %n annan fil har tagits bort.%1 och %n andra filer har tagits bort. - - - - Please choose a different location. The folder %1 doesn't exist. - Välj en annan plats. Mappen %1 finns inte. - - - - Please choose a different location. %1 isn't a valid folder. - Välj en annan plats. %1 är inte en giltig mapp. - - - - Please choose a different location. %1 isn't a readable folder. - Välj en annan plats. %1 är inte en läsbar mapp. + %1 and %n other file(s) are currently locked. + + %1 och %n andra fil(er) är för närvarande låsta. + %1 och %n andra fil(er) är för närvarande låsta. + - - %1 and %n other file(s) have been added. - %1 fil har lagts till.%1 och %n ytterligare filer har lagts till. - - - - %1 has been added. - %1 names a file. - %1 har lagts till. + %1 and %n other file(s) could not be synced due to errors. See the log for details. + + %1 och %n andra filer kunde inte synkas på grund av fel. Se loggen för detaljer. + %1 och %n andra filer kunde inte synkroniseras på grund av fel. Se loggen för detaljer. + - - %1 and %n other file(s) have been updated. - %1 och %n andra filer har uppdaterats.%1 och %n andra filer har uppdaterats. + %1 and %n other file(s) have been added. + + %1 fil har lagts till. + %1 och %n ytterligare filer har lagts till. + - - %1 has been renamed to %2 and %n other file(s) have been renamed. - %1 har döpts om till %2 och %n andra filer har döpts om.%1 har döpts om till %2 och %n andra filer har döpts om. + %1 and %n other file(s) have been removed. + + %1 och %n annan fil har tagits bort. + %1 och %n andra filer har tagits bort. + - - %1 has been moved to %2 and %n other file(s) have been moved. - %1 har flyttats till %2 och %n andra filer har flyttats.%1 har flyttats till %2 och %n andra filer har flyttats. + %1 and %n other file(s) have been updated. + + %1 och %n andra filer har uppdaterats. + %1 och %n andra filer har uppdaterats. + - - - %1 has and %n other file(s) have sync conflicts. - %1 har och %n annan fil har synkroniseringskonflikter.%1 har och %n andra filer har synkroniseringskonflikter. + + %1 could not be synced due to an error. See the log for details. + %1 kunde inte synkroniseras på grund av ett fel. Se loggen för detaljer. - %1 has a sync conflict. Please check the conflict file! %1 har en synkroniseringskonflikt. Vänligen kontrollera konfliktfilen! - - %1 and %n other file(s) could not be synced due to errors. See the log for details. - %1 och %n andra filer kunde inte synkas på grund av fel. Se loggen för detaljer.%1 och %n andra filer kunde inte synkroniseras på grund av fel. Se loggen för detaljer. + %1 has and %n other file(s) have sync conflicts. + + %1 har och %n annan fil har synkroniseringskonflikter. + %1 har och %n andra filer har synkroniseringskonflikter. + - - %1 could not be synced due to an error. See the log for details. - %1 kunde inte synkroniseras på grund av ett fel. Se loggen för detaljer. + %1 has been added. + %1 names a file. + %1 har lagts till. - - %1 and %n other file(s) are currently locked. - %1 och %n andra fil(er) är för närvarande låsta.%1 och %n andra fil(er) är för närvarande låsta. + %1 has been moved to %2 and %n other file(s) have been moved. + + %1 har flyttats till %2 och %n andra filer har flyttats. + %1 har flyttats till %2 och %n andra filer har flyttats. + - - %1 is currently locked. - %1 är för närvarande låst. + %1 has been moved to %2. + %1 har flyttats till %2. - - Sync Activity - Synkroniseringsaktivitet + %1 has been removed. + %1 names a file. + %1 har tagits bort. + + + %1 has been renamed to %2 and %n other file(s) have been renamed. + + %1 har döpts om till %2 och %n andra filer har döpts om. + %1 har döpts om till %2 och %n andra filer har döpts om. + - - Could not read system exclude file - Kunde inte läsa systemets exkluderings-fil + %1 has been renamed to %2. + %1 and %2 name files. + %1 har döpts om till %2. - - A new folder larger than %1 MB has been added: %2. - - En ny mapp större än %1 MB har lagts till: %2. - + %1 has been updated. + %1 names a file. + %1 har uppdaterats. - - A folder from an external storage has been added. - - En mapp från en extern lagringsyta har lagts till. - + %1 is currently locked. + %1 är för närvarande låst. - - Please go in the settings to select it if you wish to download it. - Vänligen gå till inställningar och välj den om du önskar att hämta den. + A folder from an external storage has been added. + - A folder has surpassed the set folder size limit of %1MB: %2. %3 En mapp har överskridit den inställda mappstorleksgränsen på %1MB: %2. %3 - - Keep syncing - Fortsätt synkronisera - - - - Stop syncing - Sluta synkronisera - - - - The folder %1 has surpassed the set folder size limit of %2MB. - Mappen %1 har överskridit den inställda mappstorleksgränsen på %2MB. - - - - Would you like to stop syncing this folder? - Vill du sluta synkronisera den här mappen? + A large number of files in the server have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Ett stort antal filer på servern har raderats. +Bekräfta om du vill fortsätta med dessa raderingar. +Alternativt kan du återställa alla raderade filer genom att ladda upp från '%1' mappen till servern. - - The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. - Mappen %1 skapades men var tidigare exkluderad från synkronisering. Data i denna mapp kommer inte att synkroniseras. + A large number of files in your local '%1' folder have been deleted. +Please confirm if you'd like to proceed with these deletions. +Alternatively, you can restore all deleted files by downloading them from the server. + Ett stort antal filer i den lokala '%1' mappen har tagits bort. +Bekräfta om du vill fortsätta med dessa raderingar. +Alternativt kan du återställa alla raderade filer genom att ladda ner dem från servern. - - The file %1 was created but was excluded from synchronization previously. It will not be synchronized. - Filen %1 skapades men var tidigare exkluderad från synkronisering. Den kommer inte att synkroniseras. + A new folder larger than %1 MB has been added: %2. + - Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -2333,210 +1894,206 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome %1 - - Virtual file download failed with code "%1", status "%2" and error message "%3" - Virtuell filnedladdning misslyckades med koden "%1", status "%2" och felmeddelandet "%3" + Could not read system exclude file + Kunde inte läsa systemets exkluderings-fil - - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Ett stort antal filer på servern har raderats. -Bekräfta om du vill fortsätta med dessa raderingar. -Alternativt kan du återställa alla raderade filer genom att ladda upp från '%1' mappen till servern. + Keep syncing + Fortsätt synkronisera - - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. - Ett stort antal filer i den lokala '%1' mappen har tagits bort. -Bekräfta om du vill fortsätta med dessa raderingar. -Alternativt kan du återställa alla raderade filer genom att ladda ner dem från servern. + Please choose a different location. %1 isn't a readable folder. + Välj en annan plats. %1 är inte en läsbar mapp. - - Remove all files? - Ta bort alla filer? + Please choose a different location. %1 isn't a valid folder. + Välj en annan plats. %1 är inte en giltig mapp. + + + Please choose a different location. The folder %1 doesn't exist. + Välj en annan plats. Mappen %1 finns inte. + + + Please go in the settings to select it if you wish to download it. + Vänligen gå till inställningar och välj den om du önskar att hämta den. - Proceed with Deletion Fortsätt med radering - - Restore Files to Server - Återställ filer till server + Remove all files? + Ta bort alla filer? - Restore Files from Server Återställ filer från servern - - - OCC::FolderCreationDialog - - - Create new folder - Skapa ny mapp - - - - Enter folder name - Ange mappens namn + + Restore Files to Server + Återställ filer till server - - Folder already exists - Mappen finns redan + Stop syncing + Sluta synkronisera - - Error - Fel + Sync Activity + Synkroniseringsaktivitet - - Could not create a folder! Check your write permissions. - Kunde inte skapa mappen! Kontrollera skrivrättigheterna. + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + Filen %1 skapades men var tidigare exkluderad från synkronisering. Den kommer inte att synkroniseras. - - - OCC::FolderMan - - Could not reset folder state - Kunde inte återställa mappens skick + The folder %1 has surpassed the set folder size limit of %2MB. + Mappen %1 har överskridit den inställda mappstorleksgränsen på %2MB. - - (backup) - (säkerhetskopia) + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Mappen %1 skapades men var tidigare exkluderad från synkronisering. Data i denna mapp kommer inte att synkroniseras. - - (backup %1) - (säkerhetkopia %1) + Virtual file download failed with code "%1", status "%2" and error message "%3" + Virtuell filnedladdning misslyckades med koden "%1", status "%2" och felmeddelandet "%3" - - An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. - En gammal synkroniseringsjournal "%1" hittades, men kunde inte tas bort. Kontrollera att inget program använder den för närvarande. + Would you like to stop syncing this folder? + Vill du sluta synkronisera den här mappen? + + + OCC::FolderCreationDialog - - Undefined state. - Okänt tillstånd. + %1 Create new folder + - - Waiting to start syncing. - Väntar på att starta synkronisering. + Could not create a folder! Check your write permissions. + Kunde inte skapa mappen! Kontrollera skrivrättigheterna. - - - Preparing for sync. - Förbereder synkronisering + + Create new folder + Skapa ny mapp - - Syncing %1 of %2 (A few seconds left) - Synkroniserar %1 av %2 (några sekunder kvar) + Enter folder name + Ange mappens namn - - Syncing %1 of %2 (%3 left) - Synkroniserar %1 av %2 (%3 kvar) + Error + Fel - - Syncing %1 of %2 - Synkroniserar %1 av %2 + Folder already exists + Mappen finns redan + + + OCC::FolderMan - - Syncing %1 (A few seconds left) - Synkroniserar %1 (några sekunder kvar) + %1 (Sync is paused) + %1 (synkronisering pausad) - - - Syncing %1 (%2 left) - Synkroniserar %1 (%2 kvar) + + (backup %1) + - - Syncing %1 - Synkroniserar %1 + (backup) + - - Sync is running. - Synkronisering pågår. + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + En gammal synkroniseringsjournal "%1" hittades, men kunde inte tas bort. Kontrollera att inget program använder den för närvarande. - - Sync finished with unresolved conflicts. - Synkroniseringen lyckades, men olösta konflikter uppstod. + Could not reset folder state + Kunde inte återställa mappens skick - Last sync was successful. Senaste synkronisering lyckades. - - Setup error. - Inställningsfel. - - - - Sync request was cancelled. - Synkroniseringsbegäran avbröts. - - - - Please choose a different location. The selected folder isn't valid. - Välj en annan plats. Den valda mappen är inte giltig. + Please choose a different location. %1 is already being used as a sync folder for %2. + folder location, server url + Välj en annan plats.. %1 används redan som en synkroniseringsmapp för %2. - - Please choose a different location. %1 is already being used as a sync folder. Välj en annan plats. %1 används redan som en synkroniseringsmapp. - + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Välj en annan plats. %1 finns redan i en mapp som används som en synkroniseringsmapp. + + Please choose a different location. The path %1 doesn't exist. Välj en annan plats. Sökvägen %1 finns inte. - Please choose a different location. The path %1 isn't a folder. Välj en annan plats. Sökvägen %1 är inte en mapp. - - - Please choose a different location. You don't have enough permissions to write to %1. + Please choose a different location. The selected folder isn't valid. + Välj en annan plats. Den valda mappen är inte giltig. + + + Please choose a different location. You don't have enough permissions to write to %1. folder location Välj en annan plats. Du har inte tillräckliga behörigheter för att skriva till %1. - - Please choose a different location. %1 is already contained in a folder used as a sync folder. - Välj en annan plats. %1 finns redan i en mapp som används som en synkroniseringsmapp. + Preparing for sync. + Förbereder synkronisering - - Please choose a different location. %1 is already being used as a sync folder for %2. - folder location, server url - Välj en annan plats.. %1 används redan som en synkroniseringsmapp för %2. + Setup error. + Inställningsfel. + + + Sync finished with unresolved conflicts. + Synkroniseringen lyckades, men olösta konflikter uppstod. + + + Sync is paused. + Synkronisering är pausad. + + + Sync is running. + Synkronisering pågår. + + + Sync request was cancelled. + Synkroniseringsbegäran avbröts. + + + Syncing %1 + Synkroniserar %1 + + + Syncing %1 (%2 left) + Synkroniserar %1 (%2 kvar) + + + Syncing %1 (A few seconds left) + Synkroniserar %1 (några sekunder kvar) + + + Syncing %1 of %2 + Synkroniserar %1 av %2 + + + Syncing %1 of %2 (%3 left) + Synkroniserar %1 av %2 (%3 kvar) + + + Syncing %1 of %2 (A few seconds left) + Synkroniserar %1 av %2 (några sekunder kvar) - The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2547,207 +2104,161 @@ För att lösa problemet: ta bort %1 från ett av kontona och skapa en ny synkro För avancerade användare: det här problemet kan vara relaterat till flera synkdatabasfiler i en mapp. Kontrollera %1 om det finns föråldrade och oanvända .sync_*.db-filer och ta bort dem. - - Sync is paused. - Synkronisering är pausad. - - - - Please open the app settings to grant access to the sync folders. - Öppna appens inställningar för att ge åtkomst till synkroniseringsmapparna. + Undefined state. + Okänt tillstånd. - - %1 (Sync is paused) - %1 (synkronisering pausad) + Waiting to start syncing. + Väntar på att starta synkronisering. - + OCC::FolderStatusDelegate - - Add Folder Sync Connection - Lägg till synkroniseringskoppling för mapp - - - - - - Grant access - Ge åtkomst + Add Folder Sync + - File Fil - + + Synchronize any other local folder with your %1 + + + OCC::FolderStatusModel - - You need to be connected to add a folder - Du måste vara ansluten för att lägga till en mapp + %1 %2 + Example text: "Uploading foobar.png" + %1 %2 - - Click this button to add a folder to synchronize. - Klicka på den här knappen för att lägga till en mapp att synkronisera. + %1 %2 (%3 of %4) + Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 (%3 av %4) - - Could not decrypt! - Kunde inte dekryptera! + %1 %2 … + Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + %1 %2 … - - %1 (%2) %1 (%2) - - Error while loading the list of folders from the server. - Ett fel uppstod när mapplistan försökte läsas in från servern. + %1 of %2, file %3 of %4 + Example text: "12 MB of 345 MB, file 6 of 7" + %1 av %2, fil %3 av %4 - - Due to recent security improvements, the client no longer has access to the folder. Your approval is required one time to restore access. Please select the synchronization folder root. - På grund av nyligen införda säkerhetsförbättringar har klienten inte längre åtkomst till mappen. Ditt godkännande krävs en gång för att återställa åtkomsten. Välj rotmappen för synkronisering. + %5 left, %1 of %2, file %3 of %4 + %5 kvar, %1 av %2, fil %3 av %4 - - Virtual file support is enabled. - Stöd för virtuella filer är aktiverat. + , + , - - Signed out - Utloggad + A few seconds left, %1 of %2, file %3 of %4 + Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + Några sekunder kvar, %1 av %2, fil %3 av %4 - - Synchronizing virtual files in local folder - Synkronisera virtuella filer i lokal mapp + About to start syncing + Ska börja synkronisera - - Synchronizing files in local folder - Synkronisera filer i lokal mapp + Checking for changes in local "%1" + Söker efter ändringar i lokala "%1" - Checking for changes in remote "%1" Söker efter ändringar i fjärrmappen "%1" - - Checking for changes in local "%1" - Söker efter ändringar i lokala "%1" - - - - Syncing local and remote changes - Synkroniserar lokala och fjärrändringar + Click this button to add a folder to synchronize. + Klicka på den här knappen för att lägga till en mapp att synkronisera. - - %1 %2 … - Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" - %1 %2 … + Could not decrypt! + Kunde inte dekryptera! - Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Nedladdning %1/s - - File %1 of %2 - Fil %1 av %2 - - - - There are unresolved conflicts. Click for details. - Det finns olösta konflikter. Klicka för detaljer. - - - - - , - , + Error while loading the list of folders from the server. + Ett fel uppstod när mapplistan försökte läsas in från servern. - Fetching folder list from server … Hämtar mapplistan från server … - - ↓ %1/s - ↓ %1/s + File %1 of %2 + Fil %1 av %2 - - Upload %1/s - Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) - Uppladdning %1/s + Preparing to sync … + Förbereder synk ... + + + Signed out + Utloggad - - ↑ %1/s - ↑ %1/s + Synchronizing files in local folder + Synkronisera filer i lokal mapp - - %1 %2 (%3 of %4) - Example text: "Uploading foobar.png (2MB of 2MB)" - %1 %2 (%3 av %4) + Synchronizing virtual files in local folder + Synkronisera virtuella filer i lokal mapp - - %1 %2 - Example text: "Uploading foobar.png" - %1 %2 + Syncing local and remote changes + Synkroniserar lokala och fjärrändringar - - A few seconds left, %1 of %2, file %3 of %4 - Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" - Några sekunder kvar, %1 av %2, fil %3 av %4 + There are unresolved conflicts. Click for details. + Det finns olösta konflikter. Klicka för detaljer. - - %5 left, %1 of %2, file %3 of %4 - %5 kvar, %1 av %2, fil %3 av %4 + Upload %1/s + Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Uppladdning %1/s - - %1 of %2, file %3 of %4 - Example text: "12 MB of 345 MB, file 6 of 7" - %1 av %2, fil %3 av %4 + Virtual file support is enabled. + Stöd för virtuella filer är aktiverat. - Waiting for %n other folder(s) … - Väntat på %n annan mapp …Väntat på %n andra mappar … + + Väntat på %n annan mapp … + Väntat på %n andra mappar … + - - About to start syncing - Ska börja synkronisera + You need to be connected to add a folder + Du måste vara ansluten för att lägga till en mapp - - Preparing to sync … - Förbereder synk ... + ↑ %1/s + ↑ %1/s - + + ↓ %1/s + ↓ %1/s + + OCC::FolderWatcher - The watcher did not receive a test notification. Bevakaren fick ingen testnotifikation. @@ -2755,7 +2266,6 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWatcherPrivate - This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Detta problem uppstår oftast vid problem med inotify. Se FAQ för mer information. @@ -2763,12 +2273,10 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizard - Add Folder Sync Connection Lägg till synkroniseringskoppling för map - Add Sync Connection Lägg till synkroniseringskoppling. @@ -2776,362 +2284,312 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizardLocalPath - + Add Folder Sync + + + + Choose + + + Click to select a local folder to sync. Klicka för att välja en lokal mapp att synkronisera. - Enter the path to the local folder. Ange sökvägen till den lokala mappen. - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + + + Select the source folder Välj källmapp - + + Step 1 of 3: Select local folder + + + OCC::FolderWizardRemotePath - - Create Remote Folder - Skapa fjärrmapp + Add Folder Sync + - - Enter the name of the new folder to be created below "%1": - Ange namn på den mapp som ska placeras under "%1". + Authentication failed accessing %1 + Autentisering misslyckades att komma åt %1 - - Folder was successfully created on %1. - Mappen skapades på %1. + Both folders are permanently linked and the respective contents are automatically synchronized and updated. + - - Authentication failed accessing %1 - Autentisering misslyckades att komma åt %1 + Choose this to sync the entire account + Välj detta för att synkronisera hela kontot + + + Create Remote Folder + Skapa fjärrmapp + + + Create folder + Skapa mapp + + + Enter the name of the new folder to be created below "%1": + Ange namn på den mapp som ska placeras under "%1". - Failed to create the folder on %1. Please check manually. Det gick inte att skapa mappen på %1. Kontrollera manuellt. - Failed to list a folder. Error: %1 Kunde inte lista en mapp. Felkod: %1 - - Choose this to sync the entire account - Välj detta för att synkronisera hela kontot + Folder was successfully created on %1. + Mappen skapades på %1. - - Please choose a different location. %1 is already being synced to %2. Välj en annan plats. %1 synkroniseras redan till %2. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + + + + Refresh + Uppdatera + + + Step 2 of 3: Directory in your %1 + + + You are already syncing the subfolder %1 at %2. Du synkroniserar redan undermappen %1 på %2. - + OCC::FolderWizardSelectiveSync - - - Use virtual files instead of downloading content immediately %1 - Använd virtuella filer istället för att ladda ner innehåll direkt %1 - - - - (experimental) (experimentell) - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. + Add Folder Sync + + + + Step 3 of 3: Selektive Synchronisation + + + + Use virtual files instead of downloading content immediately %1 + Använd virtuella filer istället för att ladda ner innehåll direkt %1 - Virtual files are not supported at the selected location Virtuella filer stöds inte på den valda platsen - + + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. + + - OCC::GETFileJob + OCC::GeneralSettings - - No E-Tag received from server, check Proxy/Gateway - Ingen E-Tag mottogs från servern, kontrollera proxy/gateway + &Automatically check for updates + &Automatisk kontroll av uppdateringar - - We received a different E-Tag for resuming. Retrying next time. - Vi mottog en helt annan e-tag för att återuppta. Försök igen nästa gång. + &Launch on System Startup + &Starta vid uppstart - - We received an unexpected download Content-Length. - Nerladdningens storlek är inkorrekt. - - - - Server returned wrong content-range - Servern returnerade felaktig content-range - - - - Connection Timeout - Anslutningen avbröts på grund av timeout - - - - OCC::GeneralSettings - - - Show Call Notifications - Visa samtalsmeddelanden - - - - For System Tray - För aktivitetsfältet + &Restart && Update + &Starta om && Uppdatera - - Show Chat Notifications - Visa chattaviseringar + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - beta: innehåller versioner med nya funktioner som kanske inte testats ordentligt +- daily: innehåller versioner som skapas dagligen endast för testning och utveckling + +Nedgradering av versioner är inte möjligt omedelbart: att byta från beta till stabil innebär att vänta på den nya stabila versionen. - - Show Server &Notifications - Visa server&aviseringar + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning + - enterprise: innehåller stabila versioner för kunder. + +Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil till enterprise innebär att man väntar på den nya enterprise-versionen. - Advanced Avancerat - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB - - - Ask for confirmation before synchronizing external storages Fråga innan synkronisering av externa lagringsytor - - &Launch on System Startup - &Starta vid uppstart - - - - General Settings - Generella inställningar - - - - General settings - Allmänna inställningar + Ask for confirmation before synchronizing new folders larger than + Fråga innan du synkroniserar nya mappar större än - - Use &Monochrome Icons - Använd &monokroma ikoner + Automatically disable synchronisation of folders that overcome limit + Inaktivera automatiskt synkronisering av mappar som överskrider gränsen - - Show &Quota Warning Notifications - Visa &kvotvarningar + Cancel + Avbryt - - Ask for confirmation before synchronizing new folders larger than - Fråga innan du synkroniserar nya mappar större än + Change update channel + Ändra uppdateringskanal - - Notify when synchronised folders grow larger than specified limit - Meddela när synkroniserade mappar växer sig större än den angivna gränsen + Changing update channel? + Ändra uppdateringskanal? - - Automatically disable synchronisation of folders that overcome limit - Inaktivera automatiskt synkronisering av mappar som överskrider gränsen + Check Now + Kolla nu - - Move removed files to trash - Flytta borttagna filer till papperskorgen + Create Debug Archive + Skapa felsökningsarkiv - - Show sync folders in &Explorer's navigation pane - Visa synkroniseringsmappar i &utforskarens navigeringsfönster + Data Protection + - - Server poll interval - Serverns uppdateringsintervall + Debug Archive Created + Felsökningsarkiv skapat - - seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) - sekunder (om <a href="https://github.com/nextcloud/notify_push">Client Push</a> inte är tillgängligt) + Desktop client x.x.x + Skrivbordsklient x.x.x - Edit &Ignored Files Ändra &ignorerade filer - - - Create Debug Archive - Skapa felsökningsarkiv + For System Tray + För aktivitetsfältet - - Info - Info + General Settings + Generella inställningar - - Desktop client x.x.x - Skrivbordsklient x.x.x + Legal Notice + Rättsligt meddelande - - Update channel - Uppdateringskanal + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - &Automatically check for updates - &Automatisk kontroll av uppdateringar + More Information + + + + Move removed files to trash + Flytta borttagna filer till papperskorgen - - Check Now - Kolla nu + Necessary data + - - Usage Documentation - Användardokumentation + Notify when synchronised folders grow larger than specified limit + Meddela när synkroniserade mappar växer sig större än den angivna gränsen - - Legal Notice - Rättsligt meddelande + Open Source Software + - - Restore &Default - Återställ &Standard + Privacy Policy + - - &Restart && Update - &Starta om && Uppdatera + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redigera information som anses känslig innan du delar! Felsökningsarkiv skapat på %1 - - Server notifications that require attention. - Serveraviseringar som kräver uppmärksamhet. + Required to ensure that the software can be used as expected + - - Show chat notification dialogs. - Visa dialogrutor för chattaviseringar. + Restore &Default + Återställ &Standard - - Show call notification dialogs. - Visa dialogrutor för samtalsmeddelanden. + Restore to &%1 + Återställ till &%1 - - Show notification when quota usage exceeds 80%. - Visa avisering när kvotanvändningen överstiger 80%. + Send anonymous use + - - You cannot disable autostart because system-wide autostart is enabled. - Du kan inte deaktivera autostart eftersom autostart är aktiverat på systemnivå. + Server notifications that require attention. + Serveraviseringar som kräver uppmärksamhet. - - Restore to &%1 - Återställ till &%1 + Server poll interval + Serverns uppdateringsintervall - - - Connected to an enterprise system. Update channel (%1) cannot be changed. - Ansluten till ett företagssystem. Uppdateringskanalen (%1) kan inte ändras. + Show &Quota Warning Notifications + Visa &kvotvarningar - - stable - stabil + Show Call Notifications + Visa samtalsmeddelanden - - beta - beta + Show Chat Notifications + Visa chattaviseringar - - daily - dagligen + Show Server &Notifications + Visa server&aviseringar - - enterprise - enterprise + Show call notification dialogs. + Visa dialogrutor för samtalsmeddelanden. - - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning - - beta: innehåller versioner med nya funktioner som kanske inte testats ordentligt -- daily: innehåller versioner som skapas dagligen endast för testning och utveckling - -Nedgradering av versioner är inte möjligt omedelbart: att byta från beta till stabil innebär att vänta på den nya stabila versionen. + Show chat notification dialogs. + Visa dialogrutor för chattaviseringar. - - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning - - enterprise: innehåller stabila versioner för kunder. - -Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil till enterprise innebär att man väntar på den nya enterprise-versionen. + Show notification when quota usage exceeds 80%. + Visa avisering när kvotanvändningen överstiger 80%. - - Changing update channel? - Ändra uppdateringskanal? + Show sync folders in &Explorer's navigation pane + Visa synkroniseringsmappar i &utforskarens navigeringsfönster - The channel determines which upgrades will be offered to install: - stable: contains tested versions considered reliable @@ -3141,70 +2599,80 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil - - Change update channel - Ändra uppdateringskanal + This helps us to optimize the software and to better identify system crashes and unexpected errors. + - - Cancel - Avbryt + Update channel + Uppdateringskanal + + + Updates + + + + Usage Documentation + Användardokumentation - - Login Item Requires Approval - Inloggning kräver godkännande + Use &Monochrome Icons + Använd &monokroma ikoner - - The login item has been registered but needs your approval to become active. Please open System Settings → General → Login Items and enable %1 there. - Inloggningen har registrerats men behöver ditt godkännande för att bli aktiv. Öppna Systeminställningar → Allmänt → Inloggningsobjekt och aktivera %1 där. + You cannot disable autostart because system-wide autostart is enabled. + Du kan inte deaktivera autostart eftersom autostart är aktiverat på systemnivå. - Zip Archives Zip-arkiv - - Failed to Access File - Det gick inte att öppna filen + beta + beta + + + daily + dagligen - - Could not access the selected location. Please try again or choose a different location. - Det gick inte att komma åt den valda platsen. Vänligen försök igen eller välj en annan plats. + enterprise + enterprise - - Debug Archive Created - Felsökningsarkiv skapat + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + sekunder (om <a href="https://github.com/nextcloud/notify_push">Client Push</a> inte är tillgängligt) - - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redigera information som anses känslig innan du delar! Felsökningsarkiv skapat på %1 + stable + stabil - + - OCC::GetOrCreatePublicLinkShare + OCC::GETFileJob - - Password for share required - Lösenord för delning krävs + Connection Timeout + Anslutningen avbröts på grund av timeout + + + No E-Tag received from server, check Proxy/Gateway + Ingen E-Tag mottogs från servern, kontrollera proxy/gateway - - Please enter a password for your link share: - Ange ett lösenord för din länkdelning: + Server returned wrong content-range + Servern returnerade felaktig content-range - - Sharing error - Fel vid delning + We received a different E-Tag for resuming. Retrying next time. + Vi mottog en helt annan e-tag för att återuppta. Försök igen nästa gång. + + + We received an unexpected download Content-Length. + Nerladdningens storlek är inkorrekt. + + + OCC::GetOrCreatePublicLinkShare - Could not retrieve or create the public link share. Error: %1 @@ -3212,54 +2680,57 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil %1 - - - OCC::HttpCredentialsGui - - - Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> - Ange %1 lösenord:<br><br>Användarnamn: %2<br>Konto: %3<br> + + Password for share required + Lösenord för delning krävs - - Reading from keychain failed with error: "%1" - Läsning från nyckelkedjan misslyckades med fel: "%1" + Please enter a password for your link share: + Ange ett lösenord för din länkdelning: - - Enter Password - Ange lösenord + Sharing error + Fel vid delning + + + OCC::HttpCredentialsGui - <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Klicka här</a> för att begära ett applösenord från webbgränssnittet. - + + Enter Password + Ange lösenord + + + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Ange %1 lösenord:<br><br>Användarnamn: %2<br>Konto: %3<br> + + + Reading from keychain failed with error: "%1" + Läsning från nyckelkedjan misslyckades med fel: "%1" + + OCC::IgnoreListEditor - - Ignored Files Editor - Ändra ignorerade filer + Files Ignored by Patterns + Filer ignorerade av mönster - Global Ignore Settings Globala blockeringsinställningar - - Sync hidden files - Synkronisera dolda filer + Ignored Files Editor + Ändra ignorerade filer - - Files Ignored by Patterns - Filer ignorerade av mönster + Sync hidden files + Synkronisera dolda filer - This entry is provided by the system at "%1" and cannot be modified in this view. Denna post hanteras av systemet '%1' och kan inte ändras i denna vy. @@ -3267,32 +2738,26 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil OCC::IgnoreListTableWidget - - Pattern - Filter + Add + Lägg till - + Add a new ignore pattern: + Lägg till ett nytt ignorera mönster: + + Allow Deletion Tillåt radering - - Add - Lägg till - - - - Remove - Ta bort + Cannot write changes to "%1". + Kunde inte spara ändringar av "%1". - - Remove all - Ta bort alla + Could not open file + Kunde inte öppna fil - Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -3301,158 +2766,128 @@ Items where deletion is allowed will be deleted if they prevent a directory from Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bort. Detta är användbart för metadata. - - Could not open file - Kunde inte öppna fil + Ignore Pattern + - - Cannot write changes to "%1". - Kunde inte spara ändringar av "%1". + Pattern + Filter - - Add Ignore Pattern - Lägg till ignorera mönster + Remove + Ta bort - - Add a new ignore pattern: - Lägg till ett nytt ignorera mönster: + Remove all + Ta bort alla - + OCC::InvalidFilenameDialog - - Invalid filename - Ogiltigt filnamn + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Kunde inte byta namn på filen eftersom filnamnet är upptaget. Ange ett annat filnamn. - - The file could not be synced because it contains characters which are not allowed on this system. - Filen kunde inte synkroniseras då den innehåller tecken som är ogiltiga under detta system. + Checking rename permissions … + Kontrollerar behörigheter för att byta namn ... - - Error - Fel + Could not rename file. Please make sure you are connected to the server. + Kunde inte byta namn på filen. Kontrollera anslutningen till servern. - - Please enter a new name for the file: - Ange ett nytt namn för filen: + Could not rename local file. %1 + Kunde inte byta namn på lokal fil. %1 - - - New filename - Nytt filnamn + + Error + Fel - - Rename file - Byt filnamn + Failed to fetch permissions with error %1 + Misslyckades att hämta behörigheter med felet %1 - - The file "%1" could not be synced because the name contains characters which are not allowed on this system. - Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på det här systemet. + Filename contains illegal characters: %1 + Filnamnet innehåller ogiltiga tecken: %1 - - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - Följande tecken är inte tillåtna i systemet: \ / : ? * “ < > | samt inledande/avslutande mellanslag + Filename contains leading and trailing spaces. + Filnamnet innehåller blanksteg i början och slutet. - - The file "%1" could not be synced because the name contains characters which are not allowed on the server. - Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på servern. + Filename contains leading spaces. + Filnamnet innehåller mellanslag i början. - - The following characters are not allowed: %1 - Följande tecken är inte tillåtna: %1 + Filename contains trailing spaces. + Filnamnet innehåller blanksteg i slutet. - - The following basenames are not allowed: %1 - Följande basnamn är inte tillåtna: %1 + Invalid filename + Ogiltigt filnamn - - The following filenames are not allowed: %1 - Följande filnamn är inte tillåtna: %1 + New filename + Nytt filnamn - - The following file extensions are not allowed: %1 - Följande filtillägg är inte tillåtna: %1 + Please enter a new name for the file: + Ange ett nytt namn för filen: - - Checking rename permissions … - Kontrollerar behörigheter för att byta namn ... + Rename file + Byt filnamn - - You don't have the permission to rename this file. Please ask the author of the file to rename it. - Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på servern. - - Failed to fetch permissions with error %1 - Misslyckades att hämta behörigheter med felet %1 + The file "%1" could not be synced because the name contains characters which are not allowed on this system. + Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på det här systemet. - - Filename contains leading and trailing spaces. - Filnamnet innehåller blanksteg i början och slutet. + The file could not be synced because it contains characters which are not allowed on this system. + Filen kunde inte synkroniseras då den innehåller tecken som är ogiltiga under detta system. - - Filename contains leading spaces. - Filnamnet innehåller mellanslag i början. + The following basenames are not allowed: %1 + Följande basnamn är inte tillåtna: %1 - - Filename contains trailing spaces. - Filnamnet innehåller blanksteg i slutet. + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + Följande tecken är inte tillåtna i systemet: \ / : ? * “ < > | samt inledande/avslutande mellanslag - - Use invalid name - Använd ogiltigt namn + The following characters are not allowed: %1 + Följande tecken är inte tillåtna: %1 - - Filename contains illegal characters: %1 - Filnamnet innehåller ogiltiga tecken: %1 + The following file extensions are not allowed: %1 + Följande filtillägg är inte tillåtna: %1 - - Could not rename file. Please make sure you are connected to the server. - Kunde inte byta namn på filen. Kontrollera anslutningen till servern. + The following filenames are not allowed: %1 + Följande filnamn är inte tillåtna: %1 - - Cannot rename file because a file with the same name does already exist on the server. Please pick another name. - Kunde inte byta namn på filen eftersom filnamnet är upptaget. Ange ett annat filnamn. + Use invalid name + Använd ogiltigt namn - - Could not rename local file. %1 - Kunde inte byta namn på lokal fil. %1 + You don't have the permission to rename this file. Please ask the author of the file to rename it. + Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. - + OCC::LegacyAccountSelectionDialog - Legacy import Import från äldre version - Select the accounts to import from the legacy configuration: Välj konton som ska importeras från den äldre konfigurationen: @@ -3460,36 +2895,37 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor OCC::LegalNotice - - - Legal notice - Rättsligt meddelande - - - - Close - Stäng - - - <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> - <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licenserad under GNU General Public License (GPL) Version 2.0 eller annan senare version.</p> - + + Close + Stäng + + + Legal notice + Rättsligt meddelande + + OCC::LogBrowser - + Enable logging to temporary folder + Aktivera loggning till tillfällig mapp + + Log Output Loggdata - + Open folder + Öppna mapp + + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3498,415 +2934,393 @@ Eftersom loggfiler kan bli stora kommer klienten att skapa en ny för varje synk Om aktiverat kommer loggar att skrivas till %1 - - Enable logging to temporary folder - Aktivera loggning till tillfällig mapp - - - This setting persists across client restarts. Note that using any logging command line options will override this setting. Den här inställningen kvarstår även när klienten startas om. Observera att om du använder kommandoradsalternativ för loggning kommer den här inställningen att åsidosättas. - - - Open folder - Öppna mapp - - + OCC::Logger - - - Error - Fel - - - - <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Filen "%1"<br/>kan inte öppnas för skrivning.<br/><br/>Loggtexten <b>kan inte</b> sparas!</nobr> - + + Error + Fel + + OCC::Mac::FileProviderEditLocallyJob - - Could not start editing locally. - Det gick inte att börja redigera lokalt. - - - An error occurred during setup. Ett fel uppstod under installationen. - Could not find a file for local editing. Make sure its path is valid and it is synced locally. Det gick inte att hitta en fil för lokal redigering. Se till att sökvägen är giltig och att den är synkroniserad lokalt. - Could not get file ID. Kunde inte hämta fil-ID. - Could not get file identifier. Kunde inte hämta filidentifierare. - + Could not start editing locally. + Det gick inte att börja redigera lokalt. + + The file identifier is empty. Filidentifieraren är tom. - OCC::NSISUpdater + OCC::NetworkSettings - - New Version Available - Ny version tillgänglig + Download Bandwidth + Bandbredd för hämtning - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - <p>En ny version av %1 klienten är tillgänglig.</p><p><b>%2</b> är tillgänglig för hämtning. Den installerade versionen är %3.</p> + HTTP(S) proxy + HTTP(S) proxy - - Update Failed - Uppdateringen misslyckades + Host + Server - - <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> - <p>En ny version av %1 klienten är tillgänglig men uppdateringsprocessen misslyckades.</p><p><b>%2</b> har laddats ner. Den installerade versionen är %3. Om du bekräftar omstart och uppdatering kan det hända att datorn startas om för att slutföra installationen.</p> + Hostname of proxy server + Värdnamn för proxyserver - - Ask again later - Fråga igen senare + KBytes/s + KBytes/s - - Restart and update - Starta om och uppdatera + Limit automatically + Begränsa automatiskt - - Update manually - Uppdatera manuellt + Limit to + Begränsa till - - Skip this time - Hoppa över denna gång + Limit to 3/4 of estimated bandwidth + Begränsa till 3/4 av uppskattad bandbredd - - Get update - Hämta uppdatering + Manually specify proxy + Ange proxy manuellt - - - OCC::NetworkSettings - - Proxy Settings - Proxyinställningar + No limit + Ingen gräns - - Use system proxy - Använd systemets proxyinställning - - - - Host - Server + No proxy + Ingen proxy - - Proxy server requires authentication - Proxyservern kräver autentisering + Note: proxy settings have no effects for accounts on localhost + Observera att proxy-inställningar inte används för konton på localhost - - Download Bandwidth - Bandbredd för hämtning + Password for proxy server + Lösenord för proxyanvändare - - - Limit to - Begränsa till + Proxy Settings + Proxyinställningar - - - Limit to 3/4 of estimated bandwidth - Begränsa till 3/4 av uppskattad bandbredd + Proxy server requires authentication + Proxyservern kräver autentisering - - - Limit automatically - Begränsa automatiskt + SOCKS5 proxy + SOCKS5 proxy - - - - KBytes/s - KBytes/s + + Upload Bandwidth + Bandbredd för uppladdning - - Note: proxy settings have no effects for accounts on localhost - Observera att proxy-inställningar inte används för konton på localhost + Use system proxy + Använd systemets proxyinställning - - Manually specify proxy - Ange proxy manuellt + Username for proxy server + Användarnamn för proxyserver + + + OCC::NSISUpdater - - No proxy - Ingen proxy + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>En ny version av %1 klienten är tillgänglig men uppdateringsprocessen misslyckades.</p><p><b>%2</b> har laddats ner. Den installerade versionen är %3. Om du bekräftar omstart och uppdatering kan det hända att datorn startas om för att slutföra installationen.</p> - - - No limit - Ingen gräns + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + <p>En ny version av %1 klienten är tillgänglig.</p><p><b>%2</b> är tillgänglig för hämtning. Den installerade versionen är %3.</p> - - Upload Bandwidth - Bandbredd för uppladdning + Ask again later + Fråga igen senare - - Hostname of proxy server - Värdnamn för proxyserver + Get update + Hämta uppdatering + + + New Version Available + Ny version tillgänglig - - Username for proxy server - Användarnamn för proxyserver + Restart and update + Starta om och uppdatera - - Password for proxy server - Lösenord för proxyanvändare + Skip this time + Hoppa över denna gång - - HTTP(S) proxy - HTTP(S) proxy + Update Failed + Uppdateringen misslyckades - - SOCKS5 proxy - SOCKS5 proxy + Update manually + Uppdatera manuellt - + OCC::OCUpdater - - Could not check for new updates. - Kunde inte söka efter uppdateringar. + %1 available. Restart application to start the update. + %1 tillgänglig. Starta om appen för att starta uppdateringen. + + + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + En ny uppdatering för %1 kommer att installeras. Uppdateraren kan be om ytterligare rättigheter under processen. Datorn kan starta om för att slutföra installationen. - Checking update server … Kontrollerar med uppdateringsserver ... - - New %1 update ready - Ny %1-uppdatering redo + Could not check for new updates. + Kunde inte söka efter uppdateringar. - - A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. - En ny uppdatering för %1 kommer att installeras. Uppdateraren kan be om ytterligare rättigheter under processen. Datorn kan starta om för att slutföra installationen. + Could not download update. Please open %1 to download the update manually. + Kunde inte ladda ner uppdateringen. Öppna %1 för att ladda ner uppdateringen manuellt. + + + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Kunde inte ladda ner uppdatering. Tryck på <a href='%1'>%1</a> för att ladda ner uppdateringen manuellt. - Downloading %1 … Laddar ner %1 … - - %1 available. Restart application to start the update. - %1 tillgänglig. Starta om appen för att starta uppdateringen. + New %1 is available. Please open %2 to download the update. + Ny %1 är tillgänglig. Öppna %2 för att ladda ner uppdateringen. - - Could not download update. Please open <a href='%1'>%1</a> to download the update manually. - Kunde inte ladda ner uppdatering. Tryck på <a href='%1'>%1</a> för att ladda ner uppdateringen manuellt. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + Ny %1 är tillgänglig. Öppna <a href='%2'>%2</a> för att ladda ner uppdateringen. - - Could not download update. Please open %1 to download the update manually. - Kunde inte ladda ner uppdateringen. Öppna %1 för att ladda ner uppdateringen manuellt. + New %1 update ready + Ny %1-uppdatering redo - - New %1 is available. Please open <a href='%2'>%2</a> to download the update. - Ny %1 är tillgänglig. Öppna <a href='%2'>%2</a> för att ladda ner uppdateringen. + No updates available. Your installation is the latest version. + Inga uppdateringar tillgängliga. Din installation är den senaste versionen. - - New %1 is available. Please open %2 to download the update. - Ny %1 är tillgänglig. Öppna %2 för att ladda ner uppdateringen. + Update Check + Uppdateringskontroll - - + Update status is unknown: Did not check for new updates. Uppdateringsstatus är okänd: Gjorde ingen kontroll av nya uppdateringar. - You are using the %1 update channel. Your installation is the latest version. Du använder uppdateringskanalen %1 Din installation är den senaste versionen. + + + OCC::OwncloudAdvancedSetupPage - - No updates available. Your installation is the latest version. - Inga uppdateringar tillgängliga. Din installation är den senaste versionen. + %1 folder "%2" is synced to local folder "%3" + %1 mappen "%2" är synkroniserad mot den lokala mappen "%3" - - Update Check - Uppdateringskontroll + %1 free space + %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + %1 ledigt utrymme - - - OCC::OwncloudAdvancedSetupPage - - Connect - Anslut + (%1) + (%1) - - (experimental) (experimentell) - - - Use &virtual files instead of downloading content immediately %1 - Använd &virtuella filer istället för att ladda ner innehåll direkt %1 + Connect + Anslut - - Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. + In Finder's "Locations" sidebar section + I sidopanelens avsnitt “Platser” i Finder - - - %1 folder "%2" is synced to local folder "%3" - %1 mappen "%2" är synkroniserad mot den lokala mappen "%3" + + Local Sync Folder + Lokal mapp för synkronisering - Sync the folder "%1" Synkronisera mappen '%1' - - Warning: The local folder is not empty. Pick a resolution! - Varning: Den lokala mappen är inte tom. Välj en lösning! + There isn't enough free space in the local folder! + Det finns inte tillräckligt med ledigt utrymme i den lokala mappen! - - - %1 free space - %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB - %1 ledigt utrymme + Use &virtual files instead of downloading content immediately %1 + Använd &virtuella filer istället för att ladda ner innehåll direkt %1 - Virtual files are not supported at the selected location Virtuella filer stöds inte på den valda platsen - - Local Sync Folder - Lokal mapp för synkronisering + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. - - - (%1) - (%1) + Warning: The local folder is not empty. Pick a resolution! + Varning: Den lokala mappen är inte tom. Välj en lösning! + + + OCC::OwncloudConnectionMethodDialog - - There isn't enough free space in the local folder! - Det finns inte tillräckligt med ledigt utrymme i den lokala mappen! + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Misslyckades med att ansluta till den säkra serveradressen <em>%1</em>. Hur vill du gå vidare?</p></body></html> + + + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Misslyckades med att upprätta anslutning till den angivna servern. Hur vill du fortsätta?</p></body></html> - - In Finder's "Locations" sidebar section - I sidopanelens avsnitt “Platser” i Finder + Configure client-side TLS certificate + Konfigurera TLS klient-certifikat - - - OCC::OwncloudConnectionMethodDialog - Connection failed Anslutningen misslyckades - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Misslyckades med att upprätta anslutning till den angivna servern. Hur vill du fortsätta?</p></body></html> + Retry unencrypted over HTTP (insecure) + Försök igen okrypterat över HTTP (osäkert) - Select a different URL Välj en annan webbadress + + + OCC::ownCloudGui - - Retry unencrypted over HTTP (insecure) - Försök igen okrypterat över HTTP (osäkert) + %1 (%2, %3) + %1 (%2, %3) + + + %1: %2 + Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + %1: %2 - - Configure client-side TLS certificate - Konfigurera TLS klient-certifikat + Account %1: %2 + Konto %1: %2 - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - <html><head/><body><p>Misslyckades med att ansluta till den säkra serveradressen <em>%1</em>. Hur vill du gå vidare?</p></body></html> + Account synchronization is disabled + Synkronisering för konto är avstängd - + + Checking for changes in local "%1" + Söker efter ändringar i lokala "%1" + + + Checking for changes in remote "%1" + Söker efter ändringar i fjärrmappen "%1" + + + Disconnected from %1 + Koppla från %1 + + + Disconnected from accounts: + Bortkopplad från dessa konton: + + + Please sign in + Vänliga logga in + + + Terms of service + Användarvillkor + + + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + Servern på kontot %1 kör en version %2 som inte stöds. Att använda den här klienten med serverversioner som inte stöds är oprövat och potentiellt farligt. Fortsätt på egen risk. + + + There are no sync folders configured. + Det finns inga synkroniseringsmappar konfigurerade. + + + Unsupported Server Version + Serverversion stöds inte + + + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + Ditt konto %1 kräver att du accepterar din servers användarvillkor. Du kommer bli omdirigerad till %2 för att bekräfta att du har läst och håller med om villkoren. + + + macOS VFS for %1: A problem was encountered. + macOS VFS för %1: Ett problem påträffades. + + + macOS VFS for %1: Last sync was successful. + macOS VFS för %1: Senaste synkroniseringen lyckades. + + + macOS VFS for %1: Sync is running. + macOS VFS för %1: Synkronisering körs. + + OCC::OwncloudHttpCredsPage - &Email &E-post - Connect to %1 Anslut till %1 - Enter user credentials Ange inloggningsuppgifter @@ -3914,8 +3328,6 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudPropagator - - Impossible to get modification time for file in conflict %1 Omöjligt att få ändringstid för filen i konflikten %1 @@ -3923,220 +3335,184 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudSetupPage - - The link to your %1 web interface when you open it in the browser. - %1 will be replaced with the application name - Länken till din %1 webbsida när du öppnar den i webbläsaren. - - - &Next > &Nästa > - + Could not load certificate. Maybe wrong password? + Kunde inte läsa in certifikatet. Felaktigt lösenord? + + Server address does not seem to be valid Serverns adress verkar var ogiltig - - Could not load certificate. Maybe wrong password? - Kunde inte läsa in certifikatet. Felaktigt lösenord? + The link to your %1 web interface when you open it in the browser. + %1 will be replaced with the application name + Länken till din %1 webbsida när du öppnar den i webbläsaren. - + OCC::OwncloudSetupWizard - + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Filleverantörsbaserat konto %1 har skapats!</b></font> + + + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green"><b>Lokal synkroniseringsmapp %1 skapad!</b></font> + + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Lyckades ansluta till %1: %2 version %3 (%4)</font><br/><br/> - - Failed to connect to %1 at %2:<br/>%3 - Misslyckades att ansluta till %1 vid %2:<br/>%3 + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + <p><font color="red">Misslyckades skapa fjärrmappen, troligen p.g.a felaktiga inloggningsuppgifter.</font><br/>Kontrollera dina inloggningsuppgifter.</p> - - Timeout while trying to connect to %1 at %2. - Försök att ansluta till %1 på %2 tog för lång tid. + A sync connection from %1 to remote directory %2 was set up. + En synkroniseringskoppling från %1 till extern mapp %2 har skapats. - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Åtkomst förbjuden av servern. För att bekräfta att du har korrekta rättigheter, <a href="%1">klicka här</a> för att ansluta till tjänsten med din webb-läsare. - - Invalid URL - Ogiltig webbadress + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Kan inte ta bort och göra en säkerhetskopia av mappen på grund av att mappen eller en fil i den används av ett annat program. Stäng mappen eller filen och försök igen eller avbryt installationen. - - - Trying to connect to %1 at %2 … - Försöker ansluta till %1 på %2 ... + Connection to %1 could not be established. Please check again. + Anslutningen till %1 kunde inte etableras. Vänligen kontrollera och försök igen. - - The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. - Den autentiserade begäran till servern omdirigerades till "%1". URL:n är felaktig, servern är felkonfigurerad. + Could not create local folder %1 + Kunde inte skapa lokal mapp %1 - - There was an invalid response to an authenticated WebDAV request - Det var ett ogiltigt svar på en verifierad WebDAV-begäran + Creating local sync folder %1 … + Skapar lokal synkroniseringsmapp %1 ... - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - Den lokala synkroniseringsmappen % 1 finns redan, aktiverar den för synkronisering.<br/><br/> + Error: %1 + Fel: %1 - - Creating local sync folder %1 … - Skapar lokal synkroniseringsmapp %1 ... + Failed to connect to %1 at %2:<br/>%3 + Misslyckades att ansluta till %1 vid %2:<br/>%3 - - OK - OK + Folder rename failed + Omdöpning av mapp misslyckades - - failed. - misslyckades. + Invalid URL + Ogiltig webbadress - - Could not create local folder %1 - Kunde inte skapa lokal mapp %1 + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + Den lokala synkroniseringsmappen % 1 finns redan, aktiverar den för synkronisering.<br/><br/> - No remote folder specified! Ingen fjärrmapp specificerad! - - Error: %1 - Fel: %1 - - - - creating folder on Nextcloud: %1 - skapar mapp på Nextcloud: %1 + OK + OK - Remote folder %1 created successfully. Fjärrmapp %1 har skapats. - - The remote folder %1 already exists. Connecting it for syncing. - Fjärrmappen %1 finns redan. Ansluter den för synkronisering. - - - - - The folder creation resulted in HTTP error code %1 - Skapande av mapp resulterade i HTTP felkod %1 + Remote folder %1 creation failed with error <tt>%2</tt>. + Misslyckades skapa fjärrmapp %1 med fel <tt>%2</tt>. - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - Det gick inte att skapa mappen efter som du inte har tillräckliga rättigheter!<br/>Vänligen återvänd och kontrollera dina rättigheter. + Successfully connected to %1! + Ansluten till %1! - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - <p><font color="red">Misslyckades skapa fjärrmappen, troligen p.g.a felaktiga inloggningsuppgifter.</font><br/>Kontrollera dina inloggningsuppgifter.</p> + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + Den autentiserade begäran till servern omdirigerades till "%1". URL:n är felaktig, servern är felkonfigurerad. - - - Remote folder %1 creation failed with error <tt>%2</tt>. - Misslyckades skapa fjärrmapp %1 med fel <tt>%2</tt>. + The folder creation resulted in HTTP error code %1 + Skapande av mapp resulterade i HTTP felkod %1 - - A sync connection from %1 to remote directory %2 was set up. - En synkroniseringskoppling från %1 till extern mapp %2 har skapats. + The remote folder %1 already exists. Connecting it for syncing. + Fjärrmappen %1 finns redan. Ansluter den för synkronisering. - - Successfully connected to %1! - Ansluten till %1! + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + Det gick inte att skapa mappen efter som du inte har tillräckliga rättigheter!<br/>Vänligen återvänd och kontrollera dina rättigheter. - - Connection to %1 could not be established. Please check again. - Anslutningen till %1 kunde inte etableras. Vänligen kontrollera och försök igen. + There was an invalid response to an authenticated WebDAV request + Det var ett ogiltigt svar på en verifierad WebDAV-begäran - - Folder rename failed - Omdöpning av mapp misslyckades + Timeout while trying to connect to %1 at %2. + Försök att ansluta till %1 på %2 tog för lång tid. - - Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - Kan inte ta bort och göra en säkerhetskopia av mappen på grund av att mappen eller en fil i den används av ett annat program. Stäng mappen eller filen och försök igen eller avbryt installationen. + Trying to connect to %1 at %2 … + Försöker ansluta till %1 på %2 ... - - <font color="green"><b>File Provider-based account %1 successfully created!</b></font> - <font color="green"><b>Filleverantörsbaserat konto %1 har skapats!</b></font> + creating folder on Nextcloud: %1 + skapar mapp på Nextcloud: %1 - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - <font color="green"><b>Lokal synkroniseringsmapp %1 skapad!</b></font> + failed. + misslyckades. - + OCC::OwncloudWizard - Add %1 account Lägg till %1 konto - - Skip folders configuration - Hoppa över konfiguration av mappar + Back + Next button text in new account wizard + Tillbaka - Cancel Avbryt - - Proxy Settings - Proxy Settings button text in new account wizard - Proxyinställningar + Enable experimental feature? + Aktivera experimentell funktion? + + + Enable experimental placeholder mode + Aktivera experimentellt platshållarläge - Next Next button text in new account wizard Nästa - - Back - Next button text in new account wizard - Tillbaka + Proxy Settings + Proxy Settings button text in new account wizard + Proxyinställningar - - Enable experimental feature? - Aktivera experimentell funktion? + Skip folders configuration + Hoppa över konfiguration av mappar - + Stay safe + Var försiktig + + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -4152,26 +3528,14 @@ Om du byter till det här läget avbryts all pågående synkronisering. Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda det, rapportera eventuella problem som dyker upp. - - - Enable experimental placeholder mode - Aktivera experimentellt platshållarläge - - - - Stay safe - Var försiktig - - + OCC::PasswordInputDialog - Password for share required Lösenord krävs för delning - Please enter a password for your share: Ange ett lösenord för din delning: @@ -4179,7 +3543,6 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PollJob - Invalid JSON reply from the poll URL Ogiltigt JSON-svar från hämtningswebbadressen @@ -4187,344 +3550,259 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ProcessDirectoryJob - - Symbolic links are not supported in syncing. - Symboliska länkar kan ej synkroniseras. + Cannot be renamed or uploaded. + Kan inte bytas namn på eller laddas upp. - - File is locked by another application. - Filen är låst av ett annat program. + Cannot modify encrypted item because the selected certificate is not valid. + Det går inte att ändra det krypterade objektet eftersom det valda certifikatet är ogiltigt. - - File is listed on the ignore list. - Filen är listad i undantagslistan. + Cannot sync due to invalid modification time + Det går inte att synkronisera på grund av ogiltig ändringstid - - File names ending with a period are not supported on this file system. - Filnamn som slutar med en punkt stöds inte på detta filsystem. + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Skiftlägeskonflikt: Serverfilen har laddats ner och döpts om för att undvika konflikt. - - Folder names containing the character "%1" are not supported on this file system. - %1: the invalid character - Mappnamn som innehåller tecknet "%1" stöds inte i detta filsystem. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Konflikt: Serverversion hämtad, lokal kopia omdöpt och inte uppladdad. - - File names containing the character "%1" are not supported on this file system. - %1: the invalid character - Filnamn som innehåller tecknet "%1" stöds inte i detta filsystem. + Could not upload file, because it is open in "%1". + Kunde inte ladda upp filen eftersom den är öppen i "%1". - - Folder name contains at least one invalid character - Mappnamnet innehåller minst ett ogiltigt tecken + Error while deleting file record %1 from the database + Fel vid borttagning av filpost %1 från databasen - - File name contains at least one invalid character - Filnamnet innehåller minst ett ogiltigt tecken + Error while reading the database + Fel uppstod när databasen skulle läsas - - - Folder name is a reserved name on this file system. - Mappnamnet är ett reserverat namn i detta filsystem. + + File has extension reserved for virtual files. + Filens ändelse är reserverad för virtuella filer. - - File name is a reserved name on this file system. - Filnamnet är ett reserverat namn i detta filsystem. + File is listed on the ignore list. + Filen är listad i undantagslistan. - - Filename contains trailing spaces. - Filnamnet innehåller inledande blanksteg. + File is not accessible on the server. + server error + Filen är inte åtkomlig på servern. - - - - - Cannot be renamed or uploaded. - Kan inte bytas namn på eller laddas upp. + File name contains at least one invalid character + Filnamnet innehåller minst ett ogiltigt tecken - - Filename contains leading spaces. - Filnamnet innehåller inledande blanksteg. + File name is a reserved name on this file system. + Filnamnet är ett reserverat namn i detta filsystem. - - Filename contains leading and trailing spaces. - Filnamnet innehåller blanksteg i början och slutet. + File names containing the character "%1" are not supported on this file system. + %1: the invalid character + Filnamn som innehåller tecknet "%1" stöds inte i detta filsystem. - - Filename is too long. - Filnamnet är för långt. + File names ending with a period are not supported on this file system. + Filnamn som slutar med en punkt stöds inte på detta filsystem. - File/Folder is ignored because it's hidden. Filen/mappen ignoreras eftersom den är dold. - - Stat failed. - Status misslyckades. + Filename contains leading and trailing spaces. + Filnamnet innehåller blanksteg i början och slutet. - - Conflict: Server version downloaded, local copy renamed and not uploaded. - Konflikt: Serverversion hämtad, lokal kopia omdöpt och inte uppladdad. + Filename contains leading spaces. + Filnamnet innehåller inledande blanksteg. - - Case Clash Conflict: Server file downloaded and renamed to avoid clash. - Skiftlägeskonflikt: Serverfilen har laddats ner och döpts om för att undvika konflikt. + Filename contains trailing spaces. + Filnamnet innehåller inledande blanksteg. - - The filename cannot be encoded on your file system. - Filnamnet kan inte avkodas på ditt filsystem. + Filename is too long. + Filnamnet är för långt. - - The filename is blacklisted on the server. - Filnamnet är svartlistat på servern. + Folder is not accessible on the server. + server error + Mappen är inte åtkomlig på servern. - - Reason: the entire filename is forbidden. - Orsak: hela filnamnet är förbjudet. + Folder name contains at least one invalid character + Mappnamnet innehåller minst ett ogiltigt tecken - - Reason: the filename has a forbidden base name (filename start). - Orsak: filnamnet har ett förbjudet basnamn (filnamnsstart). + Folder name is a reserved name on this file system. + Mappnamnet är ett reserverat namn i detta filsystem. - - Reason: the file has a forbidden extension (.%1). - Orsak: filen har ett förbjudet tillägg (.%1). + Folder names containing the character "%1" are not supported on this file system. + %1: the invalid character + Mappnamn som innehåller tecknet "%1" stöds inte i detta filsystem. - - Reason: the filename contains a forbidden character (%1). - Orsak: filnamnet innehåller ett förbjudet tecken (%1). - - - - File has extension reserved for virtual files. - Filens ändelse är reserverad för virtuella filer. + Ignored because of the "choose what to sync" blacklist + Ignorerad eftersom den är svartlistad i "välj vad som ska synkroniseras" - - Folder is not accessible on the server. - server error - Mappen är inte åtkomlig på servern. + Moved to invalid target, restoring + Flyttade till ogiltigt mål, återställer - - File is not accessible on the server. - server error - Filen är inte åtkomlig på servern. + Not allowed because you don't have permission to add files in that folder + Otillåtet eftersom du inte har rättigheter att lägga till filer i den mappen. - - Cannot sync due to invalid modification time - Det går inte att synkronisera på grund av ogiltig ändringstid + Not allowed because you don't have permission to add subfolders to that folder + Otillåtet eftersom du inte har rättigheter att lägga till undermappar i den mappen. - - Upload of %1 exceeds %2 of space left in personal files. - Uppladdningen av %1 överskrider %2 av återstående utrymme i personliga filer. + Not allowed to remove, restoring + Borttagning tillåts ej, återställer - - Upload of %1 exceeds %2 of space left in folder %3. - Uppladdningen av %1 överskrider %2 av återstående utrymme i mappen %3. + Not allowed to upload this file because it is read-only on the server, restoring + Inte tillåtet att ladda upp denna fil eftersom den är skrivskyddad på servern, återställer - - Could not upload file, because it is open in "%1". - Kunde inte ladda upp filen eftersom den är öppen i "%1". + Reason: the entire filename is forbidden. + Orsak: hela filnamnet är förbjudet. - - Error while deleting file record %1 from the database - Fel vid borttagning av filpost %1 från databasen + Reason: the file has a forbidden extension (.%1). + Orsak: filen har ett förbjudet tillägg (.%1). - - - Moved to invalid target, restoring - Flyttade till ogiltigt mål, återställer + Reason: the filename contains a forbidden character (%1). + Orsak: filnamnet innehåller ett förbjudet tecken (%1). - - Cannot modify encrypted item because the selected certificate is not valid. - Det går inte att ändra det krypterade objektet eftersom det valda certifikatet är ogiltigt. + Reason: the filename has a forbidden base name (filename start). + Orsak: filnamnet har ett förbjudet basnamn (filnamnsstart). - - Ignored because of the "choose what to sync" blacklist - Ignorerad eftersom den är svartlistad i "välj vad som ska synkroniseras" + Stat failed. + Status misslyckades. - - Not allowed because you don't have permission to add subfolders to that folder - Otillåtet eftersom du inte har rättigheter att lägga till undermappar i den mappen. + Symbolic links are not supported in syncing. + Symboliska länkar kan ej synkroniseras. - - Not allowed because you don't have permission to add files in that folder - Otillåtet eftersom du inte har rättigheter att lägga till filer i den mappen. + The filename cannot be encoded on your file system. + Filnamnet kan inte avkodas på ditt filsystem. - - Not allowed to upload this file because it is read-only on the server, restoring - Inte tillåtet att ladda upp denna fil eftersom den är skrivskyddad på servern, återställer + The filename is blacklisted on the server. + Filnamnet är svartlistat på servern. - - Not allowed to remove, restoring - Borttagning tillåts ej, återställer + Upload of %1 exceeds %2 of space left in folder %3. + Uppladdningen av %1 överskrider %2 av återstående utrymme i mappen %3. - - Error while reading the database - Fel uppstod när databasen skulle läsas + Upload of %1 exceeds %2 of space left in personal files. + Uppladdningen av %1 överskrider %2 av återstående utrymme i personliga filer. - + OCC::PropagateDirectory - Could not delete file %1 from local DB Kunde inte ta bort filen %1 från lokal DB - Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid - - - - - - - The folder %1 cannot be made read-only: %2 - Mappen %1 kan inte göras skrivskyddad: %2 - - - - - unknown exception - okänt fel - - - Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 - File is currently in use Filen används - + + The folder %1 cannot be made read-only: %2 + Mappen %1 kan inte göras skrivskyddad: %2 + + + unknown exception + okänt fel + + OCC::PropagateDownloadFile - + Could not delete file record %1 from local DB + Kunde inte ta bort filposten %1 från lokal DB + + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB - + Error updating metadata: %1 + Ett fel uppstod när metadata skulle uppdateras: %1 + + File %1 cannot be downloaded because encryption information is missing. Fil %1 kan inte hämtas eftersom krypteringsinformation fattas. - - - Could not delete file record %1 from local DB - Kunde inte ta bort filposten %1 från lokal DB + File %1 downloaded but it resulted in a local file name clash! + Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! - - The download would reduce free local disk space below the limit - Hämtningen skulle reducera det fria diskutrymmet under gränsen + File %1 has invalid modified time reported by server. Do not save it. + Filen %1 har en ogiltig ändringstid rapporterad av servern. Spara den inte. - - Free space on disk is less than %1 - Ledigt utrymme är under %1 + File has changed since discovery + Filen har ändrats sedan upptäckten - - + File was deleted from server Filen har tagits bort från servern - - The file could not be downloaded completely. - Filen kunde inte hämtas fullständigt. - - - - The downloaded file is empty, but the server said it should have been %1. - Den nedladdade filen är tom, men servern meddelade att den borde ha varit %1. - - - - - File %1 has invalid modified time reported by server. Do not save it. - Filen %1 har en ogiltig ändringstid rapporterad av servern. Spara den inte. + Free space on disk is less than %1 + Ledigt utrymme är under %1 - - File %1 downloaded but it resulted in a local file name clash! - Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! + The download would reduce free local disk space below the limit + Hämtningen skulle reducera det fria diskutrymmet under gränsen - - Error updating metadata: %1 - Ett fel uppstod när metadata skulle uppdateras: %1 + The downloaded file is empty, but the server said it should have been %1. + Den nedladdade filen är tom, men servern meddelade att den borde ha varit %1. - The file %1 is currently in use Filen %1 används för närvarande - - - File has changed since discovery - Filen har ändrats sedan upptäckten + The file could not be downloaded completely. + Filen kunde inte hämtas fullständigt. - + OCC::PropagateItemJob - - %1. Restoration failed: %2 - %1 is the generic error string, the file restoration error (%2) will be appended here - %1. Återställning misslyckades: %2 - - - ; Restoration Failed: %1 ; Återställning misslyckades: %1 - A file or folder was removed from a read only share, but restoring failed: %1 En fil eller mapp togs bort från en skrivskyddad delning, men återställning misslyckades: %1 @@ -4532,130 +3810,102 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateLocalMkdir - - could not delete file %1, error: %2 - kunde inte ta bort fil %1, fel: %2 + Could not create folder %1 + Kunde inte skapa mappen %1 + + + Error updating metadata: %1 + Ett fel uppstod när metadata skulle uppdateras: %1 - Folder %1 cannot be created because of a local file or folder name clash! Mapp %1 kan inte skapas på grund av en konflikt med ett lokalt fil- eller mappnamn! - - Could not create folder %1 - Kunde inte skapa mappen %1 + The file %1 is currently in use + Filen %1 används för närvarande - - - - + The folder %1 cannot be made read-only: %2 Mappen %1 kan inte göras skrivskyddad: %2 - - unknown exception - okänt fel - - - - Error updating metadata: %1 - Ett fel uppstod när metadata skulle uppdateras: %1 + could not delete file %1, error: %2 + kunde inte ta bort fil %1, fel: %2 - - The file %1 is currently in use - Filen %1 används för närvarande + unknown exception + okänt fel - + OCC::PropagateLocalRemove - + Could not delete file record %1 from local DB + Kunde inte ta bort filposten %1 från lokal DB + + Could not remove %1 because of a local file name clash Det gick inte att ta bort %1 på grund av ett lokalt filnamn - - - Temporary error when removing local item removed from server. Tillfälligt fel vid borttagning av lokalt objekt som tagits bort från servern. - - - Could not delete file record %1 from local DB - Kunde inte ta bort filposten %1 från lokal DB - - + OCC::PropagateLocalRename - - Folder %1 cannot be renamed because of a local file or folder name clash! - Mapp %1 kan inte byta namn på grund av en konflikt med ett lokalt fil- eller mappnamn! - - - - File %1 downloaded but it resulted in a local file name clash! - Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! + Could not delete file record %1 from local DB + Kunde inte ta bort filposten %1 från lokal DB - - - + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB - - Error setting pin state Kunde inte sätta pin-status - Error updating metadata: %1 Fel vid uppdatering av metadata: %1 - - The file %1 is currently in use - Filen %1 används för närvarande - - - Failed to propagate directory rename in hierarchy Kunde inte propagera namnbyte på katalogen i hierarkin - Failed to rename file Kunde inte döpa om filen - - Could not delete file record %1 from local DB - Kunde inte ta bort filposten %1 från lokal DB + File %1 downloaded but it resulted in a local file name clash! + Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! - - - OCC::PropagateRemoteDelete - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - Felaktig HTTP-kod i svaret från servern. '204' förväntades, men "%1 %2" mottogs. + Folder %1 cannot be renamed because of a local file or folder name clash! + Mapp %1 kan inte byta namn på grund av en konflikt med ett lokalt fil- eller mappnamn! - + The file %1 is currently in use + Filen %1 används för närvarande + + + + OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB - + + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". + Felaktig HTTP-kod i svaret från servern. '204' förväntades, men "%1 %2" mottogs. + + OCC::PropagateRemoteDeleteEncryptedRootFolder - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. 204 förväntades, men "%1 %2" mottogs. @@ -4663,203 +3913,152 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateRemoteMkdir - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. + Error writing metadata to the database: %1 + Det gick inte att skriva metadata till databasen: %1 - Failed to encrypt a folder %1 Kunde inte kryptera en mapp %1 - - Error writing metadata to the database: %1 - Det gick inte att skriva metadata till databasen: %1 - - - The file %1 is currently in use Filen %1 används för närvarande - + + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". + Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. + + OCC::PropagateRemoteMove - + Could not delete file record %1 from local DB + Kunde inte ta bort filposten %1 från lokal DB + + + Could not get file %1 from local DB + Kunde inte hämta filen %1 från lokal DB + + Could not rename %1 to %2, error: %3 Kunde inte byta namn på %1 till %2, fel: %3 - - + Error setting pin state + Kunde inte sätta pin-status + + Error updating metadata: %1 Fel vid uppdatering av metadata: %1 - - + Error writing metadata to the database + Fel vid skrivning av metadata till databasen + + The file %1 is currently in use Filen %1 används för närvarande - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. + + + OCC::PropagateUploadFileCommon - - Could not get file %1 from local DB - Kunde inte hämta filen %1 från lokal DB - - - - Could not delete file record %1 from local DB - Kunde inte ta bort filposten %1 från lokal DB + Error updating metadata: %1 + Ett fel uppstod när metadata skulle uppdateras: %1 - - Error setting pin state - Kunde inte sätta pin-status + Failed to unlock encrypted folder. + Kunde inte låsa upp krypterad mapp. - - Error writing metadata to the database - Fel vid skrivning av metadata till databasen + Failed to upload encrypted file. + Kunde inte ladda upp krypterad fil. - - - OCC::PropagateUploadFileCommon - File %1 cannot be uploaded because another file with the same name, differing only in case, exists Fil %1 kan inte laddas upp eftersom en annan fil med samma namn, där endast stora/små bokstäver skiljer sig, finns - - - File %1 has invalid modification time. Do not upload to the server. Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. - - Local file changed during syncing. It will be resumed. - Lokal fil ändrades under synkronisering. Den kommer återupptas. + File Removed (start upload) %1 + Filen borttagen (starta uppladdning) %1 - - + Local file changed during sync. Lokal fil ändrades under synkronisering. - - Failed to unlock encrypted folder. - Kunde inte låsa upp krypterad mapp. - - - - Unable to upload an item with invalid characters - Det gick inte att ladda upp ett objekt med ogiltiga tecken - - - - Error updating metadata: %1 - Ett fel uppstod när metadata skulle uppdateras: %1 + Local file changed during syncing. It will be resumed. + Lokal fil ändrades under synkronisering. Den kommer återupptas. - The file %1 is currently in use Filen %1 används för närvarande - - - Upload of %1 exceeds the quota for the folder - Uppladdningen av %1 överstiger kvoten för mappen - - - - Failed to upload encrypted file. - Kunde inte ladda upp krypterad fil. + Unable to upload an item with invalid characters + Det gick inte att ladda upp ett objekt med ogiltiga tecken - - File Removed (start upload) %1 - Filen borttagen (starta uppladdning) %1 + Upload of %1 exceeds the quota for the folder + Uppladdningen av %1 överstiger kvoten för mappen - + OCC::PropagateUploadFileNG - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Filen är låst och kan inte synkroniseras + File is not accessible on the server. + server error + Filen är inte åtkomlig på servern. - - - The local file was removed during sync. - Den lokala filen togs bort under synkronisering. + + Folder is not accessible on the server. + server error + Mappen är inte åtkomlig på servern. - Local file changed during sync. Lokal fil ändrades under synkronisering. - - Poll URL missing - Poll-URL saknas - - - - Unexpected return code from server (%1) - Oväntad svarskod från servern (%1) - - - Missing File ID from server Saknar Fil-ID från servern - - Folder is not accessible on the server. - server error - Mappen är inte åtkomlig på servern. + Poll URL missing + Poll-URL saknas - - File is not accessible on the server. - server error - Filen är inte åtkomlig på servern. + The local file was removed during sync. + Den lokala filen togs bort under synkronisering. - + + Unexpected return code from server (%1) + Oväntad svarskod från servern (%1) + + OCC::PropagateUploadFileV1 - - File is locked preventing syncing it - Generic warning message when a locked file cannot be synced - Filen är låst och kan inte synkroniseras + Local file changed during sync. + Lokal fil ändrades under synkronisering. - Poll URL missing Hämtningswebbadress saknas - The local file was removed during sync. Den lokala filen togs bort under synkronisering. - - Local file changed during sync. - Lokal fil ändrades under synkronisering. - - - The server did not acknowledge the last chunk. (No e-tag was present) Servern bekräftade inte senaste leveransen. (Ingen e-tagg fanns) @@ -4867,35 +4066,29 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ProxyAuthDialog - + Password: + Lösenord: + + Proxy authentication required Proxy-autentisering krävs - - Username: - Användarnamn: - - - Proxy: Proxy: - The proxy server needs a username and password. Proxy-servern behöver ett användarnamn och lösenord. - - Password: - Lösenord: + Username: + Användarnamn: - + OCC::SelectiveSyncDialog - Choose What to Sync Välj vad som ska synkroniseras @@ -4903,78 +4096,103 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::SelectiveSyncWidget - - Loading … - Läser in ... + An error occurred while loading the list of sub folders. + Ett fel uppstod när listan för submappar lästes in. - - + Deselect remote folders you do not wish to synchronize. Avmarkera mappar du inte vill synkronisera. - - Name - Namn + Loading … + Läser in ... - - Size - Storlek + Name + Namn - - No subfolders currently on the server. Inga undermappar på servern för närvarande. - - An error occurred while loading the list of sub folders. - Ett fel uppstod när listan för submappar lästes in. + Size + Storlek - + OCC::ServerNotificationHandler - + Dismiss + Avfärda + + Reply Svara + + + OCC::sesSnackBar + + Error + Fel + - - Dismiss - Avfärda + Success + - + + Warning + Varning + + OCC::SettingsDialog - - Settings - Inställningar - - - %1 Settings This name refers to the application name e.g Nextcloud %1 inställningar - + Account + Konto + + General Allmänt - - Account - Konto + New account + - + + Settings + Inställningar + + + + OCC::ShareeModel + + %1 (%2) + sharee (shareWithAdditionalInfo) + %1 (%2) + + + Global search results + Globala sökresultat + + + No results found + Inga resultat funna + + + Search globally + Sök globalt + + OCC::ShareManager - Error Fel @@ -4982,126 +4200,61 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ShareModel - %1 days %1 dagar - - %1 day - %1 dag - - - 1 day 1 dag - - Today - Idag - - - - Secure file drop link - Säker filinkast-länk + Could not find local folder for %1 + Kunde inte hitta lokal mapp för %1 - - - Share link - Dela länk + + Internal link + Intern länk - Link share Länkdelning - - Internal link - Intern länk - - - Secure file drop Säkert filinkast - - Could not find local folder for %1 - Kunde inte hitta lokal mapp för %1 - - - - OCC::ShareeModel - - - - Search globally - Sök globalt - - - - No results found - Inga resultat funna + Secure file drop link + Säker filinkast-länk - - Global search results - Globala sökresultat + Share link + Dela länk - - %1 (%2) - sharee (shareWithAdditionalInfo) - %1 (%2) + Today + Idag - + OCC::SocketApi - - Context menu share - Delningsmeny - - - - I shared something with you - Jag delade något med dig + Activity + Aktivitet - - - Share options - Delningsalternativ + Context menu share + Delningsmeny - - Send private link by email … - Skicka privat länk med e-post ... + Copy internal link + Kopiera intern länk - Copy private link to clipboard Kopiera privat länk till urklipp - - Failed to encrypt folder at "%1" - Det gick inte att kryptera mappen "%1" - - - - The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. - Kontot %1 har inte ände-till-ände-kryptering konfigurerad. Konfigurera detta i dina kontoinställningar för att aktivera mappkryptering. - - - - Failed to encrypt folder - Kunde inte kryptera mapp - - - Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -5110,990 +4263,787 @@ Server replied with error: %2 Servern svarade med fel: %2 - - Folder encrypted successfully - Mappen har krypterats + Delete + Ta bort - - The following folder was encrypted successfully: "%1" - Följande mapp krypterades: "%1" + Delete local changes + Radera lokala ändringar - - Select new location … - Välj ny plats … + Encrypt + Kryptera - - - - File actions - Filåtgärder + + Expires in %1 minutes + remaining time before lock expires + + Går ut om %1 minut + Går ut om %1 minuter + - - - Activity - Aktivitet + Failed to encrypt folder + Kunde inte kryptera mapp - - Leave this share - Lämna denna delning + Failed to encrypt folder at "%1" + Det gick inte att kryptera mappen "%1" - - Resharing this file is not allowed - Vidaredelning av denna fil är inte tillåtet + Folder encrypted successfully + Mappen har krypterats - - Resharing this folder is not allowed - Vidaredelning av denna mapp är inte tillåtet + I shared something with you + Jag delade något med dig - - Encrypt - Kryptera + Leave this share + Lämna denna delning - Lock file Lås fil - - Unlock file - Lås upp fil - - - Locked by %1 Låst av %1 - - - Expires in %1 minutes - remaining time before lock expires - Går ut om %1 minutGår ut om %1 minuter - - - - Resolve conflict … - Lös konflikt … - - Move and rename … Flytta och byt namn … - + Move and upload … + Flytta och ladda upp … + + Move, rename and upload … Flytta, byt namn och ladda upp … - - Delete local changes - Radera lokala ändringar + Open in browser + Öppna i webbläsare + + + Resharing this file is not allowed + Vidaredelning av denna fil är inte tillåtet - - Move and upload … - Flytta och ladda upp … + Resharing this folder is not allowed + Vidaredelning av denna mapp är inte tillåtet - - Delete - Ta bort + Resolve conflict … + Lös konflikt … - - Copy internal link - Kopiera intern länk + Select new location … + Välj ny plats … - - - Open in browser - Öppna i webbläsare + Send private link by email … + Skicka privat länk med e-post ... - - - OCC::SslButton - - <h3>Certificate Details</h3> - <h3>Certifikatdetaljer</h3> + Share options + Delningsalternativ - - Common Name (CN): - Common Name (CN): + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + Kontot %1 har inte ände-till-ände-kryptering konfigurerad. Konfigurera detta i dina kontoinställningar för att aktivera mappkryptering. - - Subject Alternative Names: - Alternativnamn: + The following folder was encrypted successfully: "%1" + Följande mapp krypterades: "%1" - - Organization (O): - Organisation (O): + Unlock file + Lås upp fil + + + OCC::SslButton - - Organizational Unit (OU): - Organisationsenhet (OU): + %1 + %1 - - State/Province: - Stat/Provins: + %1 (self-signed) + %1 (självsignerat certifikat) - - Country: - Land: + <h3>Certificate Details</h3> + <h3>Certifikatdetaljer</h3> - - Serial: - Serienummer: + <h3>Fingerprints</h3> + <h3>Fingeravtryck</h3> - <h3>Issuer</h3> <h3>Utfärdare</h3> - - Issuer: - Utfärdare: + <p><b>Note:</b> This certificate was manually approved</p> + <p><b>Notera:</b> Detta certifikat var manuellt godkänt.</p> - - Issued on: - Utfärdat den: + Certificate information: + Certifikatinformation: + + + Common Name (CN): + Common Name (CN): + + + Country: + Land: - Expires on: Upphör den: - - <h3>Fingerprints</h3> - <h3>Fingeravtryck</h3> + Issued on: + Utfärdat den: - - SHA-256: - SHA-256: + Issuer: + Utfärdare: - - SHA-1: - SHA-1: + No support for SSL session tickets/identifiers + Inget stöd för biljetter/identifikationer för SSL sessioner - - <p><b>Note:</b> This certificate was manually approved</p> - <p><b>Notera:</b> Detta certifikat var manuellt godkänt.</p> + Organization (O): + Organisation (O): - - %1 (self-signed) - %1 (självsignerat certifikat) + Organizational Unit (OU): + Organisationsenhet (OU): - - %1 - %1 + SHA-1: + SHA-1: - - This connection is encrypted using %1 bit %2. - - Denna anslutningen är krypterad med %1 bit %2 - + SHA-256: + SHA-256: + + + Serial: + Serienummer: - Server version: %1 Serverversion: %1 - - No support for SSL session tickets/identifiers - Inget stöd för biljetter/identifikationer för SSL sessioner + State/Province: + Stat/Provins: - - Certificate information: - Certifikatinformation: + Subject Alternative Names: + Alternativnamn: - The connection is not secure Anslutningen är inte säker + + This connection is NOT secure as it is not encrypted. + + - - This connection is NOT secure as it is not encrypted. - - Denna anslutningen är INTE säker eftersom den inte är krypterad. - + This connection is encrypted using %1 bit %2. + - + OCC::SslErrorDialog - - Trust this certificate anyway - Lita på detta certifikat i alla fall + &lt;not specified&gt; + &lt;inte angivet&gt; - - Untrusted Certificate - Otillförlitligt certifikat + Additional errors: + Ytterligare fel: - Cannot connect securely to <i>%1</i>: Kan inte ansluta säkert till <i>%1</i>: - - Additional errors: - Ytterligare fel: - - - - with Certificate %1 - med Certifikat %1 + Country: %1 + Land: %1 - - - - &lt;not specified&gt; - &lt;inte angivet&gt; + Effective Date: %1 + Giltigt datum: %1 - - - Organization: %1 - Organisation: %1 + Expiration Date: %1 + Utgångsdatum: %1 - - - Unit: %1 - Enhet: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Fingeravtryck (SHA-256): <tt>%1</tt> - - - Country: %1 - Land: %1 + Fingerprint (SHA-512): <tt>%1</tt> + Fingeravtryck (SHA-512): <tt>%1</tt> - Fingerprint (SHA1): <tt>%1</tt> Fingeravtryck (SHA1): <tt>%1</tt> - - Fingerprint (SHA-256): <tt>%1</tt> - Fingeravtryck (SHA-256): <tt>%1</tt> + Issuer: %1 + Utfärdare: %1 + + + Organization: %1 + Organisation: %1 - - Fingerprint (SHA-512): <tt>%1</tt> - Fingeravtryck (SHA-512): <tt>%1</tt> + Trust this certificate anyway + Lita på detta certifikat i alla fall - - Effective Date: %1 - Giltigt datum: %1 + Unit: %1 + Enhet: %1 - - Expiration Date: %1 - Utgångsdatum: %1 + Untrusted Certificate + Otillförlitligt certifikat - - Issuer: %1 - Utfärdare: %1 + with Certificate %1 + med Certifikat %1 - + OCC::SyncEngine - %1 (skipped due to earlier error, trying again in %2) %1 (skippad på grund av ett tidigare fel, försök igen om %2) - - Only %1 are available, need at least %2 to start - Placeholders are postfixed with file sizes using Utility::octetsToString() - Endast %1 tillgängligt, behöver minst %2 för att starta - - - - Unable to open or create the local sync database. Make sure you have write access in the sync folder. - Kunde inte öppna eller återskapa den lokala synkroniseringsdatabasen. Säkerställ att du har skrivrättigheter till synkroniseringsmappen. - - - - Disk space is low: Downloads that would reduce free space below %1 were skipped. - Diskutrymmet är lågt: Hämtningar som skulle reducera det fria utrymmet under %1 hoppas över. + Cannot open the sync journal + Det går inte att öppna synkroniseringsjournalen - - - There is insufficient space available on the server for some uploads. - Det finns inte tillräckligt med utrymme på servern för vissa uppladdningar. + + Could not set file record to local DB: %1 + Kunde inte ställa in filposten till lokal DB: %1 - - Unresolved conflict. - Olöst konflikt. + Could not update file metadata: %1 + Kunde inte uppdatera filens metadata: %1 - Could not update file: %1 Kunde inte uppdatera filen: %1 - Could not update virtual file metadata: %1 Kunde inte uppdatera virtuell filmetadata: %1 - - Could not update file metadata: %1 - Kunde inte uppdatera filens metadata: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Diskutrymmet är lågt: Hämtningar som skulle reducera det fria utrymmet under %1 hoppas över. - - Could not set file record to local DB: %1 - Kunde inte ställa in filposten till lokal DB: %1 + Only %1 are available, need at least %2 to start + Placeholders are postfixed with file sizes using Utility::octetsToString() + Endast %1 tillgängligt, behöver minst %2 för att starta - - Using virtual files with suffix, but suffix is not set - Använder virtuella filer med suffix, men suffix är inte inställt + There is insufficient space available on the server for some uploads. + Det finns inte tillräckligt med utrymme på servern för vissa uppladdningar. - - Unable to read the blacklist from the local database - Kunde inte läsa svartlistan från den lokala databasen + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Kunde inte öppna eller återskapa den lokala synkroniseringsdatabasen. Säkerställ att du har skrivrättigheter till synkroniseringsmappen. - Unable to read from the sync journal. Det går inte att läsa från synkroniseringsjournalen. - - Cannot open the sync journal - Det går inte att öppna synkroniseringsjournalen + Unable to read the blacklist from the local database + Kunde inte läsa svartlistan från den lokala databasen - - - OCC::SyncStatusSummary - - - - Offline - Offline + Unresolved conflict. + Olöst konflikt. - - You need to accept the terms of service - Du behöver acceptera användarvillkoren + Using virtual files with suffix, but suffix is not set + Använder virtuella filer med suffix, men suffix är inte inställt + + + OCC::SyncStatusSummary - - Reauthorization required - Ny autentisering krävs + %1 of %2 + %1 av %2 - - Please grant access to your sync folders - Ge åtkomst till dina synkroniseringsmappar + %1 of %2 · %3 left + %1 av %2 · %3 kvar - - - All synced! Färdigsynkroniserat! - - Some files couldn't be synced! - Vissa filer kunde inte synkroniseras! + Checking folder changes + Kontrollerar mappändringar + + + Offline + Offline - See below for errors Se nedan för felmeddelanden - - Checking folder changes - Kontrollerar mappändringar + See below for warnings + Se nedan för felmeddelanden - - Syncing changes - Synkroniserar ändringar + Some files could not be synced! + Vissa filer kunde inte synkroniseras! - - Sync paused - Synkronisering pausad - - - - Some files could not be synced! + Some files couldn't be synced! Vissa filer kunde inte synkroniseras! - - See below for warnings - Se nedan för felmeddelanden + Sync paused + Synkronisering pausad - Syncing Synkroniserar - - %1 of %2 · %3 left - %1 av %2 · %3 kvar - - - - %1 of %2 - %1 av %2 + Syncing changes + Synkroniserar ändringar - Syncing file %1 of %2 Synkroniserar fil %1 av %2 - - - No synchronisation configured - Ingen synkronisering konfigurerad + + You need to accept the terms of service + Du behöver acceptera användarvillkoren - + OCC::Systray - + Add account + Lägg till konto + + Download Ladda ner - - Add account - Lägg till konto + Exit %1 + Avsluta %1 + + + Help + Hjälp - Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Öppna %1 Desktop - - Pause sync Pausa synkronisering - - - Resume sync - Återuppta synkronisering - - - - Settings - Inställningar - - - - Help - Hjälp - - - - Exit %1 - Avsluta %1 - - - Pause sync for all Pausa synkronisering för alla - + Resume sync + Återuppta synkronisering + + Resume sync for all Återuppta synkronisering för alla - + + Settings + Inställningar + + OCC::TermsOfServiceCheckWidget - - Waiting for terms to be accepted - Väntar på att användarvillkoren ska accepteras - - - - Polling - Periodisk kontroll + Copy Link + Kopiera länk - - + Link copied to clipboard. Länken kopierad till urklipp. - Open Browser Öppna webbläsare - - Copy Link - Kopiera länk + Polling + Periodisk kontroll - - - OCC::Theme - - %1 Desktop Client Version %2 (%3 running on %4) - %1 is application name. %2 is the human version string. %3 is the operating system name. %4 is the platform name (wayland, x11, …) - %1 Skrivbordsversion %2 (%3 körs på %4) + Waiting for terms to be accepted + Väntar på att användarvillkoren ska accepteras + + + OCC::Theme - %1 Desktop Client Version %2 (%3) %1 is application name. %2 is the human version string. %3 is the operating system name. %1 Version av skrivbordsklient %2 (%3) - <p><small>Using virtual files plugin: %1</small></p> <p><small>Använder plugin för virtuella filer: %1</small></p> - <p>This release was supplied by %1.</p> <p>Denna release levererades av %1.</p> - + + ExpandMemory-Link + + + + ExpandMemory-Link_STRATO + + + + Help-Link + + + + Help-Link_STRATO + + + + LegalNotice-Link + + + + LegalNotice-Link_STRATO + + + + Login_URL + + + + Login_URL_STRATO + + + + MoreInformation-Link + + + + MoreInformation-Link_STRATO + + + + OpenSource-Link + + + + OpenSource-Link_STRATO + + + + Privacy-Link + + + + Privacy-Link_STRATO + + + OCC::UnifiedSearchResultsListModel - Failed to fetch providers. Kunde inte hämta leverantörer - Failed to fetch search providers for '%1'. Error: %2 Det gick inte att hämta sökleverantörer för '%1'. Fel: %2 - - Search has failed for '%2'. - Sökningen "%2' misslyckades. - - - Search has failed for '%1'. Error: %2 Sökningen "%1'. Fel: %2. - + + Search has failed for '%2'. + Sökningen "%2' misslyckades. + + OCC::UpdateE2eeFolderMetadataJob - - Failed to update folder metadata. - Kunde inte uppdatera mappens metadata. + Failed to finalize item. + Misslyckades med att slutföra objektet. - - + Failed to unlock encrypted folder. Kunde inte låsa upp krypterad mapp. - - Failed to finalize item. - Misslyckades med att slutföra objektet. + Failed to update folder metadata. + Kunde inte uppdatera mappens metadata. - + OCC::UpdateE2eeFolderUsersMetadataJob - - - - - - - - - - Error updating metadata for a folder %1 - Fel vid uppdatering av metadata för en mapp %1 + Could not add or remove user %1 to access folder %2 + Kunde inte lägga till eller ta bort användare %1 för att komma åt mappen %2 - Could not fetch public key for user %1 Kunde inte hämta publik nyckel för användare %1 - Could not find root encrypted folder for folder %1 Kunde inte hitta rot-krypterad mapp för mapp %1 - - Could not add or remove user %1 to access folder %2 - Kunde inte lägga till eller ta bort användare %1 för att komma åt mappen %2 + Error updating metadata for a folder %1 + Fel vid uppdatering av metadata för en mapp %1 - Failed to unlock a folder. Misslyckades att låsa upp en mapp. OCC::User - - - End-to-end certificate needs to be migrated to a new one - End-to-end-certifikatet måste migreras till ett nytt - - - - Trigger the migration - Initiera migreringen - - %n notification(s) - %n avisering%n aviseringar - - - - - “%1” was not synchronized - “%1” synkroniserades inte - - - - Insufficient storage on the server. The file requires %1 but only %2 are available. - Otillräckligt lagringsutrymme på servern. Filen kräver %1 men endast %2 är tillgängligt. - - - - Insufficient storage on the server. The file requires %1. - Otillräckligt lagringsutrymme på servern. Filen kräver %1. - - - - Insufficient storage on the server. - Otillräckligt lagringsutrymme på servern. - - - - There is insufficient space available on the server for some uploads. - Det finns inte tillräckligt med utrymme på servern för vissa uppladdningar. - - - - Retry all uploads - Försök ladda upp igen - - - - - Resolve conflict - Lös konflikt + + %n avisering + %n aviseringar + - - Rename file - Byt namn på fil - - - - Public Share Link - Offentlig delningslänk + End-to-end certificate needs to be migrated to a new one + End-to-end-certifikatet måste migreras till ett nytt - Open %1 Assistant in browser The placeholder will be the application name. Please keep it Öppna %1 Assistant i webbläsaren - Open %1 Talk in browser The placeholder will be the application name. Please keep it Öppna %1 Talk i webbläsaren - - Open %1 Assistant - The placeholder will be the application name. Please keep it - Öppna %1 assistenten - - - - Assistant is not available for this account. - Assistenten är inte tillgänglig för detta konto. - - - - Assistant is already processing a request. - Assistenten behandlar redan en begäran. - - - - Sending your request… - Skickar din begäran... - - - - Sending your request … - Skickar din förfrågan … + Public Share Link + Offentlig delningslänk - - No response yet. Please try again later. - Inget svar ännu. Försök igen senare. + Quota Warning - %1 percent or more storage in use + Kvotvarning - %1 procent eller mer av lagringsutrymmet används - - - No supported assistant task types were returned. - Inga supporterade assistentuppgiftstyper returnerades. + + Quota is updated; %1 percent of the total space is used. + Kvoten har uppdaterats; %1 procent av det totala utrymmet är använt. - - Waiting for the assistant response… - Väntar på svar från assistenten... + Rename file + Byt namn på fil - - Assistant request failed (%1). - Förfrågan till assistenten misslyckades (%1). + Resolve conflict + Lös konflikt - - Quota is updated; %1 percent of the total space is used. - Kvoten har uppdaterats; %1 procent av det totala utrymmet är använt. + Retry all uploads + Försök ladda upp igen - - Quota Warning - %1 percent or more storage in use - Kvotvarning - %1 procent eller mer av lagringsutrymmet används + Trigger the migration + Initiera migreringen - + OCC::UserModel - - Confirm Account Removal - Bekräfta radering an kontot - - - <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vill du verkligen ta bort anslutningen till konto <i>%1</i>?</p><p><b>OBS:</b> Detta kommer <b>inte</b> att radera några filer.</p> - - Remove connection - Ta bort anslutning - - - Cancel Avbryt - + Confirm Account Removal + Bekräfta radering an kontot + + Leave share Lämna delning - Remove account Ta bort konto - + + Remove connection + Ta bort anslutning + + OCC::UserStatusSelectorModel - - - Could not fetch predefined statuses. Make sure you are connected to the server. - Kunde inte hämta fördefinierade statusar. Kontrollera anslutningen till servern. + + %n day(s) + + %n dag + %n dagar + - - - Could not fetch status. Make sure you are connected to the server. - Det gick inte att hämta status. Kontrollera att du är ansluten till servern. + + %n hour(s) + + %n timme + %n timmar + + + + %n minute(s) + + %n minut + %n minuter + - - Status feature is not supported. You will not be able to set your status. - Statusfunktionen stöds inte. Du kommer inte att kunna ställa in din status. + 1 hour + 1 timme - - Emojis are not supported. Some status functionality may not work. - Emojier stöds inte. Viss statusfunktionalitet kan vara otillgänglig. + 30 minutes + 30 minuter - - Could not set status. Make sure you are connected to the server. - Kunde inte sätta status. Kontrollera att du är ansluten till servern. + 4 hours + 4 timmar - Could not clear status message. Make sure you are connected to the server. Kunde inte rensa statusmeddelande. Kontrollera anslutningen till servern. - - - Don't clear - Rensa inte + Could not fetch predefined statuses. Make sure you are connected to the server. + Kunde inte hämta fördefinierade statusar. Kontrollera anslutningen till servern. - - 30 minutes - 30 minuter + Could not fetch status. Make sure you are connected to the server. + Det gick inte att hämta status. Kontrollera att du är ansluten till servern. - - 1 hour - 1 timme + Could not set status. Make sure you are connected to the server. + Kunde inte sätta status. Kontrollera att du är ansluten till servern. - - 4 hours - 4 timmar + Don't clear + Rensa inte - - - Today - Idag - - - - - This week - Denna vecka + Emojis are not supported. Some status functionality may not work. + Emojier stöds inte. Viss statusfunktionalitet kan vara otillgänglig. - Less than a minute Mindre än en minut - - - %n minute(s) - %n minut%n minuter + + Status feature is not supported. You will not be able to set your status. + Statusfunktionen stöds inte. Du kommer inte att kunna ställa in din status. - - - %n hour(s) - %n timme%n timmar + + This week + Denna vecka - - - %n day(s) - %n dag%n dagar + + Today + Idag - + OCC::Vfs - Please choose a different location. %1 is a drive. It doesn't support virtual files. Välj en annan plats. %1 är en enhet. Den stöder inte virtuella filer. - - Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - Välj en annan plats. %1 är inte ett NTFS-filsystem. Det stöder inte virtuella filer. - - - Please choose a different location. %1 is a network drive. It doesn't support virtual files. Välj en annan plats. %1 är en nätverksenhet. Den stöder inte virtuella filer. - + + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. + Välj en annan plats. %1 är inte ett NTFS-filsystem. Det stöder inte virtuella filer. + + OCC::VfsDownloadErrorDialog - - Download error - Nedladdningsfel + %1 could not be downloaded. + %1 kunde inte laddas ned. - - - Error downloading - Fel vid nedladdning + + > More details + > Fler detaljer - Could not be downloaded Kunde inte laddas ner - - > More details - > Fler detaljer + Download error + Nedladdningsfel - - More details - Fler detaljer + Error downloading + Fel vid nedladdning - Error downloading %1 Fel vid nedladdning av %1 - - %1 could not be downloaded. - %1 kunde inte laddas ned. + More details + Fler detaljer - + OCC::VfsSuffix - - Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid @@ -6101,8 +5051,6 @@ Servern svarade med fel: %2 OCC::VfsXAttr - - Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid @@ -6110,12 +5058,10 @@ Servern svarade med fel: %2 OCC::WebEnginePage - Invalid certificate detected Ogiltigt certifikat upptäckt - The host "%1" provided an invalid certificate. Continue? Servern "%1" tillhandahöll ett ogiltigt certifikat. Fortsätt? @@ -6123,769 +5069,642 @@ Servern svarade med fel: %2 OCC::WebFlowCredentials - - You have been logged out of your account %1 at %2. Please login again. - Du har loggats ut från ditt konto %1 på %2. Logga in igen. + <b>You have been logged out of your account %1 at %2. Please login again.</b> + OCC::WelcomePage - Form Formulär - + Host your own server + Använd egen server + + + Keep your data secure and under your control + Håll din data säker och under din kontroll + + Log in Logga in - Sign up with provider Registrera hos en leverantör + + + OCC::WizardProxySettingsDialog - - Keep your data secure and under your control - Håll din data säker och under din kontroll - - - - Secure collaboration & file exchange - Säkert samarbete & filöverföringar - - - - Easy-to-use web mail, calendaring & contacts - Simpel e-post-, kalender- och kontakthantering + HTTP(S) proxy + HTTP(S) proxy - - Screensharing, online meetings & web conferences - Skärmdelning, onlinemöten och webkonferenser + Hostname of proxy server + Värdnamn för proxyserver - - Host your own server - Använd egen server + Password for proxy server + Lösenord för proxyserver - - - OCC::WizardProxySettingsDialog - Proxy Settings Dialog window title for proxy settings Proxyinställningar - - Hostname of proxy server - Värdnamn för proxyserver + SOCKS5 proxy + SOCKS5 proxy - - + Username for proxy server Användarnamn för proxyserver + + + OwncloudAdvancedSetupPage - - Password for proxy server - Lösenord för proxyserver + &Local Folder + &Lokal mapp + + + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + <html><head/><body><p>Om denna ruta är kryssad så kommer befintligt innehåll i den lokala mappen tas bort så att en ren synkronisering från servern kan startas.</p><p>Kryssa inte i denna ruta om du vill ladda upp det lokala innehållet till serverns mapp.</p></body></html> - - HTTP(S) proxy - HTTP(S) proxy + Ask before syncing folders larger than + Fråga innan synkronisering av mappar större än - - SOCKS5 proxy - SOCKS5 proxy + Choose different folder + Välj annan mapp - - - OCC::ownCloudGui - - Please sign in - Vänliga logga in + Choose what to sync + Välj vad som ska synkroniseras - - There are no sync folders configured. - Det finns inga synkroniseringsmappar konfigurerade. + Erase local folder and start a clean sync + Radera lokal mapp och starta en fräsch synkronisering - - Disconnected from %1 - Koppla från %1 + Keep local data + Behåll lokal data - - Unsupported Server Version - Serverversion stöds inte + Local Folder + Lokal mapp - - The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. - Servern på kontot %1 kör en version %2 som inte stöds. Att använda den här klienten med serverversioner som inte stöds är oprövat och potentiellt farligt. Fortsätt på egen risk. + MB + Trailing part of "Ask confirmation before syncing folder larger than" + MB - - Terms of service - Användarvillkor + Server address + Serveradress - - Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. - Ditt konto %1 kräver att du accepterar din servers användarvillkor. Du kommer bli omdirigerad till %2 för att bekräfta att du har läst och håller med om villkoren. + Sync Logo + Synkroniseringslogo - - %1: %2 - Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) - %1: %2 + Synchronize everything from server + Synkronisera allt från servern - - macOS VFS for %1: Sync is running. - macOS VFS för %1: Synkronisering körs. + Username + Användarnamn + + + OwncloudHttpCredsPage - - macOS VFS for %1: Last sync was successful. - macOS VFS för %1: Senaste synkroniseringen lyckades. + &Password + &Lösenord + + + &Username + &Användarnamn + + + OwncloudSetupPage - - macOS VFS for %1: A problem was encountered. - macOS VFS för %1: Ett problem påträffades. + Server address + Serveradress - - macOS VFS for %1: An error was encountered. - macOS VFS for %1: Ett problem påträffades. + This is the link to your %1 web interface when you open it in the browser. + Länken %1 används för att nå ditt webgränssnitt i din webläsare. + + + progress - - Checking for changes in remote "%1" - Söker efter ändringar i fjärrmappen "%1" + Deleted + Raderad - - Checking for changes in local "%1" - Söker efter ändringar i lokala "%1" + Deleting + Raderar - - Internal link copied - + Downloaded + Hämtats - - The internal link has been copied to the clipboard. - + Downloading + Laddar ner - - Disconnected from accounts: - Bortkopplad från dessa konton: + Error + Fel - - Account %1: %2 - Konto %1: %2 + Filesystem access error + Åtkomstfel till filsystemet - - Account synchronization is disabled - Synkronisering för konto är avstängd + Ignored + Ignorerad - - %1 (%2, %3) - %1 (%2, %3) + Ignoring + Ignorerar - - - OwncloudAdvancedSetupPage - - Username - Användarnamn + Moved to %1 + Flyttad till %1 - - Local Folder - Lokal mapp + Moving + Flyttar - - Choose different folder - Välj annan mapp + Replaced by virtual file + Ersatt av virtuell fil - - Server address - Serveradress + Server version downloaded, copied changed local file into case conflict conflict file + Serverversionen har laddats ner, den ändrade lokala filen har kopierats in i en fil för skiftlägeskonflikt. - - Sync Logo - Synkroniseringslogo + Server version downloaded, copied changed local file into conflict file + Serverversion hämtad, kopierade den ändrade lokala filen till konfliktfil - - Synchronize everything from server - Synkronisera allt från servern + Unknown + Okänt - - Ask before syncing folders larger than - Fråga innan synkronisering av mappar större än + Updated end-to-end encryption metadata + Uppdaterade metadata för ände-till-ände-kryptering - - Ask before syncing external storages - Fråga innan synkronisering av externa enheter + Updated local metadata + Uppdaterade lokal metadata - - Keep local data - Behåll lokal data + Updated local virtual files metadata + Uppdaterad metadata för lokala virtuella filer - - <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Om denna ruta är kryssad så kommer befintligt innehåll i den lokala mappen tas bort så att en ren synkronisering från servern kan startas.</p><p>Kryssa inte i denna ruta om du vill ladda upp det lokala innehållet till serverns mapp.</p></body></html> + Updating end-to-end encryption metadata + Uppdaterar metadata för ände-till-ände-kryptering + + + Updating local metadata + Uppdaterar lokal metadata - - Erase local folder and start a clean sync - Radera lokal mapp och starta en fräsch synkronisering + Updating local virtual files metadata + Uppdaterar lokala virtuella filers metadata - - MB - Trailing part of "Ask confirmation before syncing folder larger than" - MB + Uploaded + Uppladdad - - Choose what to sync - Välj vad som ska synkroniseras + Uploading + Laddar upp - - &Local Folder - &Lokal mapp + Virtual file created + Virtuell fil skapad - + - OwncloudHttpCredsPage + ProxySettings - - &Username - &Användarnamn + Form + Formulär - - &Password - &Lösenord - - - - OwncloudSetupPage - - - Logo - Logotyp + Host + Värdnamn - - Server address - Serveradress + Manually specify proxy + Ange proxy manuellt - - This is the link to your %1 web interface when you open it in the browser. - Länken %1 används för att nå ditt webgränssnitt i din webläsare. + No proxy + Ingen proxy - - - ProxySettings - - - Form - Formulär + + Note: proxy settings have no effects for accounts on localhost + Observera: proxyinställningar har ingen effekt för konton på localhost - Proxy Settings Proxyinställningar - - Manually specify proxy - Ange proxy manuellt - - - - Host - Värdnamn - - - Proxy server requires authentication Proxyservern kräver autentisering - - Note: proxy settings have no effects for accounts on localhost - Observera: proxyinställningar har ingen effekt för konton på localhost - - - Use system proxy Använd systemets proxyinställningar - - - No proxy - Ingen proxy - - + QObject + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 + - %nd delay in days after an activity - %nd%nd - - - - in the future - i framtiden + + %nd + %nd + - %nh delay in hours after an activity - %nh%nh + + %nh + %nh + - - - now - nu + + %nmin + delay in minutes after an activity + + %nmin + %nmin + - 1min one minute after activity date and time 1min - - - %nmin - delay in minutes after an activity - %nmin%nmin - - - Some time ago - För en tid sedan + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 + Could not create debug archive in selected location! + Kunde inte skapa felsökningsarkiv på den valda platsen! - - New folder - Ny mapp + Error deleting the file + Kunde inte ta bort filen - Failed to create debug archive Kunde inte skapa felsökningsarkiv - - Could not create debug archive in selected location! - Kunde inte skapa felsökningsarkiv på den valda platsen! - - - - Could not create debug archive in temporary location! - Det gick inte att skapa felsökningsarkivet på den tillfälliga platsen! + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Det verkar som att du använder en proxy som kräver autentisering. Kontrollera dina proxyinställningar och inloggningsuppgifter. Om du behöver hjälp, kontakta din serveradministratör. - - Could not remove existing file at destination! - Det gick inte att ta bort den befintliga filen på destinationen! + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Det tar för lång tid att ansluta till servern. Försök igen senare. Om du behöver hjälp, kontakta din serveradministratör. - - Could not move debug archive to selected location! - Det gick inte att flytta felsökningsarkivet till den valda platsen! + New folder + Ny mapp - - You renamed %1 - Du döpte om %1 + Paths beginning with '#' character are not supported in VFS mode. + Sökvägar som börjar med tecknet '#' stöds inte i VFS-läge. - - You deleted %1 - Du raderade %1 + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Serverfiler ändrades medan du arbetade. Försök att synkronisera igen. Kontakta din serveradministratör om problemet kvarstår. - - You created %1 - Du skapade %1 + Some time ago + För en tid sedan - - You changed %1 - Du ändrade %1 + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Något gick fel på servern. Försök att synkronisera igen senare, eller kontakta din serveradministratör om problemet kvarstår. - Synced %1 Synkroniserade %1 - - Error deleting the file - Kunde inte ta bort filen + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + Adressen som användes för begäran är för lång för att servern ska kunna hantera den. Försök att förkorta informationen du skickar, eller kontakta din serveradministratör för hjälp. - - Paths beginning with '#' character are not supported in VFS mode. - Sökvägar som börjar med tecknet '#' stöds inte i VFS-läge. + The directory %1 cannot be part of your sync directory. Please choose another folder. + - - - We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. - Vi kunde inte behandla din begäran. Försök att synkronisera igen senare. Om problemet kvarstår, kontakta din serveradministratör för hjälp. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + Filen är för stor för att laddas upp. Du kan behöva välja en mindre fil eller kontakta din serveradministratör för hjälp. - - You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - Du måste logga in för att fortsätta. Om du har problem med dina inloggningsuppgifter, kontakta din serveradministratör. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + Begäran kunde inte slutföras eftersom vissa nödvändiga villkor inte uppfylldes. Försök att synkronisera igen senare. Om du behöver hjälp, kontakta din serveradministratör. - - You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. - Du har inte åtkomst till denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + Begäran tar längre tid än vanligt. Försök att synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. - - We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. - Vi kunde inte hitta det du letade efter. Det kan ha flyttats eller raderats. Om du behöver hjälp, kontakta din serveradministratör. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + Resursen du försöker komma åt är för närvarande låst och kan inte ändras. Försök igen senare, eller kontakta din serveradministratör för hjälp. - - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Det verkar som att du använder en proxy som kräver autentisering. Kontrollera dina proxyinställningar och inloggningsuppgifter. Om du behöver hjälp, kontakta din serveradministratör. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + Servern kunde inte behandla din begäran eftersom viss information var felaktig eller ofullständig. Försök att synkronisera igen senare, eller kontakta din serveradministratör för hjälp. - - The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. - Begäran tar längre tid än vanligt. Försök att synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + Servern har inte tillräckligt med utrymme för att slutföra din begäran. Kontrollera hur mycket kvot ditt användarkonto har genom att kontakta din serveradministratör. - - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Serverfiler ändrades medan du arbetade. Försök att synkronisera igen. Kontakta din serveradministratör om problemet kvarstår. + The server does not recognize the request method. Please contact your server administrator for help. + Servern känner inte igen begärans metod. Kontakta din serveradministratör för hjälp. - - This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. - Denna mapp eller fil är inte längre tillgänglig. Om du behöver hjälp, kontakta din serveradministratör. + The server does not support the version of the connection being used. Contact your server administrator for help. + Servern stöder inte den version av anslutningen som används. Kontakta din serveradministratör för hjälp. - - The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. - Begäran kunde inte slutföras eftersom vissa nödvändiga villkor inte uppfylldes. Försök att synkronisera igen senare. Om du behöver hjälp, kontakta din serveradministratör. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + Servern är upptagen just nu. Försök att ansluta igen om några minuter eller kontakta serveradministratören om det är brådskande. - - The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. - Filen är för stor för att laddas upp. Du kan behöva välja en mindre fil eller kontakta din serveradministratör för hjälp. + This file type isn’t supported. Please contact your server administrator for assistance. + Denna filtyp stöds inte. Kontakta din serveradministratör för hjälp. - - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - Adressen som användes för begäran är för lång för att servern ska kunna hantera den. Försök att förkorta informationen du skickar, eller kontakta din serveradministratör för hjälp. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + Denna mapp eller fil är inte längre tillgänglig. Om du behöver hjälp, kontakta din serveradministratör. - - This file type isn’t supported. Please contact your server administrator for assistance. - Denna filtyp stöds inte. Kontakta din serveradministratör för hjälp. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + Begäran kunde inte slutföras eftersom vissa nödvändiga villkor saknas. Försök igen senare, eller kontakta din serveradministratör för hjälp. - - The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. - Servern kunde inte behandla din begäran eftersom viss information var felaktig eller ofullständig. Försök att synkronisera igen senare, eller kontakta din serveradministratör för hjälp. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + Vi kunde inte hitta det du letade efter. Det kan ha flyttats eller raderats. Om du behöver hjälp, kontakta din serveradministratör. - - The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. - Resursen du försöker komma åt är för närvarande låst och kan inte ändras. Försök igen senare, eller kontakta din serveradministratör för hjälp. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + Vi kunde inte behandla din begäran. Försök att synkronisera igen senare. Om problemet kvarstår, kontakta din serveradministratör för hjälp. - - This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. - Begäran kunde inte slutföras eftersom vissa nödvändiga villkor saknas. Försök igen senare, eller kontakta din serveradministratör för hjälp. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. + Vi har problem med att ansluta till servern. Försök igen snart. Om problemet kvarstår kan din serveradministratör hjälpa dig. - - You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. - Du har gjort för många förfrågningar. Vänta och försök igen. Om problemet kvarstår kan din serveradministratör hjälpa dig. + You changed %1 + Du ändrade %1 - - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Något gick fel på servern. Försök att synkronisera igen senare, eller kontakta din serveradministratör om problemet kvarstår. + You created %1 + Du skapade %1 - - The server does not recognize the request method. Please contact your server administrator for help. - Servern känner inte igen begärans metod. Kontakta din serveradministratör för hjälp. + You deleted %1 + Du raderade %1 - - We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - Vi har problem med att ansluta till servern. Försök igen snart. Om problemet kvarstår kan din serveradministratör hjälpa dig. + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + Du har inte åtkomst till denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör. - - The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. - Servern är upptagen just nu. Försök att ansluta igen om några minuter eller kontakta serveradministratören om det är brådskande. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + Du har inte behörighet att komma åt denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör för hjälp. - - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Det tar för lång tid att ansluta till servern. Försök igen senare. Om du behöver hjälp, kontakta din serveradministratör. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + Du har gjort för många förfrågningar. Vänta och försök igen. Om problemet kvarstår kan din serveradministratör hjälpa dig. - - The server does not support the version of the connection being used. Contact your server administrator for help. - Servern stöder inte den version av anslutningen som används. Kontakta din serveradministratör för hjälp. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. + Du måste logga in för att fortsätta. Om du har problem med dina inloggningsuppgifter, kontakta din serveradministratör. - - The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. - Servern har inte tillräckligt med utrymme för att slutföra din begäran. Kontrollera hur mycket kvot ditt användarkonto har genom att kontakta din serveradministratör. + You renamed %1 + Du döpte om %1 - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Ditt nätverk kräver extra autentisering. Kontrollera din anslutning. Kontakta din serveradministratör om problemet kvarstår. - - You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. - Du har inte behörighet att komma åt denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör för hjälp. + in the future + i framtiden - - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. + now + nu - + ResolveConflictsDialog - - - Solve sync conflicts - Lös synkroniseringskonflikter - - %1 files in conflict indicate the number of conflicts to resolve - %1 fil i konflikt%1 filer i konflikt - - - - Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. - Välj om du vill behålla den lokala versionen, serverversionen eller båda. Om du väljer båda kommer den lokala filen att ha ett nummer tillagt i namnet. + + %1 fil i konflikt + %1 filer i konflikt + - All local versions Alla lokala versioner - All server versions Alla serverversioner - + Cancel + Avbryt + + + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Välj om du vill behålla den lokala versionen, serverversionen eller båda. Om du väljer båda kommer den lokala filen att ha ett nummer tillagt i namnet. + + Resolve conflicts Lös konflikter - - Cancel - Avbryt + Solve sync conflicts + Lös synkroniseringskonflikter - + - ShareDelegate + SesErrorBox - - Copied! - Kopierad! + Error + Fel - ShareDetailsPage + SesTrayHeader - - An error occurred setting the share password. - Ett fel uppstod vid inställning av delningslösenordet. + Open Nextcloud in browser + - - Edit share - Redigera delning + Open local or team folders + Öppna lokala eller teammappar - - - Share label - Delningsetikett + + Website + + + + ShareDelegate - - - Allow upload and editing - Tillåt uppladdning och redigering + Copied! + Kopierad! - - View only - Endast visa + Share options + Delningsalternativ + + + ShareDetailsPage - - File drop (upload only) - Filinkast (endast uppladdning) + Add another link + Lägg till en annan länk - Allow resharing Tillåt vidaredelning - - Hide download + Allow upload and editing + Tillåt uppladdning och redigering + + + An error occurred setting the share password. + Ett fel uppstod vid inställning av delningslösenordet. + + + Copy share link + Kopiera delningslänk + + + Custom Permissions + + + + Enter a note for the recipient + Ange en notering till mottagaren + + + File drop (upload only) + Filinkast (endast uppladdning) + + + Hide download Dölj nedladdning - + Note to recipient + Notering till mottagare + + Password protection Lösenordsskydd - Set expiration date Välj utgångsdatum - - Note to recipient - Notering till mottagare - - - - Enter a note for the recipient - Ange en notering till mottagaren + Share link copied! + Delningslänken har kopierats! - Unshare Sluta dela - - Add another link - Lägg till en annan länk + View only + Endast visa + + + ShareeSearchField - - Share link copied! - Delningslänken har kopierats! + Search for users or groups… + Sök efter användare eller grupper... - - Copy share link - Kopiera delningslänk + Sharing is not available for this folder + Delning är inte tillgängligt för den här mappen ShareView - + Expires in %1 + Går ut om %1 + + Password required for new share Lösenord krävs för ny delning - Share password Lösenord för delning - Shared with you by %1 Delad med dig av %1 - - Expires in %1 - Går ut om %1 - - - Sharing is disabled Delning är inaktiverat - - This item cannot be shared. - Det här objektet kan inte delas. - - - Sharing is disabled. Delning är inaktiverat. - - - ShareeSearchField - - - Search for users or groups… - Sök efter användare eller grupper... - - - - Sharing is not available for this folder - Delning är inte tillgängligt för den här mappen + + This item cannot be shared. + Det här objektet kan inte delas. - + SyncJournalDb - Failed to connect database. Kunde inte koppla mot databasen. @@ -6893,35 +5712,25 @@ Servern svarade med fel: %2 SyncStatus - - Sync now - Synkronisera nu + Open browser + Öppna webbläsare - - + Resolve conflicts Lös konflikter - - Open browser - Öppna webbläsare - - - - Open settings - Öppna inställningar + Sync now + Synkronisera nu - + TalkReplyTextField - Reply to … Svara till ... - Send reply to chat message Skicka svar på chattmeddelande @@ -6929,76 +5738,176 @@ Servern svarade med fel: %2 TermsOfServiceCheckWidget - - Terms of Service - Användarvillkor - - - Logo Logotyp - Switch to your browser to accept the terms of service Byt till din webbläsare för att acceptera användarvillkoren - + + Terms of Service + Användarvillkor + + + + theme + + Error occurred during setup + Ett fel uppstod under installationen + + + Error occurred during sync + Ett fel uppstod under synkroniseringen + + + Preparing to sync + Förbereder synkronisering + + + Stopping sync + Stoppar synkronisering + + + Sync is paused + Synkronisering pausad + + + Sync is running + Synkronisering är aktiv + + + Sync status is unknown + Synkroniseringsstatus är okänd + + + Sync was successful + Synkroniseringen lyckades + + + Sync was successful but some files were ignored + Synkroniseringen lyckades men vissa filer ignorerades + + + Waiting to start syncing + Väntar på att starta synkronisering + + TrayFoldersMenuButton - - Open local folder - Öppnar lokal mapp + Files + - - Open local or team folders - Öppna lokala eller teammappar + Open %1 in file explorer + Öppna %1 i filutforskaren + + + Open local folder + Öppnar lokal mapp - Open local folder "%1" Öppna lokala mappen "%1" - - Open team folder "%1" - Öppna teammapp "%1" + Open local or team folders + Öppna lokala eller teammappar - - Open %1 in file explorer - Öppna %1 i filutforskaren + Open team folder "%1" + Öppna teammapp "%1" - User group and local folders menu Användargrupp och meny för lokala mappar + + TrayWindowAccountMenu + + Account switcher and settings menu + Kontobytare och inställningsmeny + + + Add account + Lägg till konto + + + Current account + Nuvarande konto + + + Current account avatar + Avatar för aktuellt konto + + + Current account status is do not disturb + Aktuell kontostatus är stör ej + + + Current account status is online + Aktuell kontostatus är online + + + Exit + Avsluta + + + Pause sync for all + Pausa synkronisering för alla + + + Resume sync for all + Återuppta synkronisering för alla + + + Settings + Inställningar + + TrayWindowHeader - + More apps + Fler appar + + + Open %1 in browser + Öppna %1 i webbläsare + + Open local or team folders Öppna lokala eller teammappar + + + TrayWindowHeaderBar - More apps - Fler appar + Fler appar - Open %1 in browser - Öppna %1 i webbläsare + Öppna %1 i webbläsare - + + Open Nextcloud in browser + + + + Open local or team folders + Öppna lokala eller teammappar + + + Website + + + UnifiedSearchInputContainer - Search files, messages, events … Sök efter filer, meddelanden, händelser... @@ -7006,7 +5915,6 @@ Servern svarade med fel: %2 UnifiedSearchPlaceholderView - Start typing to search Börja skriva för att söka @@ -7014,7 +5922,6 @@ Servern svarade med fel: %2 UnifiedSearchResultFetchMoreTrigger - Load more results Visa fler resultat @@ -7022,7 +5929,6 @@ Servern svarade med fel: %2 UnifiedSearchResultItemSkeleton - Search result skeleton. Sökresultatskelett @@ -7030,7 +5936,6 @@ Servern svarade med fel: %2 UnifiedSearchResultListItem - Load more results Visa fler resultat @@ -7038,7 +5943,6 @@ Servern svarade med fel: %2 UnifiedSearchResultNothingFound - No results for Inga resultat för @@ -7046,7 +5950,6 @@ Servern svarade med fel: %2 UnifiedSearchResultSectionItem - Search results section %1 Sökresultat %1 @@ -7054,128 +5957,88 @@ Servern svarade med fel: %2 UserLine - - Switch to account - Växla till konto + Account actions + Kontoåtgärder - - Current account status is online - Aktuell kontostatus är online + Log in + Logga in - - Current account status is do not disturb - Aktuell kontostatus är stör ej + Log out + Logga ut - - Account sync status requires attention - Kontots synkroniseringsstatus kräver uppmärksamhet + Remove account + Ta bort konto - - - Account actions - Kontoåtgärder + + Switch to account + Växla till konto + + + UserStatusMessageView - - Set status - Välj status + Apply + Verkställ - - - Status message - Statusmeddelande + + Cancel + Avbryt - - Log out - Logga ut + Clear + Rensa - - Log in - Logga in + Clear status message after + Rensa statusmeddelande efter - - - UserStatusMessageView - Status message Statusmeddelande - What is your status? Vad är din status? + + + UserStatusSetStatusView - - Clear status message after - Rensa statusmeddelande efter + Appear offline + Visa som offline - - Cancel - Avbryt + Away + Borta - - Clear - Rensa + Busy + Upptagen - - Apply - Verkställ - - - - UserStatusSetStatusView - - - Online status - Onlinestatus - - - - Online - Online + Do not disturb + Stör ej - - Away - Borta - - - - Busy - Upptagen - - - - Do not disturb - Stör ej + Invisible + Osynlig - Mute all notifications Stäng av alla aviseringar - - Invisible - Osynlig + Online + Online - - Appear offline - Visa som offline + Online status + Onlinestatus - Status message Statusmeddelande @@ -7183,390 +6046,128 @@ Servern svarade med fel: %2 Utility - - %L1 GB - %L1 GB + %1 %2 + %1 %2 + + + %L1 B + %L1 B - - %L1 MB - %L1 MB + %L1 GB + %L1 GB - %L1 KB %L1 KB - - %L1 B - %L1 B + %L1 MB + %L1 MB - %L1 TB %L1 TB - - %n year(s) - %n år%n år - - - - %n month(s) - %n månad%n månader - - - %n day(s) - %n dag%n dagar + + %n dag + %n dagar + - %n hour(s) - %n timme%n timmar + + %n timme + %n timmar + - %n minute(s) - %n minut%n minuter + + %n minut + %n minuter + - - %n second(s) - %n sekund%n sekunder - - - - %1 %2 - %1 %2 - - - - ValidateChecksumHeader - - - The checksum header is malformed. - Kontrollsummans header är felformaterad. - - - - The checksum header contained an unknown checksum type "%1" - Kontrollsummans header innehåller en okänd kontrollsumma av typ "%1" - - - - The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" - Den nedladdade filen matchar inte kontrollsumman, den kommer att återupptas. "%1" != "%2" - - - - main.cpp - - - System Tray not available - Systemfältet är inte tillgängligt - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as "trayer" and try again. - %1 kräver ett fungerande systemfält. Om du kör XFCE, följ <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">dessa instruktioner</a>. Annars, installera ett systemfälts-program som "trayer" och försök igen. - - - - nextcloudTheme::aboutInfo() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - <p><small>Byggd från Git revision <a href="%1">%2</a> den %3, %4 med Qt %5, %6</small></p> - - - - progress - - - Virtual file created - Virtuell fil skapad - - - - Replaced by virtual file - Ersatt av virtuell fil - - - - Downloaded - Hämtats - - - - Uploaded - Uppladdad - - - - Server version downloaded, copied changed local file into conflict file - Serverversion hämtad, kopierade den ändrade lokala filen till konfliktfil - - - - Server version downloaded, copied changed local file into case conflict conflict file - Serverversionen har laddats ner, den ändrade lokala filen har kopierats in i en fil för skiftlägeskonflikt. - - - - Deleted - Raderad - - - - Moved to %1 - Flyttad till %1 - - - - Ignored - Ignorerad - - - - Filesystem access error - Åtkomstfel till filsystemet - - - - - Error - Fel - - - - Updated local metadata - Uppdaterade lokal metadata - - - - Updated local virtual files metadata - Uppdaterad metadata för lokala virtuella filer - - - - Updated end-to-end encryption metadata - Uppdaterade metadata för ände-till-ände-kryptering - - - - - Unknown - Okänt - - - - Downloading - Laddar ner - - - - Uploading - Laddar upp - - - - Deleting - Raderar - - - - Moving - Flyttar - - - - Ignoring - Ignorerar - - - - Updating local metadata - Uppdaterar lokal metadata + %n month(s) + + %n månad + %n månader + - - - Updating local virtual files metadata - Uppdaterar lokala virtuella filers metadata + + %n second(s) + + %n sekund + %n sekunder + - - - Updating end-to-end encryption metadata - Uppdaterar metadata för ände-till-ände-kryptering + + %n year(s) + + %n år + %n år + - + - theme - - - Sync status is unknown - Synkroniseringsstatus är okänd - - - - Waiting to start syncing - Väntar på att starta synkronisering - - - - Sync is running - Synkronisering är aktiv - - - - Sync was successful - Synkroniseringen lyckades - - - - Sync was successful but some files were ignored - Synkroniseringen lyckades men vissa filer ignorerades - - - - Error occurred during sync - Ett fel uppstod under synkroniseringen - - - - Error occurred during setup - Ett fel uppstod under installationen - - - - Stopping sync - Stoppar synkronisering - + utility - - Preparing to sync - Förbereder synkronisering + Always available locally + Alltid tillgänglig lokalt - - Sync is paused - Synkronisering pausad + Available online only + Endast tillgänglig online - - - utility - Could not open browser Kunde inte öppna webbläsaren - - There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? - Det uppstod ett fel när webbläsaren öppnades för webbadressen %1. Kanske det inte finns någon standard webbläsare vald? - - - Could not open email client Kunde inte öppna e-postklient - - There was an error when launching the email client to create a new message. Maybe no default email client is configured? - Det uppstod ett fel när e-postklienten skulle startas för att skapa ett nytt meddelande. Kanske är ingen standard-e-postklient konfigurerad? - - - - Always available locally - Alltid tillgänglig lokalt - - - Currently available locally För närvarande tillgänglig lokalt - - Some available online only - Vissa endast tillgängliga online - - - - Available online only - Endast tillgänglig online - - - - Make always available locally - Gör alltid tillgänglig lokalt - - - Free up local space Frigör lokalt utrymme - - - FileProviderEvictionDialog - - - Remove local copies - Ta bort lokala kopior - - - - Local copies - Lokala kopior - - - - Reload - Ladda om + + Make always available locally + Gör alltid tillgänglig lokalt - - - FileProviderStorageInfo - - Local storage use - Användning lokal lagring + Some available online only + Vissa endast tillgängliga online - - %1 GB of %2 GB remote files synced - %1 GB av %2 GB filer synkroniserade + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + Det uppstod ett fel när webbläsaren öppnades för webbadressen %1. Kanske det inte finns någon standard webbläsare vald? - - Free up space … - Frigör utrymme … + There was an error when launching the email client to create a new message. Maybe no default email client is configured? + Det uppstod ett fel när e-postklienten skulle startas för att skapa ett nytt meddelande. Kanske är ingen standard-e-postklient konfigurerad? - + - FileProviderSyncStatus - - - Syncing - Synkroniserar - + ValidateChecksumHeader - - All synced! - Allt synkroniserat! + The checksum header contained an unknown checksum type "%1" + Kontrollsummans header innehåller en okänd kontrollsumma av typ "%1" - - Request sync - Begär synkronisering + The checksum header is malformed. + Kontrollsummans header är felformaterad. - - Request a sync of changes for the VFS environment. -macOS may ignore or delay this request. - Begär en synkronisering av ändringar för VFS-miljön. -macOS kan ignorera eller fördröja denna begäran. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" + Den nedladdade filen matchar inte kontrollsumman, den kommer att återupptas. "%1" != "%2" \ No newline at end of file From dbb3d7c4d155ed44c469092d39c06e46a1a663f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:06 +0200 Subject: [PATCH 144/148] Step 1 --- translations/client_de.ts | 470 +++++++++++++++++----------------- translations/client_en.ts | 470 +++++++++++++++++----------------- translations/client_en_GB.ts | 470 +++++++++++++++++----------------- translations/client_es.ts | 470 +++++++++++++++++----------------- translations/client_es_MX.ts | 470 +++++++++++++++++----------------- translations/client_fr.ts | 474 ++++++++++++++++++----------------- translations/client_it.ts | 474 ++++++++++++++++++----------------- translations/client_nl.ts | 474 ++++++++++++++++++----------------- translations/client_sv.ts | 470 +++++++++++++++++----------------- 9 files changed, 2139 insertions(+), 2103 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index 924c33b88dc7f..b19f00ad8ade4 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -6,22 +6,22 @@ In %1 In %1 - + Open %1 locally %1 lokal öffnen - + ActivityItemContent Dismiss Ablehnen - + Open file details Dateidetails öffnen - + ActivityList @@ -32,11 +32,11 @@ No activities yet Noch keine Aktivitäten vorhanden - + Scroll to top Nach unten blättern - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Benachrichtigung zu Talk-Anruf ablehnen - + Talk notification caller avatar Avatar zu Benachrichtigung über Talk-Anrufer - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Sync-Client beenden - + Recently changed Zuletzt geändert @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Synchronisiere %1 von %2 (%3 übrig) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Konto-Umschalter und Einstellungsmenü - + Add account Konto hinzufügen @@ -185,7 +185,7 @@ Settings Einstellungen - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Neu laden - + Remove local copies Lokale Kopien entfernen - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Virtuelle Dateienumgebung zurücksetzen - + Virtual files settings Einstellungen für virtuelle Dateien - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Speicherplatz freigeben … - + Local storage use Nutzung des lokalen Speichers - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Eine Synchronisierung der Änderungen für die VFS-Umgebung anfordern. macOS kann diese Anforderung ignorieren oder verzögern. - + Request sync Synchronisierung anfordern @@ -304,18 +304,18 @@ macOS kann diese Anforderung ignorieren oder verzögern. Syncing Synchronisiere - + FileSystem Could not remove folder "%1" Der Ordner "%1" konnte nicht entfernt werden - + Error removing "%1": %2 Fehler beim Entfernen von "%1": %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Copy Link Link kopieren - + Logo Logo @@ -338,7 +338,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Switch to your browser to connect your account Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Ordner erstellen @@ -399,7 +399,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS kann diese Anforderung ignorieren oder verzögern. New activities Neue Aktivitäten - + Unified search results list Einheitliche Suchergebnisliste - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS kann diese Anforderung ignorieren oder verzögern. The server enforces strict transport security and does not accept untrusted certificates. Der Server erzwingt strenge Transportsicherheit und akzeptiert nur vertrauenswürdige Zertifikate. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Der Server brauchte zu lange, um zu antworten. Bitte die Verbindung überprüfen und die Synchronisation erneut versuchen. Wenn es dann immer noch nicht funktioniert, bitte die Serveradministration kontaktieren. - + OCC::Account @@ -468,7 +468,7 @@ Soll das Konto importiert werden? Could not import accounts from legacy client configuration. Konten von älterer Client-Konfiguration konnten nicht importiert werden. - + Import Importieren @@ -480,7 +480,7 @@ Soll das Konto importiert werden? Skip Überspringen - + OCC::AccountSettings @@ -635,7 +635,7 @@ Soll das Konto importiert werden? Expand Memory - + Folder creation failed Anlegen des Ordners fehlgeschlagen @@ -837,7 +837,7 @@ Möchten Sie dies jetzt tun? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Sie scheinen die Funktion "Virtuelle Dateien" für diesen Ordner aktiviert zu haben. Im Moment ist es nicht möglich, virtuelle Dateien, die Ende-zu-Ende-verschlüsselt sind, implizit herunterzuladen. Um die beste Erfahrung mit virtuellen Dateien und Ende-zu-Ende-Verschlüsselung zu machen, stellen Sie sicher, dass der verschlüsselte Ordner mit "Immer lokal verfügbar machen" markiert ist. - + OCC::AccountSetupFromCommandLineJob @@ -933,7 +933,7 @@ Möchten Sie dies jetzt tun? Certificate files (*.p12 *.pfx) Zertifikatsdateien (*.p12 *.pfx) - + Certificate password: Zertifikatspasswort: @@ -949,7 +949,7 @@ Möchten Sie dies jetzt tun? This server probably requires a SSL client certificate. Der Server benötigt vermutlich ein SSL-Client-Zertifikat - + OCC::Application @@ -1001,7 +1001,7 @@ Möchten Sie dies jetzt tun? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Beim Zugriff auf die Konfigurationsdatei unter %1 ist ein Fehler aufgetreten. Stellen Sie sicher, dass Ihr Systemkonto auf die Datei zugreifen kann. - + deleting Lösche @@ -1019,14 +1019,14 @@ Möchten Sie dies jetzt tun? older software version Älter - + OCC::AuthenticationDialog &Password: &Passwort: - + &Username: &Benutzername: @@ -1038,7 +1038,7 @@ Möchten Sie dies jetzt tun? Enter username and password for "%1" at %2. Benutzername und Passwort für "%1" auf %2 eingeben. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1064,12 +1064,12 @@ Möchten Sie dies jetzt tun? The file %1 is currently in use Die Datei %1 ist derzeit in Gebrauch - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Metadaten der neuen Datei %1 konnten nicht aktualisiert werden. - + OCC::BulkPropagatorJob @@ -1112,7 +1112,7 @@ Möchten Sie dies jetzt tun? Restoration failed: %1 Wiederherstellung fehlgeschlagen: %1 - + The file %1 is currently in use Die Datei %1 wird aktuell verwendet @@ -1120,7 +1120,7 @@ Möchten Sie dies jetzt tun? The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. - + OCC::CaseClashConflictSolver @@ -1147,11 +1147,11 @@ Möchten Sie dies jetzt tun? Filename contains trailing spaces. Dateiname enthält Leerzeichen am Ende. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich zum Umbenennen der Datei an deren Ersteller. - + OCC::CaseClashFilenameDialog @@ -1182,7 +1182,7 @@ Möchten Sie dies jetzt tun? Filename contains illegal characters: %1 Dateiname enthält unzulässige Zeichen: %1 - + Filename contains leading and trailing spaces. Dateiname enthält Leerzeichen am Anfang und am Ende. @@ -1238,7 +1238,7 @@ Möchten Sie dies jetzt tun? today Heute - + OCC::CleanupPollsJob @@ -1256,7 +1256,7 @@ Möchten Sie dies jetzt tun? Enter E2E passphrase E2E-Passphrase eingeben - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" PIN-Code eingeben @@ -1273,7 +1273,7 @@ Möchten Sie dies jetzt tun? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Geben Sie Ihre Passphrase für Ende-zu-Ende-Verschlüsselung ein:<br><br>Benutzername: %2<br>Konto: %3<br> - + OCC::ConflictDialog @@ -1312,7 +1312,7 @@ Möchten Sie dies jetzt tun? Keep server version Serverversion behalten - + Local version Lokale Version @@ -1340,14 +1340,14 @@ Möchten Sie dies jetzt tun? today Heute - + OCC::ConflictSolver Confirm deletion Löschen bestätigen - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Soll der Ordner <i>%1</i> und dessen Inhalte dauerhaft gelöscht werden? @@ -1367,7 +1367,7 @@ Möchten Sie dies jetzt tun? %1 - + OCC::ConnectionValidator @@ -1391,11 +1391,11 @@ Möchten Sie dies jetzt tun? The provided credentials are not correct Die zur Verfügung gestellten Anmeldeinformationen sind nicht korrekt - + Timeout Zeitüberschreitung - + OCC::DataProtectionPage @@ -1414,7 +1414,11 @@ Möchten Sie dies jetzt tun? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1456,11 +1460,11 @@ Möchten Sie dies jetzt tun? Error while canceling deletion of %1 Fehler beim Abbrechen des Löschens von %1 - + Error while canceling deletion of a file Fehler beim Abbrechen des Löschens einer Datei - + OCC::DiscoverySingleDirectoryJob @@ -1471,7 +1475,7 @@ Möchten Sie dies jetzt tun? Encrypted metadata setup error: initial signature from server is empty. Fehler bei der Einrichtung der verschlüsselten Metadaten: Die ursprüngliche Signatur vom Server ist leer. - + Server error: PROPFIND reply is not XML formatted! Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! @@ -1479,7 +1483,7 @@ Möchten Sie dies jetzt tun? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Der Server hat eine unerwartete Antwort zurückgegeben, die nicht gelesen werden konnte. Bitte die Serveradministration kontaktieren." - + OCC::DiscoverySingleLocalDirectoryJob @@ -1498,11 +1502,11 @@ Möchten Sie dies jetzt tun? Error while reading directory %1 Fehler beim Lesen des Ordners %1 - + Filename encoding is not valid Dateinamenkodierung ist ungültig - + OCC::EditLocallyJob @@ -1545,7 +1549,7 @@ Möchten Sie dies jetzt tun? File %1 could not be locked. Datei %1 konnte nicht gesperrt werden. - + File %1 now locked. Datei %1 ist jetzt gesperrt. @@ -1565,7 +1569,7 @@ Möchten Sie dies jetzt tun? Server error: PROPFIND reply is not XML formatted! Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! - + OCC::EditLocallyManager @@ -1583,7 +1587,7 @@ Möchten Sie dies jetzt tun? An error occurred trying to verify the request to edit locally. Es ist ein Fehler beim Versuch, die Anfrage zur lokalen Bearbeitung zu überprüfen, aufgetreten. - + Could not find an account for local editing. Es konnte kein Konto für die lokale Bearbeitung gefunden werden. @@ -1603,7 +1607,7 @@ Möchten Sie dies jetzt tun? Please try again. Bitte erneut versuchen. - + OCC::EncryptedFolderMetadataHandler @@ -1709,7 +1713,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Der Server hat nicht mit den erwarteten Daten geantwortet. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Der Server ist vorübergehend nicht verfügbar, da er sich im Wartungsmodus befindet. Bitte erneut versuchen, sobald die Wartung abgeschlossen ist. @@ -1717,7 +1721,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Die Serverantwort konnte nicht analysiert werden.. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. - + OCC::Flow2AuthWidget @@ -1748,7 +1752,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. Switch to your browser to connect your account Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden - + Unable to open the Browser, please copy the link to your Browser. Der Browser kann nicht geöffnet werden. Bitte kopieren Sie den Link in Ihren Browser. @@ -1756,7 +1760,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. Waiting for authorization Warte auf Autorisierung - + OCC::Folder @@ -1929,7 +1933,7 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe Restore Files from Server Dateien vom Server wiederherstellen - + Restore Files to Server Dateien auf dem Server wiederherstellen @@ -1961,7 +1965,7 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe Would you like to stop syncing this folder? Soll die Synchronisierung dieses Ordners gestoppt werden? - + OCC::FolderCreationDialog @@ -1972,7 +1976,7 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe Could not create a folder! Check your write permissions. Ordner konnte nicht erstellt werden! Prüfen Sie die Schreibberechtigungen. - + Create new folder Neuen Ordner erstellen @@ -1988,14 +1992,14 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe Folder already exists Ordner existiert bereits - + OCC::FolderMan %1 (Sync is paused) %1 (Synchronisierung ist pausiert) - + (backup %1) @@ -2111,7 +2115,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Waiting to start syncing. Wartet auf Beginn der Synchronisierung. - + OCC::FolderStatusDelegate @@ -2122,11 +2126,11 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass File Datei - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2207,7 +2211,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Preparing to sync … Synchronisierung wird vorbereitet … - + Signed out Abgemeldet @@ -2255,7 +2259,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2291,7 +2295,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Choose - + Click to select a local folder to sync. Hier klicken, um einen lokalen Ordner zum Synchronisieren auszuwählen. @@ -2311,7 +2315,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2338,7 +2342,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Create folder Ordner erstellen - + Enter the name of the new folder to be created below "%1": Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: @@ -2374,7 +2378,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass You are already syncing the subfolder %1 at %2. Sie synchronisieren bereits den Unterordner %1 bei %2. - + OCC::FolderWizardSelectiveSync @@ -2397,11 +2401,11 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Virtual files are not supported at the selected location Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. - + OCC::GeneralSettings @@ -2509,7 +2513,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf More Information - + Move removed files to trash Entfernte Dateien in den Papierkorb verschieben @@ -2645,14 +2649,14 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf stable Stabil - + OCC::GETFileJob Connection Timeout Zeitüberschreitung der Verbindung - + No E-Tag received from server, check Proxy/Gateway Kein E-Tag vom Server empfangen, bitte Proxy/Gateway überprüfen @@ -2668,7 +2672,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf We received an unexpected download Content-Length. Wir haben eine unerwartete Download-Content-Länge erhalten. - + OCC::GetOrCreatePublicLinkShare @@ -2679,7 +2683,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf %1 - + Password for share required Passwort für die Freigabe erforderlich @@ -2691,14 +2695,14 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Sharing error Fehler beim Teilen - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Hier klicken</a>, um von der Web-Oberfläche ein App-Passwort zu erhalten. - + Enter Password Passwort eingeben @@ -2710,7 +2714,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Reading from keychain failed with error: "%1" Lesen vom Schlüsselbund fehlgeschlagen mit Fehler: "%1" - + OCC::IgnoreListEditor @@ -2744,7 +2748,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Add a new ignore pattern: Neues Ignoriermuster hinzufügen - + Allow Deletion Löschen erlauben @@ -2780,7 +2784,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer Remove all Alle entfernen - + OCC::InvalidFilenameDialog @@ -2799,7 +2803,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer Could not rename local file. %1 Lokale Datei konnte nicht umbenannt werden. %1 - + Error Fehler @@ -2879,7 +2883,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer You don't have the permission to rename this file. Please ask the author of the file to rename it. Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich an den Autor der Datei, um sie umzubenennen. - + OCC::LegacyAccountSelectionDialog @@ -2901,7 +2905,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Lizensiert unter der GNU General Public License (GPL) Version 2.0 oder jeder neueren Version.</p> - + Close Schliessen @@ -2909,7 +2913,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer Legal notice Impressum - + OCC::LogBrowser @@ -2924,7 +2928,7 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfer Open folder Ordner öffnen - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2938,18 +2942,18 @@ Note that using any logging command line options will override this setting.Diese Einstellung bleibt über Client-Neustarts hinweg bestehen. Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollierung diese Einstellung außer Kraft setzt. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Datei "%1"<br/>kann nicht zum Schreiben geöffnet werden.<br/><br/>Die Protokolldatei kann <b>nicht</b> gespeichert werden!</nobr> - + Error Fehler - + OCC::Mac::FileProviderEditLocallyJob @@ -3043,7 +3047,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie SOCKS5 proxy SOCKS5-Proxy - + Upload Bandwidth Upload-Bandbreite @@ -3055,7 +3059,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Username for proxy server Benutzername für den Proxy-Server - + OCC::NSISUpdater @@ -3074,7 +3078,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Get update Aktualisierung durchführen - + New Version Available Eine neue Version ist verfügbar @@ -3094,7 +3098,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Update manually Manuell aktualisieren - + OCC::OCUpdater @@ -3145,7 +3149,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Update Check Aktualitätsprüfung - + Update status is unknown: Did not check for new updates. Aktualisierungsstatus unbekannt: Auf neue Aktualisierungen wurde nicht geprüft. @@ -3153,7 +3157,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie You are using the %1 update channel. Your installation is the latest version. Sie verwenden den Update-Kanal %1. Ihre Installation ist die neueste Version. - + OCC::OwncloudAdvancedSetupPage @@ -3181,7 +3185,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie In Finder's "Locations" sidebar section In der Finder-Seitenleiste unter "Orte" - + Local Sync Folder Lokaler Ordner für die Synchronisierung @@ -3209,14 +3213,14 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Warning: The local folder is not empty. Pick a resolution! Achtung: Der lokale Ordner ist nicht leer. Bitte wählen Sie eine entsprechende Lösung! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Sichere Verbindung zur Serveradresse <em>%1</em> fehlgeschlagen. Wie wollen Sie fortfahren?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Verbindung mit der angegebenen sicheren Serveradresse fehlgeschlagen. Wie möchten Sie fortfahren?</p></body></html> @@ -3236,14 +3240,14 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Select a different URL Andere URL wählen - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3308,7 +3312,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie macOS VFS for %1: Sync is running. macOS VFS für %1: Synchronisierung läuft. - + OCC::OwncloudHttpCredsPage @@ -3341,7 +3345,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Could not load certificate. Maybe wrong password? Das Zertifikat konnte nicht geladen werden. Vielleicht ein falsches Passwort? - + Server address does not seem to be valid Serveradresse scheint nicht gültig zu sein @@ -3350,7 +3354,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie %1 will be replaced with the application name Der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. - + OCC::OwncloudSetupWizard @@ -3361,7 +3365,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokaler Sync-Ordner %1 erstellt!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Erfolgreich mit %1 verbunden: %2 Version %3 (%4)</font><br/><br/> @@ -3469,7 +3473,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie failed. fehlgeschlagen. - + OCC::OwncloudWizard @@ -3511,7 +3515,7 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie Stay safe Bleiben Sie sicher - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3527,7 +3531,7 @@ Wenn Sie in diesen Modus wechseln, wird eine aktuell laufende Synchronisierung a Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu verwenden, melden Sie bitte alle auftretenden Probleme. - + OCC::PasswordInputDialog @@ -3580,7 +3584,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Error while reading the database Fehler beim Lesen der Datenbank - + File has extension reserved for virtual files. Die Endung der Datei ist für virtuelle Dateien reserviert. @@ -3712,7 +3716,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Upload of %1 exceeds %2 of space left in personal files. Hochladen von %1 übersteigt %2 des in den persönlichen Dateien verfügbaren Speicherplatzes. - + OCC::PropagateDirectory @@ -3731,7 +3735,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver File is currently in use Datei ist aktuell in Benutzung - + The folder %1 cannot be made read-only: %2 Der Ordner %1 kann nicht schreibgeschützt werden: %2 @@ -3739,7 +3743,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver unknown exception Unbekannter Ausnahmefehler - + OCC::PropagateDownloadFile @@ -3770,7 +3774,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver File has changed since discovery Datei ist seit der Entdeckung geändert worden - + File was deleted from server Die Datei wurde vom Server gelöscht @@ -3794,7 +3798,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver The file could not be downloaded completely. Die Datei konnte nicht vollständig heruntergeladen werden. - + OCC::PropagateItemJob @@ -3824,7 +3828,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - + The folder %1 cannot be made read-only: %2 Der Ordner %1 kann nicht schreibgeschützt werden: %2 @@ -3836,14 +3840,14 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver unknown exception Unbekannter Ausnahmefehler - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - + Could not remove %1 because of a local file name clash %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht entfernt werden @@ -3851,14 +3855,14 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Temporary error when removing local item removed from server. Vorübergehender Fehler beim Entfernen eines vom Server entfernten lokalen Objekts. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden @@ -3890,18 +3894,18 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 204, aber gesendet wurde "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3923,11 +3927,11 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". - + OCC::PropagateRemoteMove @@ -3954,7 +3958,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Error writing metadata to the database Fehler beim Schreiben der Metadaten in die Datenbank - + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung @@ -3962,7 +3966,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3989,7 +3993,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver File Removed (start upload) %1 Datei entfernt (starte Hochladen) %1 - + Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. @@ -4009,7 +4013,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Upload of %1 exceeds the quota for the folder Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners - + OCC::PropagateUploadFileNG @@ -4017,7 +4021,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver server error Auf die Datei kann auf dem Server nicht zugegriffen werden. - + Folder is not accessible on the server. server error Auf den Ordner kann auf dem Server nicht zugegriffen werden. @@ -4042,7 +4046,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Unexpected return code from server (%1) Unerwarteter Rückgabe-Code Antwort vom Server (%1) - + OCC::PropagateUploadFileV1 @@ -4068,7 +4072,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Password: Passwort: - + Proxy authentication required Proxy-Authentifzierung erforderlich @@ -4084,7 +4088,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Username: Benutzername: - + OCC::SelectiveSyncDialog @@ -4098,7 +4102,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver An error occurred while loading the list of sub folders. Es ist ein Fehler während des Ladens der Liste der Unterordner aufgetreten. - + Deselect remote folders you do not wish to synchronize. Entfernte Ordner abwählen, die nicht synchronisiert werden sollen. @@ -4118,18 +4122,18 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Size Größe - + OCC::ServerNotificationHandler Dismiss Ablehnen - + Reply Antworten - + OCC::sesSnackBar @@ -4140,11 +4144,11 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Success - + Warning Warnung - + OCC::SettingsDialog @@ -4156,7 +4160,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Account Konto - + General Allgemein @@ -4168,7 +4172,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Settings Einstellungen - + OCC::ShareeModel @@ -4176,7 +4180,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Globale Suchergebnisse @@ -4188,7 +4192,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Search globally Global suchen - + OCC::ShareManager @@ -4210,7 +4214,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Could not find local folder for %1 Lokaler Ordner für %1 nicht gefunden - + Internal link Interner Link @@ -4234,7 +4238,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Today Heute - + OCC::SocketApi @@ -4325,7 +4329,7 @@ Server antwortete mit Fehler: %2 Open in browser Im Browser öffnen - + Resharing this file is not allowed Weiterteilen dieser Datei ist nicht erlaubt @@ -4361,7 +4365,7 @@ Server antwortete mit Fehler: %2 Unlock file Datei entsperren - + OCC::SslButton @@ -4452,7 +4456,7 @@ Server antwortete mit Fehler: %2 The connection is not secure Die Verbindung ist nicht sicher - + This connection is NOT secure as it is not encrypted. @@ -4460,7 +4464,7 @@ Server antwortete mit Fehler: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4503,7 +4507,7 @@ Server antwortete mit Fehler: %2 Issuer: %1 Aussteller: %1 - + Organization: %1 Organisation: %1 @@ -4523,7 +4527,7 @@ Server antwortete mit Fehler: %2 with Certificate %1 mit Zertifikat %1 - + OCC::SyncEngine @@ -4534,7 +4538,7 @@ Server antwortete mit Fehler: %2 Cannot open the sync journal Synchronisierungsprotokoll kann nicht geöffnet werden - + Could not set file record to local DB: %1 Der Dateidatensatz konnte nicht in die lokale Datenbank eingestellt werden: %1 @@ -4583,7 +4587,7 @@ Server antwortete mit Fehler: %2 Using virtual files with suffix, but suffix is not set Virtuelle Dateien mit Endung verwenden, aber Endung ist nicht gesetzt. - + OCC::SyncStatusSummary @@ -4638,11 +4642,11 @@ Server antwortete mit Fehler: %2 Syncing file %1 of %2 Synchronisiere Datei %1 von %2 - + You need to accept the terms of service Die Nutzungsbedingungen müssen bestätigt werden - + OCC::Systray @@ -4682,18 +4686,18 @@ Server antwortete mit Fehler: %2 Resume sync for all Synchronisierung für alle fortsetzen - + Settings Einstellungen - + OCC::TermsOfServiceCheckWidget Copy Link Link kopieren - + Link copied to clipboard. Link in die Zwischenablage kopiert. @@ -4709,7 +4713,7 @@ Server antwortete mit Fehler: %2 Waiting for terms to be accepted Es wird auf die Bestätigung der Nutzungsbedingungen gewartet - + OCC::Theme @@ -4777,11 +4781,11 @@ Server antwortete mit Fehler: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4796,18 +4800,18 @@ Server antwortete mit Fehler: %2 Search has failed for '%1'. Error: %2 Suche nach '%1' fehlgeschlagen. Fehler: %2 - + Search has failed for '%2'. Suche nach '%2' fehlgeschlagen. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Element konnte nicht fertiggestellt werden - + Failed to unlock encrypted folder. Verschlüsselter Ordner konnte nicht entsperrt werden. @@ -4815,7 +4819,7 @@ Server antwortete mit Fehler: %2 Failed to update folder metadata. Ordner-Metadaten konnten nicht aktualisiert werden - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4870,7 +4874,7 @@ Server antwortete mit Fehler: %2 Quota Warning - %1 percent or more storage in use Kontingentwarnung – %1 Prozent oder mehr Speicher verwendet - + Quota is updated; %1 percent of the total space is used. Das Kontingent wird aktualisiert; %1 Prozent des gesamten Speicherplatzes wird genutzt. @@ -4890,7 +4894,7 @@ Server antwortete mit Fehler: %2 Trigger the migration Starten der Migration - + OCC::UserModel @@ -4913,11 +4917,11 @@ Server antwortete mit Fehler: %2 Remove account Konto entfernen - + Remove connection Verbindung entfernen - + OCC::UserStatusSelectorModel @@ -4927,7 +4931,7 @@ Server antwortete mit Fehler: %2 %n Tage - + %n hour(s) %n Stunde @@ -4993,7 +4997,7 @@ Server antwortete mit Fehler: %2 Today Heute - + OCC::Vfs @@ -5004,18 +5008,18 @@ Server antwortete mit Fehler: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist ein Netzlaufwerk. Es unterstützt keine virtuellen Dateien. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist kein NTFS-Dateisystem. Es unterstützt keine virtuellen Dateien. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 konnte nicht heruntergeladen werden. - + > More details > Weitere Details @@ -5039,7 +5043,7 @@ Server antwortete mit Fehler: %2 More details Weitere Details - + OCC::VfsSuffix @@ -5082,7 +5086,7 @@ Server antwortete mit Fehler: %2 Host your own server Eigenen Server betreiben - + Keep your data secure and under your control Halten Sie Ihre Daten sicher und unter Ihrer Kontrolle @@ -5094,7 +5098,7 @@ Server antwortete mit Fehler: %2 Sign up with provider Mit Provider anmelden - + OCC::WizardProxySettingsDialog @@ -5118,18 +5122,18 @@ Server antwortete mit Fehler: %2 SOCKS5 proxy SOCKS5-Proxy - + Username for proxy server Benutzername für den Proxyserver - + OwncloudAdvancedSetupPage &Local Folder &Lokaler Ordner - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Wenn diese Option gesetzt ist, werden bestehende Inhalte im lokalen Ordner gelöscht, um eine saubere Synchronisierung nur der Serverdaten zu ermöglichen.</p><p>Wählen Sie diese Option nicht, wenn die lokalen Inhalte auf den Server übertragen werden sollen.</p></body></html> @@ -5178,18 +5182,18 @@ Server antwortete mit Fehler: %2 Username Benutzername - + OwncloudHttpCredsPage &Password &Passwort - + &Username &Benutzername - + OwncloudSetupPage @@ -5275,7 +5279,7 @@ Server antwortete mit Fehler: %2 Updating end-to-end encryption metadata Aktualisieren der Metadaten für die Ende-zu-Ende-Verschlüsselung - + Updating local metadata Aktualisiere lokale Metadaten @@ -5295,7 +5299,7 @@ Server antwortete mit Fehler: %2 Virtual file created Virtuelle Datei erstellt - + ProxySettings @@ -5314,7 +5318,7 @@ Server antwortete mit Fehler: %2 No proxy Kein Proxy - + Note: proxy settings have no effects for accounts on localhost Hinweis: Proxy-Einstellungen haben keine Auswirkungen auf Konten auf localhost @@ -5330,7 +5334,7 @@ Server antwortete mit Fehler: %2 Use system proxy Systemproxy verwenden - + QObject @@ -5423,7 +5427,7 @@ Server antwortete mit Fehler: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Die Datei ist zu groß zum Hochladen. Wählen Sie eine kleinere Datei aus oder wenden Sie sich für Hilfe an Ihre Serveradministration. @@ -5527,7 +5531,7 @@ Server antwortete mit Fehler: %2 now jetzt - + ResolveConflictsDialog @@ -5550,7 +5554,7 @@ Server antwortete mit Fehler: %2 Cancel Abbrechen - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Wählen Sie, ob Sie die lokale Version, die Serverversion oder beide behalten möchten. Wenn Sie beide auswählen, wird dem Namen der lokalen Datei eine Nummer hinzugefügt. @@ -5562,7 +5566,7 @@ Server antwortete mit Fehler: %2 Solve sync conflicts Synchronisationskonflikte lösen - + SesErrorBox @@ -5580,11 +5584,11 @@ Server antwortete mit Fehler: %2 Open local or team folders Lokale Ordner oder Team-Ordner öffnen - + Website - + ShareDelegate @@ -5618,7 +5622,7 @@ Server antwortete mit Fehler: %2 Copy share link Freigabe-Link kopieren - + Custom Permissions @@ -5658,7 +5662,7 @@ Server antwortete mit Fehler: %2 View only Nur anzeigen - + ShareeSearchField @@ -5696,11 +5700,11 @@ Server antwortete mit Fehler: %2 Sharing is disabled. Teilen ist deaktiviert. - + This item cannot be shared. Dieses Element kann nicht geteilt werden - + SyncJournalDb @@ -5714,7 +5718,7 @@ Server antwortete mit Fehler: %2 Open browser Browser öffnen - + Resolve conflicts Konflikte lösen @@ -5722,7 +5726,7 @@ Server antwortete mit Fehler: %2 Sync now Jetzt synchronisieren - + TalkReplyTextField @@ -5744,11 +5748,11 @@ Server antwortete mit Fehler: %2 Switch to your browser to accept the terms of service Zum Browser wechseln, um die Nutzungsbedingungen zu bestätigen - + Terms of Service Nutzungsbedingungen - + theme @@ -5771,7 +5775,7 @@ Server antwortete mit Fehler: %2 Sync is paused Synchronisierung ist angehalten. - + Sync is running Synchronisierung läuft @@ -5791,7 +5795,7 @@ Server antwortete mit Fehler: %2 Waiting to start syncing Warte auf Beginn der Synchronisierung. - + TrayFoldersMenuButton @@ -5829,7 +5833,7 @@ Server antwortete mit Fehler: %2 Account switcher and settings menu Konto-Umschalter und Einstellungsmenü - + Add account Konto hinzufügen @@ -5865,7 +5869,7 @@ Server antwortete mit Fehler: %2 Settings Einstellungen - + TrayWindowHeader @@ -5876,11 +5880,11 @@ Server antwortete mit Fehler: %2 Open %1 in browser %1 im Browser öffnen - + Open local or team folders Lokale Ordner oder Team-Ordner öffnen - + TrayWindowHeaderBar @@ -5891,7 +5895,7 @@ Server antwortete mit Fehler: %2 Open %1 in browser %1 im Browser öffnen - + Open Nextcloud in browser @@ -5903,7 +5907,7 @@ Server antwortete mit Fehler: %2 Website - + UnifiedSearchInputContainer @@ -5971,18 +5975,18 @@ Server antwortete mit Fehler: %2 Remove account Konto entfernen - + Switch to account Zu Konto wechseln - + UserStatusMessageView Apply Anwenden - + Cancel Abbrechen @@ -6002,7 +6006,7 @@ Server antwortete mit Fehler: %2 What is your status? Wie ist Ihr Status? - + UserStatusSetStatusView @@ -6048,7 +6052,7 @@ Server antwortete mit Fehler: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6110,7 +6114,7 @@ Server antwortete mit Fehler: %2 %n Jahre - + utility @@ -6137,7 +6141,7 @@ Server antwortete mit Fehler: %2 Free up local space Lokalen Speicherplatz freigeben - + Make always available locally Immer lokal verfügbar machen @@ -6153,7 +6157,7 @@ Server antwortete mit Fehler: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Fehler beim Öffnen der E-Mail-Anwendung zum Erstellen einer neuen Nachricht. Vielleicht ist keine Standard-E-Mail Anwendung eingerichtet? - + ValidateChecksumHeader diff --git a/translations/client_en.ts b/translations/client_en.ts index 5fe201fc57d33..616b5e8b4410c 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -6,22 +6,22 @@ In %1 - + Open %1 locally - + ActivityItemContent Dismiss - + Open file details - + ActivityList @@ -32,11 +32,11 @@ No activities yet - + Scroll to top - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification - + Talk notification caller avatar - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client - + Recently changed @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu - + Add account @@ -185,7 +185,7 @@ Settings - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload - + Remove local copies - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment - + Virtual files settings - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … - + Local storage use - + FileProviderSyncStatus @@ -295,7 +295,7 @@ macOS may ignore or delay this request. - + Request sync @@ -303,18 +303,18 @@ macOS may ignore or delay this request. Syncing - + FileSystem Could not remove folder "%1" - + Error removing "%1": %2 - + Flow2AuthWidget @@ -329,7 +329,7 @@ macOS may ignore or delay this request. Copy Link - + Logo @@ -337,7 +337,7 @@ macOS may ignore or delay this request. Switch to your browser to connect your account - + FolderWizardSelectiveSync @@ -355,7 +355,7 @@ macOS may ignore or delay this request. &Choose - + Add Folder Sync @@ -367,7 +367,7 @@ macOS may ignore or delay this request. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -378,7 +378,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder @@ -398,7 +398,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + MainWindow @@ -409,11 +409,11 @@ macOS may ignore or delay this request. New activities - + Unified search results list - + nextcloudTheme::aboutInfo() @@ -431,11 +431,11 @@ macOS may ignore or delay this request. The server enforces strict transport security and does not accept untrusted certificates. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - + OCC::Account @@ -466,7 +466,7 @@ Should the account be imported? Could not import accounts from legacy client configuration. - + Import @@ -478,7 +478,7 @@ Should the account be imported? Skip - + OCC::AccountSettings @@ -633,7 +633,7 @@ Should the account be imported? Expand Memory - + Folder creation failed @@ -828,7 +828,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + OCC::AccountSetupFromCommandLineJob @@ -924,7 +924,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) - + Certificate password: @@ -940,7 +940,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. - + OCC::Application @@ -991,7 +991,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. - + deleting @@ -1009,14 +1009,14 @@ Would you like to do this now? older software version - + OCC::AuthenticationDialog &Password: - + &Username: @@ -1028,7 +1028,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1054,12 +1054,12 @@ Would you like to do this now? The file %1 is currently in use - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + OCC::BulkPropagatorJob @@ -1102,7 +1102,7 @@ Would you like to do this now? Restoration failed: %1 - + The file %1 is currently in use @@ -1110,7 +1110,7 @@ Would you like to do this now? The local file was removed during sync. - + OCC::CaseClashConflictSolver @@ -1137,11 +1137,11 @@ Would you like to do this now? Filename contains trailing spaces. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. - + OCC::CaseClashFilenameDialog @@ -1172,7 +1172,7 @@ Would you like to do this now? Filename contains illegal characters: %1 - + Filename contains leading and trailing spaces. @@ -1228,7 +1228,7 @@ Would you like to do this now? today - + OCC::CleanupPollsJob @@ -1246,7 +1246,7 @@ Would you like to do this now? Enter E2E passphrase - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" @@ -1263,7 +1263,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> - + OCC::ConflictDialog @@ -1302,7 +1302,7 @@ Would you like to do this now? Keep server version - + Local version @@ -1330,14 +1330,14 @@ Would you like to do this now? today - + OCC::ConflictSolver Confirm deletion - + Do you want to delete the directory <i>%1</i> and all its contents permanently? @@ -1355,7 +1355,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1379,11 +1379,11 @@ Would you like to do this now? The provided credentials are not correct - + Timeout - + OCC::DataProtectionPage @@ -1402,7 +1402,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1444,11 +1448,11 @@ Would you like to do this now? Error while canceling deletion of %1 - + Error while canceling deletion of a file - + OCC::DiscoverySingleDirectoryJob @@ -1459,7 +1463,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. - + Server error: PROPFIND reply is not XML formatted! @@ -1467,7 +1471,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + OCC::DiscoverySingleLocalDirectoryJob @@ -1486,11 +1490,11 @@ Would you like to do this now? Error while reading directory %1 - + Filename encoding is not valid - + OCC::EditLocallyJob @@ -1533,7 +1537,7 @@ Would you like to do this now? File %1 could not be locked. - + File %1 now locked. @@ -1553,7 +1557,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! - + OCC::EditLocallyManager @@ -1571,7 +1575,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. - + Could not find an account for local editing. @@ -1591,7 +1595,7 @@ Would you like to do this now? Please try again. - + OCC::EncryptedFolderMetadataHandler @@ -1696,7 +1700,7 @@ This can be an issue with your OpenSSL libraries. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. @@ -1704,7 +1708,7 @@ This can be an issue with your OpenSSL libraries. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + OCC::Flow2AuthWidget @@ -1735,7 +1739,7 @@ This can be an issue with your OpenSSL libraries. Switch to your browser to connect your account - + Unable to open the Browser, please copy the link to your Browser. @@ -1743,7 +1747,7 @@ This can be an issue with your OpenSSL libraries. Waiting for authorization - + OCC::Folder @@ -1907,7 +1911,7 @@ This means that the synchronization client might not upload local changes immedi Restore Files from Server - + Restore Files to Server @@ -1939,7 +1943,7 @@ This means that the synchronization client might not upload local changes immedi Would you like to stop syncing this folder? - + OCC::FolderCreationDialog @@ -1950,7 +1954,7 @@ This means that the synchronization client might not upload local changes immedi Could not create a folder! Check your write permissions. - + Create new folder @@ -1966,14 +1970,14 @@ This means that the synchronization client might not upload local changes immedi Folder already exists - + OCC::FolderMan %1 (Sync is paused) - + (backup %1) @@ -2086,7 +2090,7 @@ For advanced users: this issue might be related to multiple sync database files Waiting to start syncing. - + OCC::FolderStatusDelegate @@ -2097,11 +2101,11 @@ For advanced users: this issue might be related to multiple sync database files File - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2182,7 +2186,7 @@ For advanced users: this issue might be related to multiple sync database files Preparing to sync … - + Signed out @@ -2230,7 +2234,7 @@ For advanced users: this issue might be related to multiple sync database files ↓ %1/s - + OCC::FolderWatcher @@ -2266,7 +2270,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Click to select a local folder to sync. @@ -2286,7 +2290,7 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2313,7 +2317,7 @@ For advanced users: this issue might be related to multiple sync database files Create folder - + Enter the name of the new folder to be created below "%1": @@ -2349,7 +2353,7 @@ For advanced users: this issue might be related to multiple sync database files You are already syncing the subfolder %1 at %2. - + OCC::FolderWizardSelectiveSync @@ -2372,11 +2376,11 @@ For advanced users: this issue might be related to multiple sync database files Virtual files are not supported at the selected location - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - + OCC::GeneralSettings @@ -2479,7 +2483,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Move removed files to trash @@ -2614,14 +2618,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp stable - + OCC::GETFileJob Connection Timeout - + No E-Tag received from server, check Proxy/Gateway @@ -2637,7 +2641,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp We received an unexpected download Content-Length. - + OCC::GetOrCreatePublicLinkShare @@ -2646,7 +2650,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - + Password for share required @@ -2658,14 +2662,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp Sharing error - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. - + Enter Password @@ -2677,7 +2681,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Reading from keychain failed with error: "%1" - + OCC::IgnoreListEditor @@ -2711,7 +2715,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: - + Allow Deletion @@ -2745,7 +2749,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Remove all - + OCC::InvalidFilenameDialog @@ -2764,7 +2768,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Could not rename local file. %1 - + Error @@ -2844,7 +2848,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from You don't have the permission to rename this file. Please ask the author of the file to rename it. - + OCC::LegacyAccountSelectionDialog @@ -2866,7 +2870,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - + Close @@ -2874,7 +2878,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Legal notice - + OCC::LogBrowser @@ -2889,7 +2893,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Open folder - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2900,18 +2904,18 @@ If enabled, logs will be written to %1 Note that using any logging command line options will override this setting. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> - + Error - + OCC::Mac::FileProviderEditLocallyJob @@ -3005,7 +3009,7 @@ Note that using any logging command line options will override this setting.SOCKS5 proxy - + Upload Bandwidth @@ -3017,7 +3021,7 @@ Note that using any logging command line options will override this setting.Username for proxy server - + OCC::NSISUpdater @@ -3036,7 +3040,7 @@ Note that using any logging command line options will override this setting.Get update - + New Version Available @@ -3056,7 +3060,7 @@ Note that using any logging command line options will override this setting.Update manually - + OCC::OCUpdater @@ -3107,7 +3111,7 @@ Note that using any logging command line options will override this setting.Update Check - + Update status is unknown: Did not check for new updates. @@ -3115,7 +3119,7 @@ Note that using any logging command line options will override this setting.You are using the %1 update channel. Your installation is the latest version. - + OCC::OwncloudAdvancedSetupPage @@ -3143,7 +3147,7 @@ Note that using any logging command line options will override this setting.In Finder's "Locations" sidebar section - + Local Sync Folder @@ -3171,14 +3175,14 @@ Note that using any logging command line options will override this setting.Warning: The local folder is not empty. Pick a resolution! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> @@ -3198,14 +3202,14 @@ Note that using any logging command line options will override this setting.Select a different URL - + OCC::ownCloudGui %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) @@ -3270,7 +3274,7 @@ Note that using any logging command line options will override this setting.macOS VFS for %1: Sync is running. - + OCC::OwncloudHttpCredsPage @@ -3303,7 +3307,7 @@ Note that using any logging command line options will override this setting.Could not load certificate. Maybe wrong password? - + Server address does not seem to be valid @@ -3312,7 +3316,7 @@ Note that using any logging command line options will override this setting.%1 will be replaced with the application name - + OCC::OwncloudSetupWizard @@ -3323,7 +3327,7 @@ Note that using any logging command line options will override this setting.<font color="green"><b>Local sync folder %1 successfully created!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> @@ -3431,7 +3435,7 @@ Note that using any logging command line options will override this setting.failed. - + OCC::OwncloudWizard @@ -3473,7 +3477,7 @@ Note that using any logging command line options will override this setting.Stay safe - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3483,7 +3487,7 @@ Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. - + OCC::PasswordInputDialog @@ -3536,7 +3540,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error while reading the database - + File has extension reserved for virtual files. @@ -3668,7 +3672,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds %2 of space left in personal files. - + OCC::PropagateDirectory @@ -3687,7 +3691,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File is currently in use - + The folder %1 cannot be made read-only: %2 @@ -3695,7 +3699,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception - + OCC::PropagateDownloadFile @@ -3726,7 +3730,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File has changed since discovery - + File was deleted from server @@ -3750,7 +3754,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file could not be downloaded completely. - + OCC::PropagateItemJob @@ -3780,7 +3784,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use - + The folder %1 cannot be made read-only: %2 @@ -3792,14 +3796,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB - + Could not remove %1 because of a local file name clash @@ -3807,14 +3811,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss Temporary error when removing local item removed from server. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB - + Could not get file %1 from local DB @@ -3846,18 +3850,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3879,11 +3883,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + OCC::PropagateRemoteMove @@ -3910,7 +3914,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error writing metadata to the database - + The file %1 is currently in use @@ -3918,7 +3922,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3945,7 +3949,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File Removed (start upload) %1 - + Local file changed during sync. @@ -3965,7 +3969,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds the quota for the folder - + OCC::PropagateUploadFileNG @@ -3973,7 +3977,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss server error - + Folder is not accessible on the server. server error @@ -3998,7 +4002,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Unexpected return code from server (%1) - + OCC::PropagateUploadFileV1 @@ -4024,7 +4028,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Password: - + Proxy authentication required @@ -4040,7 +4044,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Username: - + OCC::SelectiveSyncDialog @@ -4054,7 +4058,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss An error occurred while loading the list of sub folders. - + Deselect remote folders you do not wish to synchronize. @@ -4074,18 +4078,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss Size - + OCC::ServerNotificationHandler Dismiss - + Reply - + OCC::sesSnackBar @@ -4096,11 +4100,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + Warning - + OCC::SettingsDialog @@ -4112,7 +4116,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Account - + General @@ -4124,7 +4128,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Settings - + OCC::ShareeModel @@ -4132,7 +4136,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss sharee (shareWithAdditionalInfo) - + Global search results @@ -4144,7 +4148,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Search globally - + OCC::ShareManager @@ -4166,7 +4170,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Could not find local folder for %1 - + Internal link @@ -4190,7 +4194,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Today - + OCC::SocketApi @@ -4279,7 +4283,7 @@ Server replied with error: %2 Open in browser - + Resharing this file is not allowed @@ -4315,7 +4319,7 @@ Server replied with error: %2 Unlock file - + OCC::SslButton @@ -4406,7 +4410,7 @@ Server replied with error: %2 The connection is not secure - + This connection is NOT secure as it is not encrypted. @@ -4414,7 +4418,7 @@ Server replied with error: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4457,7 +4461,7 @@ Server replied with error: %2 Issuer: %1 - + Organization: %1 @@ -4477,7 +4481,7 @@ Server replied with error: %2 with Certificate %1 - + OCC::SyncEngine @@ -4488,7 +4492,7 @@ Server replied with error: %2 Cannot open the sync journal - + Could not set file record to local DB: %1 @@ -4537,7 +4541,7 @@ Server replied with error: %2 Using virtual files with suffix, but suffix is not set - + OCC::SyncStatusSummary @@ -4592,11 +4596,11 @@ Server replied with error: %2 Syncing file %1 of %2 - + You need to accept the terms of service - + OCC::Systray @@ -4636,18 +4640,18 @@ Server replied with error: %2 Resume sync for all - + Settings - + OCC::TermsOfServiceCheckWidget Copy Link - + Link copied to clipboard. @@ -4663,7 +4667,7 @@ Server replied with error: %2 Waiting for terms to be accepted - + OCC::Theme @@ -4731,11 +4735,11 @@ Server replied with error: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4750,18 +4754,18 @@ Server replied with error: %2 Search has failed for '%1'. Error: %2 - + Search has failed for '%2'. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - + Failed to unlock encrypted folder. @@ -4769,7 +4773,7 @@ Server replied with error: %2 Failed to update folder metadata. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4824,7 +4828,7 @@ Server replied with error: %2 Quota Warning - %1 percent or more storage in use - + Quota is updated; %1 percent of the total space is used. @@ -4844,7 +4848,7 @@ Server replied with error: %2 Trigger the migration - + OCC::UserModel @@ -4867,11 +4871,11 @@ Server replied with error: %2 Remove account - + Remove connection - + OCC::UserStatusSelectorModel @@ -4881,7 +4885,7 @@ Server replied with error: %2 %n days - + %n hour(s) %n hour @@ -4947,7 +4951,7 @@ Server replied with error: %2 Today - + OCC::Vfs @@ -4958,18 +4962,18 @@ Server replied with error: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. - + > More details @@ -4993,7 +4997,7 @@ Server replied with error: %2 More details - + OCC::VfsSuffix @@ -5036,7 +5040,7 @@ Server replied with error: %2 Host your own server - + Keep your data secure and under your control @@ -5048,7 +5052,7 @@ Server replied with error: %2 Sign up with provider - + OCC::WizardProxySettingsDialog @@ -5072,18 +5076,18 @@ Server replied with error: %2 SOCKS5 proxy - + Username for proxy server - + OwncloudAdvancedSetupPage &Local Folder - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> @@ -5132,18 +5136,18 @@ Server replied with error: %2 Username - + OwncloudHttpCredsPage &Password - + &Username - + OwncloudSetupPage @@ -5229,7 +5233,7 @@ Server replied with error: %2 Updating end-to-end encryption metadata - + Updating local metadata @@ -5249,7 +5253,7 @@ Server replied with error: %2 Virtual file created - + ProxySettings @@ -5268,7 +5272,7 @@ Server replied with error: %2 No proxy - + Note: proxy settings have no effects for accounts on localhost @@ -5284,7 +5288,7 @@ Server replied with error: %2 Use system proxy - + QObject @@ -5377,7 +5381,7 @@ Server replied with error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5481,7 +5485,7 @@ Server replied with error: %2 now - + ResolveConflictsDialog @@ -5504,7 +5508,7 @@ Server replied with error: %2 Cancel - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. @@ -5516,7 +5520,7 @@ Server replied with error: %2 Solve sync conflicts - + SesErrorBox @@ -5534,11 +5538,11 @@ Server replied with error: %2 Open local or team folders - + Website - + ShareDelegate @@ -5572,7 +5576,7 @@ Server replied with error: %2 Copy share link - + Custom Permissions @@ -5612,7 +5616,7 @@ Server replied with error: %2 View only - + ShareeSearchField @@ -5650,11 +5654,11 @@ Server replied with error: %2 Sharing is disabled. - + This item cannot be shared. - + SyncJournalDb @@ -5668,7 +5672,7 @@ Server replied with error: %2 Open browser - + Resolve conflicts @@ -5676,7 +5680,7 @@ Server replied with error: %2 Sync now - + TalkReplyTextField @@ -5698,11 +5702,11 @@ Server replied with error: %2 Switch to your browser to accept the terms of service - + Terms of Service - + theme @@ -5725,7 +5729,7 @@ Server replied with error: %2 Sync is paused - + Sync is running @@ -5745,7 +5749,7 @@ Server replied with error: %2 Waiting to start syncing - + TrayFoldersMenuButton @@ -5783,7 +5787,7 @@ Server replied with error: %2 Account switcher and settings menu - + Add account @@ -5819,7 +5823,7 @@ Server replied with error: %2 Settings - + TrayWindowHeader @@ -5830,11 +5834,11 @@ Server replied with error: %2 Open %1 in browser - + Open local or team folders - + TrayWindowHeaderBar @@ -5845,7 +5849,7 @@ Server replied with error: %2 Open %1 in browser - + Open Nextcloud in browser @@ -5857,7 +5861,7 @@ Server replied with error: %2 Website - + UnifiedSearchInputContainer @@ -5925,18 +5929,18 @@ Server replied with error: %2 Remove account - + Switch to account - + UserStatusMessageView Apply - + Cancel @@ -5956,7 +5960,7 @@ Server replied with error: %2 What is your status? - + UserStatusSetStatusView @@ -6002,7 +6006,7 @@ Server replied with error: %2 %1 %2 - + %L1 B @@ -6064,7 +6068,7 @@ Server replied with error: %2 %n years - + utility @@ -6091,7 +6095,7 @@ Server replied with error: %2 Free up local space - + Make always available locally @@ -6107,7 +6111,7 @@ Server replied with error: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? - + ValidateChecksumHeader diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index e88e551e97dca..7c729a703f3d9 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -6,22 +6,22 @@ In %1 In %1 - + Open %1 locally Open %1 locally - + ActivityItemContent Dismiss Dismiss - + Open file details Open file details - + ActivityList @@ -32,11 +32,11 @@ No activities yet No activities yet - + Scroll to top Scroll to top - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Decline Talk call notification - + Talk notification caller avatar Talk notification caller avatar - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Quit sync client - + Recently changed Recently changed @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Syncing %1 of %2 (%3 left) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Account switcher and settings menu - + Add account Add account @@ -185,7 +185,7 @@ Settings Settings - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Reload - + Remove local copies Remove local copies - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Reset virtual files environment - + Virtual files settings Virtual files settings - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Free up space … - + Local storage use Local storage use - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Request a sync of changes for the VFS environment. macOS may ignore or delay this request. - + Request sync Request sync @@ -304,18 +304,18 @@ macOS may ignore or delay this request. Syncing Syncing - + FileSystem Could not remove folder "%1" Could not remove folder "%1" - + Error removing "%1": %2 Error removing "%1": %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS may ignore or delay this request. Copy Link Copy Link - + Logo Logo @@ -338,7 +338,7 @@ macOS may ignore or delay this request. Switch to your browser to connect your account Switch to your browser to connect your account - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS may ignore or delay this request. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS may ignore or delay this request. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Create folder @@ -399,7 +399,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS may ignore or delay this request. New activities New activities - + Unified search results list Unified search results list - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS may ignore or delay this request. The server enforces strict transport security and does not accept untrusted certificates. The server enforces strict transport security and does not accept untrusted certificates. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - + OCC::Account @@ -468,7 +468,7 @@ Should the account be imported? Could not import accounts from legacy client configuration. Could not import accounts from legacy client configuration. - + Import Import @@ -480,7 +480,7 @@ Should the account be imported? Skip Skip - + OCC::AccountSettings @@ -635,7 +635,7 @@ Should the account be imported? Expand Memory - + Folder creation failed Folder creation failed @@ -837,7 +837,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + OCC::AccountSetupFromCommandLineJob @@ -933,7 +933,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) Certificate files (*.p12 *.pfx) - + Certificate password: Certificate password: @@ -949,7 +949,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. This server probably requires a SSL client certificate. - + OCC::Application @@ -1001,7 +1001,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. - + deleting deleting @@ -1019,14 +1019,14 @@ Would you like to do this now? older software version older - + OCC::AuthenticationDialog &Password: &Password: - + &Username: &Username: @@ -1038,7 +1038,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. Enter username and password for "%1" at %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1064,12 +1064,12 @@ Would you like to do this now? The file %1 is currently in use The file %1 is currently in use - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Unable to update metadata of new file %1. - + OCC::BulkPropagatorJob @@ -1112,7 +1112,7 @@ Would you like to do this now? Restoration failed: %1 Restoration failed: %1 - + The file %1 is currently in use The file %1 is currently in use @@ -1120,7 +1120,7 @@ Would you like to do this now? The local file was removed during sync. The local file was removed during sync. - + OCC::CaseClashConflictSolver @@ -1147,11 +1147,11 @@ Would you like to do this now? Filename contains trailing spaces. Filename contains trailing spaces. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. You don't have the permission to rename this file. Please ask the author of the file to rename it. - + OCC::CaseClashFilenameDialog @@ -1182,7 +1182,7 @@ Would you like to do this now? Filename contains illegal characters: %1 Filename contains illegal characters: %1 - + Filename contains leading and trailing spaces. Filename contains leading and trailing spaces. @@ -1238,7 +1238,7 @@ Would you like to do this now? today today - + OCC::CleanupPollsJob @@ -1256,7 +1256,7 @@ Would you like to do this now? Enter E2E passphrase Enter E2E passphrase - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Input PIN code @@ -1273,7 +1273,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> - + OCC::ConflictDialog @@ -1312,7 +1312,7 @@ Would you like to do this now? Keep server version Keep server version - + Local version Local version @@ -1340,14 +1340,14 @@ Would you like to do this now? today today - + OCC::ConflictSolver Confirm deletion Confirm deletion - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Do you want to delete the directory <i>%1</i> and all its contents permanently? @@ -1367,7 +1367,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1391,11 +1391,11 @@ Would you like to do this now? The provided credentials are not correct The provided credentials are not correct - + Timeout Timeout - + OCC::DataProtectionPage @@ -1414,7 +1414,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1456,11 +1460,11 @@ Would you like to do this now? Error while canceling deletion of %1 Error while canceling deletion of %1 - + Error while canceling deletion of a file Error while canceling deletion of a file - + OCC::DiscoverySingleDirectoryJob @@ -1471,7 +1475,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. Encrypted metadata setup error: initial signature from server is empty. - + Server error: PROPFIND reply is not XML formatted! Server error: PROPFIND reply is not XML formatted! @@ -1479,7 +1483,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + OCC::DiscoverySingleLocalDirectoryJob @@ -1498,11 +1502,11 @@ Would you like to do this now? Error while reading directory %1 Error while reading directory %1 - + Filename encoding is not valid Filename encoding is not valid - + OCC::EditLocallyJob @@ -1545,7 +1549,7 @@ Would you like to do this now? File %1 could not be locked. File %1 could not be locked. - + File %1 now locked. File %1 now locked. @@ -1565,7 +1569,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! Server error: PROPFIND reply is not XML formatted! - + OCC::EditLocallyManager @@ -1583,7 +1587,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. An error occurred trying to verify the request to edit locally. - + Could not find an account for local editing. Could not find an account for local editing. @@ -1603,7 +1607,7 @@ Would you like to do this now? Please try again. Please try again. - + OCC::EncryptedFolderMetadataHandler @@ -1709,7 +1713,7 @@ This can be an issue with your OpenSSL libraries. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. @@ -1717,7 +1721,7 @@ This can be an issue with your OpenSSL libraries. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + OCC::Flow2AuthWidget @@ -1748,7 +1752,7 @@ This can be an issue with your OpenSSL libraries. Switch to your browser to connect your account Switch to your browser to connect your account - + Unable to open the Browser, please copy the link to your Browser. Unable to open the Browser, please copy the link to your Browser. @@ -1756,7 +1760,7 @@ This can be an issue with your OpenSSL libraries. Waiting for authorization Waiting for authorization - + OCC::Folder @@ -1929,7 +1933,7 @@ This means that the synchronization client might not upload local changes immedi Restore Files from Server Restore Files from Server - + Restore Files to Server Restore Files to Server @@ -1961,7 +1965,7 @@ This means that the synchronization client might not upload local changes immedi Would you like to stop syncing this folder? Would you like to stop syncing this folder? - + OCC::FolderCreationDialog @@ -1972,7 +1976,7 @@ This means that the synchronization client might not upload local changes immedi Could not create a folder! Check your write permissions. Could not create a folder! Check your write permissions. - + Create new folder Create new folder @@ -1988,14 +1992,14 @@ This means that the synchronization client might not upload local changes immedi Folder already exists Folder already exists - + OCC::FolderMan %1 (Sync is paused) %1 (Sync is paused) - + (backup %1) @@ -2111,7 +2115,7 @@ For advanced users: this issue might be related to multiple sync database files Waiting to start syncing. Waiting to start syncing. - + OCC::FolderStatusDelegate @@ -2122,11 +2126,11 @@ For advanced users: this issue might be related to multiple sync database files File File - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2207,7 +2211,7 @@ For advanced users: this issue might be related to multiple sync database files Preparing to sync … Preparing to sync … - + Signed out Signed out @@ -2255,7 +2259,7 @@ For advanced users: this issue might be related to multiple sync database files ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2291,7 +2295,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Click to select a local folder to sync. Click to select a local folder to sync. @@ -2311,7 +2315,7 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2338,7 +2342,7 @@ For advanced users: this issue might be related to multiple sync database files Create folder Create folder - + Enter the name of the new folder to be created below "%1": Enter the name of the new folder to be created below "%1": @@ -2374,7 +2378,7 @@ For advanced users: this issue might be related to multiple sync database files You are already syncing the subfolder %1 at %2. You are already syncing the subfolder %1 at %2. - + OCC::FolderWizardSelectiveSync @@ -2397,11 +2401,11 @@ For advanced users: this issue might be related to multiple sync database files Virtual files are not supported at the selected location Virtual files are not supported at the selected location - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. - + OCC::GeneralSettings @@ -2509,7 +2513,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Move removed files to trash Move removed files to trash @@ -2646,14 +2650,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp stable stable - + OCC::GETFileJob Connection Timeout Connection Timeout - + No E-Tag received from server, check Proxy/Gateway No E-Tag received from server, check Proxy/Gateway @@ -2669,7 +2673,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp We received an unexpected download Content-Length. We received an unexpected download Content-Length. - + OCC::GetOrCreatePublicLinkShare @@ -2680,7 +2684,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - + Password for share required Password for share required @@ -2692,14 +2696,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp Sharing error Sharing error - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Click here</a> to request an app password from the web interface. - + Enter Password Enter Password @@ -2711,7 +2715,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Reading from keychain failed with error: "%1" Reading from keychain failed with error: "%1" - + OCC::IgnoreListEditor @@ -2745,7 +2749,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: Add a new ignore pattern: - + Allow Deletion Allow Deletion @@ -2781,7 +2785,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Remove all Remove all - + OCC::InvalidFilenameDialog @@ -2800,7 +2804,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Could not rename local file. %1 Could not rename local file. %1 - + Error Error @@ -2880,7 +2884,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from You don't have the permission to rename this file. Please ask the author of the file to rename it. You don't have the permission to rename this file. Please ask the author of the file to rename it. - + OCC::LegacyAccountSelectionDialog @@ -2902,7 +2906,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> - + Close Close @@ -2910,7 +2914,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Legal notice Legal notice - + OCC::LogBrowser @@ -2925,7 +2929,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Open folder Open folder - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2939,18 +2943,18 @@ Note that using any logging command line options will override this setting.This setting persists across client restarts. Note that using any logging command line options will override this setting. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> - + Error Error - + OCC::Mac::FileProviderEditLocallyJob @@ -3044,7 +3048,7 @@ Note that using any logging command line options will override this setting.SOCKS5 proxy SOCKS5 proxy - + Upload Bandwidth Upload Bandwidth @@ -3056,7 +3060,7 @@ Note that using any logging command line options will override this setting.Username for proxy server Username for proxy server - + OCC::NSISUpdater @@ -3075,7 +3079,7 @@ Note that using any logging command line options will override this setting.Get update Get update - + New Version Available New Version Available @@ -3095,7 +3099,7 @@ Note that using any logging command line options will override this setting.Update manually Update manually - + OCC::OCUpdater @@ -3146,7 +3150,7 @@ Note that using any logging command line options will override this setting.Update Check Update Check - + Update status is unknown: Did not check for new updates. Update status is unknown: Did not check for new updates. @@ -3154,7 +3158,7 @@ Note that using any logging command line options will override this setting.You are using the %1 update channel. Your installation is the latest version. You are using the %1 update channel. Your installation is the latest version. - + OCC::OwncloudAdvancedSetupPage @@ -3182,7 +3186,7 @@ Note that using any logging command line options will override this setting.In Finder's "Locations" sidebar section In Finder's "Locations" sidebar section - + Local Sync Folder Local Sync Folder @@ -3210,14 +3214,14 @@ Note that using any logging command line options will override this setting.Warning: The local folder is not empty. Pick a resolution! Warning: The local folder is not empty. Pick a resolution! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> @@ -3237,14 +3241,14 @@ Note that using any logging command line options will override this setting.Select a different URL Select a different URL - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3309,7 +3313,7 @@ Note that using any logging command line options will override this setting.macOS VFS for %1: Sync is running. macOS VFS for %1: Sync is running. - + OCC::OwncloudHttpCredsPage @@ -3342,7 +3346,7 @@ Note that using any logging command line options will override this setting.Could not load certificate. Maybe wrong password? Could not load certificate. Maybe wrong password? - + Server address does not seem to be valid Server address does not seem to be valid @@ -3351,7 +3355,7 @@ Note that using any logging command line options will override this setting.%1 will be replaced with the application name The link to your %1 web interface when you open it in the browser. - + OCC::OwncloudSetupWizard @@ -3362,7 +3366,7 @@ Note that using any logging command line options will override this setting.<font color="green"><b>Local sync folder %1 successfully created!</b></font> <font colour="green"><b>Local sync folder %1 successfully created!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font colour="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> @@ -3470,7 +3474,7 @@ Note that using any logging command line options will override this setting.failed. failed. - + OCC::OwncloudWizard @@ -3512,7 +3516,7 @@ Note that using any logging command line options will override this setting.Stay safe Stay safe - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3528,7 +3532,7 @@ Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. - + OCC::PasswordInputDialog @@ -3581,7 +3585,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error while reading the database Error while reading the database - + File has extension reserved for virtual files. File has extension reserved for virtual files. @@ -3713,7 +3717,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds %2 of space left in personal files. Upload of %1 exceeds %2 of space left in personal files. - + OCC::PropagateDirectory @@ -3732,7 +3736,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File is currently in use File is currently in use - + The folder %1 cannot be made read-only: %2 The folder %1 cannot be made read-only: %2 @@ -3740,7 +3744,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception unknown exception - + OCC::PropagateDownloadFile @@ -3771,7 +3775,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File has changed since discovery File has changed since discovery - + File was deleted from server File was deleted from server @@ -3795,7 +3799,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file could not be downloaded completely. The file could not be downloaded completely. - + OCC::PropagateItemJob @@ -3825,7 +3829,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use The file %1 is currently in use - + The folder %1 cannot be made read-only: %2 The folder %1 cannot be made read-only: %2 @@ -3837,14 +3841,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception unknown exception - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Could not delete file record %1 from local DB - + Could not remove %1 because of a local file name clash Could not remove %1 because of a local file name clash @@ -3852,14 +3856,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss Temporary error when removing local item removed from server. Temporary error when removing local item removed from server. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Could not delete file record %1 from local DB - + Could not get file %1 from local DB Could not get file %1 from local DB @@ -3891,18 +3895,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use The file %1 is currently in use - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Could not delete file record %1 from local DB - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3924,11 +3928,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use The file %1 is currently in use - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + OCC::PropagateRemoteMove @@ -3955,7 +3959,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error writing metadata to the database Error writing metadata to the database - + The file %1 is currently in use The file %1 is currently in use @@ -3963,7 +3967,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3990,7 +3994,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File Removed (start upload) %1 File Removed (start upload) %1 - + Local file changed during sync. Local file changed during sync. @@ -4010,7 +4014,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds the quota for the folder Upload of %1 exceeds the quota for the folder - + OCC::PropagateUploadFileNG @@ -4018,7 +4022,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss server error File is not accessible on the server. - + Folder is not accessible on the server. server error Folder is not accessible on the server. @@ -4043,7 +4047,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Unexpected return code from server (%1) Unexpected return code from server (%1) - + OCC::PropagateUploadFileV1 @@ -4069,7 +4073,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Password: Password: - + Proxy authentication required Proxy authentication required @@ -4085,7 +4089,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Username: Username: - + OCC::SelectiveSyncDialog @@ -4099,7 +4103,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss An error occurred while loading the list of sub folders. An error occurred while loading the list of sub folders. - + Deselect remote folders you do not wish to synchronize. Deselect remote folders you do not wish to synchronise. @@ -4119,18 +4123,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss Size Size - + OCC::ServerNotificationHandler Dismiss Dismiss - + Reply Reply - + OCC::sesSnackBar @@ -4141,11 +4145,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + Warning Warning - + OCC::SettingsDialog @@ -4157,7 +4161,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Account Account - + General General @@ -4169,7 +4173,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Settings Settings - + OCC::ShareeModel @@ -4177,7 +4181,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Global search results @@ -4189,7 +4193,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Search globally Search globally - + OCC::ShareManager @@ -4211,7 +4215,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Could not find local folder for %1 Could not find local folder for %1 - + Internal link Internal link @@ -4235,7 +4239,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Today Today - + OCC::SocketApi @@ -4326,7 +4330,7 @@ Server replied with error: %2 Open in browser Open in browser - + Resharing this file is not allowed Resharing this file is not allowed @@ -4362,7 +4366,7 @@ Server replied with error: %2 Unlock file Unlock file - + OCC::SslButton @@ -4453,7 +4457,7 @@ Server replied with error: %2 The connection is not secure The connection is not secure - + This connection is NOT secure as it is not encrypted. @@ -4461,7 +4465,7 @@ Server replied with error: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4504,7 +4508,7 @@ Server replied with error: %2 Issuer: %1 Issuer: %1 - + Organization: %1 Organisation: %1 @@ -4524,7 +4528,7 @@ Server replied with error: %2 with Certificate %1 with Certificate %1 - + OCC::SyncEngine @@ -4535,7 +4539,7 @@ Server replied with error: %2 Cannot open the sync journal Cannot open the sync journal - + Could not set file record to local DB: %1 Could not set file record to local DB: %1 @@ -4584,7 +4588,7 @@ Server replied with error: %2 Using virtual files with suffix, but suffix is not set Using virtual files with suffix, but suffix is not set - + OCC::SyncStatusSummary @@ -4639,11 +4643,11 @@ Server replied with error: %2 Syncing file %1 of %2 Syncing file %1 of %2 - + You need to accept the terms of service You need to accept the terms of service - + OCC::Systray @@ -4683,18 +4687,18 @@ Server replied with error: %2 Resume sync for all Resume sync for all - + Settings Settings - + OCC::TermsOfServiceCheckWidget Copy Link Copy Link - + Link copied to clipboard. Link copied to clipboard. @@ -4710,7 +4714,7 @@ Server replied with error: %2 Waiting for terms to be accepted Waiting for terms to be accepted - + OCC::Theme @@ -4778,11 +4782,11 @@ Server replied with error: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4797,18 +4801,18 @@ Server replied with error: %2 Search has failed for '%1'. Error: %2 Search has failed for '%1'. Error: %2 - + Search has failed for '%2'. Search has failed for '%2'. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Failed to finalize item. - + Failed to unlock encrypted folder. Failed to unlock encrypted folder. @@ -4816,7 +4820,7 @@ Server replied with error: %2 Failed to update folder metadata. Failed to update folder metadata. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4871,7 +4875,7 @@ Server replied with error: %2 Quota Warning - %1 percent or more storage in use Quota Warning - %1 percent or more storage in use - + Quota is updated; %1 percent of the total space is used. Quota is updated; %1 percent of the total space is used. @@ -4891,7 +4895,7 @@ Server replied with error: %2 Trigger the migration Trigger the migration - + OCC::UserModel @@ -4914,11 +4918,11 @@ Server replied with error: %2 Remove account Remove account - + Remove connection Remove connection - + OCC::UserStatusSelectorModel @@ -4928,7 +4932,7 @@ Server replied with error: %2 %n days - + %n hour(s) %n hour @@ -4994,7 +4998,7 @@ Server replied with error: %2 Today Today - + OCC::Vfs @@ -5005,18 +5009,18 @@ Server replied with error: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 could not be downloaded. - + > More details > More details @@ -5040,7 +5044,7 @@ Server replied with error: %2 More details More details - + OCC::VfsSuffix @@ -5083,7 +5087,7 @@ Server replied with error: %2 Host your own server Host your own server - + Keep your data secure and under your control Keep your data secure and under your control @@ -5095,7 +5099,7 @@ Server replied with error: %2 Sign up with provider Sign up with provider - + OCC::WizardProxySettingsDialog @@ -5119,18 +5123,18 @@ Server replied with error: %2 SOCKS5 proxy SOCKS5 proxy - + Username for proxy server Username for proxy server - + OwncloudAdvancedSetupPage &Local Folder &Local Folder - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> @@ -5179,18 +5183,18 @@ Server replied with error: %2 Username Username - + OwncloudHttpCredsPage &Password &Password - + &Username &Username - + OwncloudSetupPage @@ -5276,7 +5280,7 @@ Server replied with error: %2 Updating end-to-end encryption metadata Updating end-to-end encryption metadata - + Updating local metadata Updating local metadata @@ -5296,7 +5300,7 @@ Server replied with error: %2 Virtual file created Virtual file created - + ProxySettings @@ -5315,7 +5319,7 @@ Server replied with error: %2 No proxy No proxy - + Note: proxy settings have no effects for accounts on localhost Note: proxy settings have no effects for accounts on localhost @@ -5331,7 +5335,7 @@ Server replied with error: %2 Use system proxy Use system proxy - + QObject @@ -5424,7 +5428,7 @@ Server replied with error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5528,7 +5532,7 @@ Server replied with error: %2 now now - + ResolveConflictsDialog @@ -5551,7 +5555,7 @@ Server replied with error: %2 Cancel Cancel - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. @@ -5563,7 +5567,7 @@ Server replied with error: %2 Solve sync conflicts Solve sync conflicts - + SesErrorBox @@ -5581,11 +5585,11 @@ Server replied with error: %2 Open local or team folders Open local or team folders - + Website - + ShareDelegate @@ -5619,7 +5623,7 @@ Server replied with error: %2 Copy share link Copy share link - + Custom Permissions @@ -5659,7 +5663,7 @@ Server replied with error: %2 View only View only - + ShareeSearchField @@ -5697,11 +5701,11 @@ Server replied with error: %2 Sharing is disabled. Sharing is disabled. - + This item cannot be shared. This item cannot be shared. - + SyncJournalDb @@ -5715,7 +5719,7 @@ Server replied with error: %2 Open browser Open browser - + Resolve conflicts Resolve conflicts @@ -5723,7 +5727,7 @@ Server replied with error: %2 Sync now Sync now - + TalkReplyTextField @@ -5745,11 +5749,11 @@ Server replied with error: %2 Switch to your browser to accept the terms of service Switch to your browser to accept the terms of service - + Terms of Service Terms of Service - + theme @@ -5772,7 +5776,7 @@ Server replied with error: %2 Sync is paused Sync is paused - + Sync is running Sync is running @@ -5792,7 +5796,7 @@ Server replied with error: %2 Waiting to start syncing Waiting to start syncing - + TrayFoldersMenuButton @@ -5830,7 +5834,7 @@ Server replied with error: %2 Account switcher and settings menu Account switcher and settings menu - + Add account Add account @@ -5866,7 +5870,7 @@ Server replied with error: %2 Settings Settings - + TrayWindowHeader @@ -5877,11 +5881,11 @@ Server replied with error: %2 Open %1 in browser Open %1 in browser - + Open local or team folders Open local or team folders - + TrayWindowHeaderBar @@ -5892,7 +5896,7 @@ Server replied with error: %2 Open %1 in browser Open %1 in browser - + Open Nextcloud in browser @@ -5904,7 +5908,7 @@ Server replied with error: %2 Website - + UnifiedSearchInputContainer @@ -5972,18 +5976,18 @@ Server replied with error: %2 Remove account Remove account - + Switch to account Switch to account - + UserStatusMessageView Apply Apply - + Cancel Cancel @@ -6003,7 +6007,7 @@ Server replied with error: %2 What is your status? What is your status? - + UserStatusSetStatusView @@ -6049,7 +6053,7 @@ Server replied with error: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6111,7 +6115,7 @@ Server replied with error: %2 %n years - + utility @@ -6138,7 +6142,7 @@ Server replied with error: %2 Free up local space Free up local space - + Make always available locally Make always available locally @@ -6154,7 +6158,7 @@ Server replied with error: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? There was an error when launching the email client to create a new message. Maybe no default email client is configured? - + ValidateChecksumHeader diff --git a/translations/client_es.ts b/translations/client_es.ts index b46dbfb934887..31f600ca8b7ef 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -6,22 +6,22 @@ In %1 En %1 - + Open %1 locally Abrir %1 localmente - + ActivityItemContent Dismiss Descartar - + Open file details Abrir detalles del archivo - + ActivityList @@ -32,11 +32,11 @@ No activities yet Aún no hay actividades - + Scroll to top Desplazarse hasta la parte superior - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Rechazar la notificación de llamadas de Talk - + Talk notification caller avatar Avatar de la notificación de llamada - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Cerrar cliente de sincronización - + Recently changed Cambiado recientemente @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Sicronizando %1 de %2 (quedan %3) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Menú para cambio de cuentas y ajustes - + Add account Añadir cuenta @@ -185,7 +185,7 @@ Settings Ajustes - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Recargar - + Remove local copies Quitar copias locales - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Reiniciar el ambiente de archivos virtuales - + Virtual files settings Configuración de archivos virtuales - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Liberar espacio … - + Local storage use Uso de almacenamiento local - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Solicitar una sincronización de cambios para el ambiente VFS. macOS podría ignorar o demorar esta solicitud. - + Request sync Solicitar sincronización @@ -304,18 +304,18 @@ macOS podría ignorar o demorar esta solicitud. Syncing Sincronizando - + FileSystem Could not remove folder "%1" No se ha podido eliminar la carpeta "%1" - + Error removing "%1": %2 Error al eliminar "%1": %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS podría ignorar o demorar esta solicitud. Copy Link - + Logo Logo @@ -338,7 +338,7 @@ macOS podría ignorar o demorar esta solicitud. Switch to your browser to connect your account Cambiar al navegador para conectar con tu cuenta - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS podría ignorar o demorar esta solicitud. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS podría ignorar o demorar esta solicitud. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS podría ignorar o demorar esta solicitud. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Crear carpeta @@ -399,7 +399,7 @@ macOS podría ignorar o demorar esta solicitud. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS podría ignorar o demorar esta solicitud. New activities Nuevas actividades - + Unified search results list Lista de resultados de la búsqueda unificada - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS podría ignorar o demorar esta solicitud. The server enforces strict transport security and does not accept untrusted certificates. El servidor hace obligatoria la seguridad estricta en el transporte y no acepta certificados sin confianza. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. El servidor tardó demasiado en responder. Revise su conexión e intente sincronizar de nuevo. Si sigue sin funcionar, contacte con el administrador de su servidor. - + OCC::Account @@ -468,7 +468,7 @@ Should the account be imported? Could not import accounts from legacy client configuration. No se pudieron importar las cuentas desde la configuración del cliente antiguo. - + Import Importar @@ -480,7 +480,7 @@ Should the account be imported? Skip Saltar - + OCC::AccountSettings @@ -635,7 +635,7 @@ Should the account be imported? Expand Memory - + Folder creation failed Ha fallado la creación de la carpeta @@ -837,7 +837,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Parece que tiene la función de Archivos Virtuales activada en esta carpeta. Por el momento, no es posible descargar implícitamente los archivos virtuales que están cifrados de extremo a extremo. Para obtener la mejor experiencia con los archivos virtuales y el cifrado de extremo a extremo, asegúrese de que la carpeta cifrada está marcada con "Hacer que esté siempre disponible localmente". - + OCC::AccountSetupFromCommandLineJob @@ -933,7 +933,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) Archivos de certificado (*.p12 *.pfx) - + Certificate password: Contraseña del certificado: @@ -949,7 +949,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. Probablemente este servidor requiera un certificado SSL del cliente. - + OCC::Application @@ -1001,7 +1001,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Se ha producido un error al acceder al archivo de configuración en %1. Por favor, asegúrese de que su cuenta del sistema puede acceder al archivo. - + deleting eliminando @@ -1019,14 +1019,14 @@ Would you like to do this now? older software version antiguos - + OCC::AuthenticationDialog &Password: &Contraseña: - + &Username: &Usuario: @@ -1038,7 +1038,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. Introduce usuario y contraseña para "%1" en %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1064,12 +1064,12 @@ Would you like to do this now? The file %1 is currently in use El archivo %1 se encuentra actualmente en uso - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file No fue posible actualizar los metadatos del archivo nuevo %1. - + OCC::BulkPropagatorJob @@ -1112,7 +1112,7 @@ Would you like to do this now? Restoration failed: %1 Fallo al restaurar: %1 - + The file %1 is currently in use El archivo %1 se encuentra en uso @@ -1120,7 +1120,7 @@ Would you like to do this now? The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. - + OCC::CaseClashConflictSolver @@ -1147,11 +1147,11 @@ Would you like to do this now? Filename contains trailing spaces. El nombre del archivo contiene espacios al final. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permisos para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - + OCC::CaseClashFilenameDialog @@ -1182,7 +1182,7 @@ Would you like to do this now? Filename contains illegal characters: %1 El nombre del archivo contiene caracteres ilegales: %1 - + Filename contains leading and trailing spaces. El nombre del archivo contiene espacios iniciales y finales. @@ -1238,7 +1238,7 @@ Would you like to do this now? today hoy - + OCC::CleanupPollsJob @@ -1256,7 +1256,7 @@ Would you like to do this now? Enter E2E passphrase Introduce la frase de acceso E2E - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Ingrese código PIN @@ -1273,7 +1273,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, introduzca su frase de cifrado de extremo a extremo:<br><br>Nombre de usuario: %2<br> Cuenta: %3<br> - + OCC::ConflictDialog @@ -1312,7 +1312,7 @@ Would you like to do this now? Keep server version Mantener la versión del servidor - + Local version Versión local @@ -1340,14 +1340,14 @@ Would you like to do this now? today hoy - + OCC::ConflictSolver Confirm deletion Confirmar borrado - + Do you want to delete the directory <i>%1</i> and all its contents permanently? ¿Quieres eliminar la carpeta <i>%1</i> y todo su contenido permanentemente? @@ -1367,7 +1367,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1391,11 +1391,11 @@ Would you like to do this now? The provided credentials are not correct Las credenciales proporcionadas no son correctas - + Timeout Tiempo de espera superado - + OCC::DataProtectionPage @@ -1414,7 +1414,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1456,11 +1460,11 @@ Would you like to do this now? Error while canceling deletion of %1 Error al cancelar la eliminación de %1 - + Error while canceling deletion of a file Error al cancelar la eliminación de un archivo - + OCC::DiscoverySingleDirectoryJob @@ -1471,7 +1475,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. Error de configuración de los metadatos cifrados: la firma inicial del servidor está vacía. - + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! @@ -1479,7 +1483,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” El servidor devolvió una respuesta inesperada que no se pudo leer. Por favor, contacte con el administrador de su servidor. - + OCC::DiscoverySingleLocalDirectoryJob @@ -1498,11 +1502,11 @@ Would you like to do this now? Error while reading directory %1 Error al leer el directorio %1 - + Filename encoding is not valid La codificación del nombre del archivo no es válida - + OCC::EditLocallyJob @@ -1545,7 +1549,7 @@ Would you like to do this now? File %1 could not be locked. El archivo %1 no pudo ser bloqueado. - + File %1 now locked. El archivo %1 ahora está bloqueado. @@ -1565,7 +1569,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! - + OCC::EditLocallyManager @@ -1583,7 +1587,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. Ha ocurrido un error intentando verificar la petición para editar localmente. - + Could not find an account for local editing. No se ha podido encontrar una cuenta para edición local. @@ -1603,7 +1607,7 @@ Would you like to do this now? Please try again. Por favor, inténtelo de nuevo. - + OCC::EncryptedFolderMetadataHandler @@ -1709,7 +1713,7 @@ Esto podría ser un problema con tu librería OpenSSL The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. El servidor no respondió con los datos esperados. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. El servidor no está disponible temporalmente porque está en mantenimiento. Inténtalo de nuevo una vez finalizado el mantenimiento. @@ -1717,7 +1721,7 @@ Esto podría ser un problema con tu librería OpenSSL We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. No pudimos analizar la respuesta del servidor. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. - + OCC::Flow2AuthWidget @@ -1748,7 +1752,7 @@ Esto podría ser un problema con tu librería OpenSSL Switch to your browser to connect your account Cambiar al navegador para conectar con tu cuenta - + Unable to open the Browser, please copy the link to your Browser. No se ha podido abrir el navegador, por favor copie el enlace en su navegador. @@ -1756,7 +1760,7 @@ Esto podría ser un problema con tu librería OpenSSL Waiting for authorization Esperando autorización - + OCC::Folder @@ -1929,7 +1933,7 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Restore Files from Server Restaurar los archivos desde el servidor - + Restore Files to Server Restaurar los archivos al servidor @@ -1961,7 +1965,7 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Would you like to stop syncing this folder? ¿Desea detener la sincronización de esta carpeta? - + OCC::FolderCreationDialog @@ -1972,7 +1976,7 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Could not create a folder! Check your write permissions. ¡No se pudo crear la carpeta! Comprueba los permisos de escritura. - + Create new folder Crear nueva carpeta @@ -1988,14 +1992,14 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Folder already exists Ya existe la carpeta - + OCC::FolderMan %1 (Sync is paused) %1 (Sincronización en pausa) - + (backup %1) @@ -2111,7 +2115,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Waiting to start syncing. Esperando para comenzar la sincronización. - + OCC::FolderStatusDelegate @@ -2122,11 +2126,11 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch File Archivo - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2207,7 +2211,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Preparing to sync … Preparando la sincronización ... - + Signed out Cerrar sesión @@ -2255,7 +2259,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2291,7 +2295,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Choose - + Click to select a local folder to sync. Haga clic para seleccionar una carpeta local que sincronizar. @@ -2311,7 +2315,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2338,7 +2342,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Create folder Crear carpeta - + Enter the name of the new folder to be created below "%1": Introduce el nombre de la nueva carpeta que se creará debajo de "%1": @@ -2374,7 +2378,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch You are already syncing the subfolder %1 at %2. Ya está sincronizando la subcarpeta %1 en %2 - + OCC::FolderWizardSelectiveSync @@ -2397,11 +2401,11 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Virtual files are not supported at the selected location Los archivos virtuales no están soportados en la ubicación seleccionada - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. - + OCC::GeneralSettings @@ -2509,7 +2513,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable More Information - + Move removed files to trash Mover archivos eliminados a la papelera @@ -2646,14 +2650,14 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable stable stable - + OCC::GETFileJob Connection Timeout Tiempo de espera de conexión agotado - + No E-Tag received from server, check Proxy/Gateway No se ha recibido ninguna E-Tag del servidor, revise el proxy/puerta de enlace @@ -2669,7 +2673,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable We received an unexpected download Content-Length. Hemos recibido una longitud inesperada de contenido de la descarga. - + OCC::GetOrCreatePublicLinkShare @@ -2680,7 +2684,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable %1 - + Password for share required Se requiere contraseña para compartir @@ -2692,14 +2696,14 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Sharing error Error al compartir - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Haga clic aquí</a> para solicitar una contraseña de aplicación desde la interfaz web. - + Enter Password Introduzca la contraseña @@ -2711,7 +2715,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Reading from keychain failed with error: "%1" La lectura del keychain falló con el error "%1" - + OCC::IgnoreListEditor @@ -2745,7 +2749,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Add a new ignore pattern: Añadir un nuevo patrón de archivos ignorados: - + Allow Deletion Permitir borrado @@ -2781,7 +2785,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo Remove all Eliminar todos - + OCC::InvalidFilenameDialog @@ -2800,7 +2804,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo Could not rename local file. %1 No se ha podido renombrar el archivo local. %1 - + Error Error @@ -2880,7 +2884,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo You don't have the permission to rename this file. Please ask the author of the file to rename it. No tienes permisos para renombrar este archivo. Por favor, dile al autor del archivo que lo renombre. - + OCC::LegacyAccountSelectionDialog @@ -2902,7 +2906,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o posterior.</p> - + Close Cerrar @@ -2910,7 +2914,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo Legal notice Aviso legal - + OCC::LogBrowser @@ -2925,7 +2929,7 @@ Los elementos que se permite su borrado se eliminarán si impiden que un directo Open folder Abrir carpeta - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2939,18 +2943,18 @@ Note that using any logging command line options will override this setting.Este ajuste persiste tras los reinicios del cliente. Nótese que usar cualquier opción de recolección de registros a través de línea de comandos sobrescribirá este ajuste. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> - + Error Error - + OCC::Mac::FileProviderEditLocallyJob @@ -3044,7 +3048,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí SOCKS5 proxy Proxy SOCKS5 - + Upload Bandwidth Velocidad de subida @@ -3056,7 +3060,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Username for proxy server Nombre de usuario para el servidor proxy - + OCC::NSISUpdater @@ -3075,7 +3079,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Get update Actualizar - + New Version Available Nueva versión disponible @@ -3095,7 +3099,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Update manually Actualizar manualmente - + OCC::OCUpdater @@ -3146,7 +3150,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Update Check Comprobar si hay actualizaciones - + Update status is unknown: Did not check for new updates. Estado de actualización desconocido: no se buscaron nuevas actualizaciones. @@ -3154,7 +3158,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí You are using the %1 update channel. Your installation is the latest version. Está utilizando el canal de actualización %1. Su instalación está en la versión mas reciente. - + OCC::OwncloudAdvancedSetupPage @@ -3182,7 +3186,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí In Finder's "Locations" sidebar section En la sección "Ubicaciones" de la barra lateral del Finder - + Local Sync Folder Carpeta local de sincronización @@ -3210,14 +3214,14 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Warning: The local folder is not empty. Pick a resolution! Advertencia: La carpeta local no está vacía. ¡Elija una solución! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro <em>%1</em>. ¿Cómo desea proceder?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro especificado. ¿Cómo desea proceder?</p></body></html> @@ -3237,14 +3241,14 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Select a different URL Seleccionar una URL diferente - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1:%2 @@ -3309,7 +3313,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí macOS VFS for %1: Sync is running. macOS VFS para %1: Sincronización en progreso. - + OCC::OwncloudHttpCredsPage @@ -3342,7 +3346,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Could not load certificate. Maybe wrong password? No se ha podido guardar el certificado. ¿Quizás la contraseña sea incorrecta? - + Server address does not seem to be valid La dirección del servidor no es válida @@ -3351,7 +3355,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí %1 will be replaced with the application name El link a su interfaz web %1 cuando la abra en el navegador. - + OCC::OwncloudSetupWizard @@ -3362,7 +3366,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Carpeta de sincronización local %1 creada con éxito</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/> @@ -3470,7 +3474,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí failed. ha fallado. - + OCC::OwncloudWizard @@ -3512,7 +3516,7 @@ Nótese que usar cualquier opción de recolección de registros a través de lí Stay safe Mantente a salvo - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3528,7 +3532,7 @@ Cambiar a este modo interrumpirá cualquier sincronización en proceso. Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de cualquier tipo de problema que pueda surgir. - + OCC::PasswordInputDialog @@ -3581,7 +3585,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Error while reading the database Error mientras se leía la base de datos - + File has extension reserved for virtual files. El archivo tiene una extensión reservada para archivos virtuales. @@ -3713,7 +3717,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Upload of %1 exceeds %2 of space left in personal files. La carga de %1 excede %2 del espacio disponible en los archivos personales. - + OCC::PropagateDirectory @@ -3732,7 +3736,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c File is currently in use El archivo se encuentra en uso - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 @@ -3740,7 +3744,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c unknown exception excepción inválida - + OCC::PropagateDownloadFile @@ -3771,7 +3775,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c File has changed since discovery El archivo ha cambiado desde que fue descubierto - + File was deleted from server Se ha eliminado el archivo del servidor @@ -3795,7 +3799,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c The file could not be downloaded completely. No se ha podido descargar el archivo completamente. - + OCC::PropagateItemJob @@ -3825,7 +3829,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c The file %1 is currently in use El archivo %1 se encuentra en uso - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 @@ -3837,14 +3841,14 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c unknown exception excepción inválida - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local - + Could not remove %1 because of a local file name clash No se ha podido eliminar %1 por causa de un conflicto con el nombre de un archivo local @@ -3852,14 +3856,14 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Temporary error when removing local item removed from server. Error temporal al quitar ítem local que fue eliminado del servidor. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local - + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local @@ -3891,18 +3895,18 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c The file %1 is currently in use El archivo %1 se encuentra en uso - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3924,11 +3928,11 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c The file %1 is currently in use El archivo %1 se encuentra en uso - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 201, pero se recibió "%1 %2". - + OCC::PropagateRemoteMove @@ -3955,7 +3959,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Error writing metadata to the database Error al escribir los metadatos en la base de datos - + The file %1 is currently in use El archivo %1 se encuentra en uso @@ -3963,7 +3967,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Wrong HTTP code returned by server. Expected 201, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Esperado 201, pero recibido "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3990,7 +3994,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c File Removed (start upload) %1 Archivo eliminado (comenzar subida) %1 - + Local file changed during sync. Un archivo local ha sido modificado durante la sincronización. @@ -4010,7 +4014,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Upload of %1 exceeds the quota for the folder La subida %1 excede el límite de tamaño de la carpeta - + OCC::PropagateUploadFileNG @@ -4018,7 +4022,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c server error El archivo no es accesible en el servidor. - + Folder is not accessible on the server. server error La carpeta no es accesible en el servidor. @@ -4043,7 +4047,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Unexpected return code from server (%1) Respuesta inesperada del servidor (%1) - + OCC::PropagateUploadFileV1 @@ -4069,7 +4073,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Password: Contraseña: - + Proxy authentication required Autenticación de proxy necesaria @@ -4085,7 +4089,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Username: Nombre de usuario: - + OCC::SelectiveSyncDialog @@ -4099,7 +4103,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c An error occurred while loading the list of sub folders. Se ha producido un error al cargar la lista de carpetas. - + Deselect remote folders you do not wish to synchronize. Deseleccione las carpetas remotas que no desea sincronizar. @@ -4119,18 +4123,18 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Size Tamaño - + OCC::ServerNotificationHandler Dismiss Descartar - + Reply Responder - + OCC::sesSnackBar @@ -4141,11 +4145,11 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Success - + Warning Aviso - + OCC::SettingsDialog @@ -4157,7 +4161,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Account Cuenta - + General General @@ -4169,7 +4173,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Settings Ajustes - + OCC::ShareeModel @@ -4177,7 +4181,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Resultados de búsqueda global @@ -4189,7 +4193,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Search globally Buscar globalmente - + OCC::ShareManager @@ -4211,7 +4215,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Could not find local folder for %1 No se ha podido encontrar una carpeta local para %1 - + Internal link Enlace interno @@ -4235,7 +4239,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Today Hoy - + OCC::SocketApi @@ -4326,7 +4330,7 @@ El servidor respondió con el error: %2 Open in browser Abrir en navegador - + Resharing this file is not allowed No está permitido compartir de nuevo @@ -4362,7 +4366,7 @@ El servidor respondió con el error: %2 Unlock file Desbloquear archivo - + OCC::SslButton @@ -4453,7 +4457,7 @@ El servidor respondió con el error: %2 The connection is not secure La conexión no es segura - + This connection is NOT secure as it is not encrypted. @@ -4461,7 +4465,7 @@ El servidor respondió con el error: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4504,7 +4508,7 @@ El servidor respondió con el error: %2 Issuer: %1 Emisor: %1 - + Organization: %1 Organización: %1 @@ -4524,7 +4528,7 @@ El servidor respondió con el error: %2 with Certificate %1 con certificado %1 - + OCC::SyncEngine @@ -4535,7 +4539,7 @@ El servidor respondió con el error: %2 Cannot open the sync journal No es posible abrir el diario de sincronización - + Could not set file record to local DB: %1 No fue posible establecer el registro del archivo a la base de datos local: %1 @@ -4584,7 +4588,7 @@ El servidor respondió con el error: %2 Using virtual files with suffix, but suffix is not set Usando archivos virtuales con sufijo, pero el sufijo no está establecido - + OCC::SyncStatusSummary @@ -4639,11 +4643,11 @@ El servidor respondió con el error: %2 Syncing file %1 of %2 Sincronizando archivo %1 de %2 - + You need to accept the terms of service Debe aceptar los términos de servicio - + OCC::Systray @@ -4683,18 +4687,18 @@ El servidor respondió con el error: %2 Resume sync for all Continuar sincronización a todos - + Settings Ajustes - + OCC::TermsOfServiceCheckWidget Copy Link Copiar enlace - + Link copied to clipboard. Enlace copiado al portapapeles @@ -4710,7 +4714,7 @@ El servidor respondió con el error: %2 Waiting for terms to be accepted Esperando a que los términos de servicio sean aceptados - + OCC::Theme @@ -4778,11 +4782,11 @@ El servidor respondió con el error: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4797,18 +4801,18 @@ El servidor respondió con el error: %2 Search has failed for '%1'. Error: %2 La búsqueda ha fallado para '%1'. Error: %2 - + Search has failed for '%2'. La búsqueda ha fallado para '%2'. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Fallo al finalizar ítem. - + Failed to unlock encrypted folder. Fallo al desbloquear carpeta cifrada. @@ -4816,7 +4820,7 @@ El servidor respondió con el error: %2 Failed to update folder metadata. Fallo al actualizar los metadatos de la carpeta. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4871,7 +4875,7 @@ El servidor respondió con el error: %2 Quota Warning - %1 percent or more storage in use Advertencia de Cuota - Se está utilizando un porcentaje de almacenamiento del %1 o mayor - + Quota is updated; %1 percent of the total space is used. La cuota ha sido actualizada; El porcentaje de uso del espacio total es %1. @@ -4891,7 +4895,7 @@ El servidor respondió con el error: %2 Trigger the migration Iniciar la migración - + OCC::UserModel @@ -4914,11 +4918,11 @@ El servidor respondió con el error: %2 Remove account Eliminar cuenta - + Remove connection Eliminar vinculación - + OCC::UserStatusSelectorModel @@ -4928,7 +4932,7 @@ El servidor respondió con el error: %2 %n días - + %n hour(s) %n hora @@ -4994,7 +4998,7 @@ El servidor respondió con el error: %2 Today Hoy - + OCC::Vfs @@ -5005,18 +5009,18 @@ El servidor respondió con el error: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1 es una unidad de red. No soporta archivos virtuales. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1no es un sistema de archivos NTFS. No soporta archivos virtuales. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 no pudo ser descargado. - + > More details > Más detalles @@ -5040,7 +5044,7 @@ El servidor respondió con el error: %2 More details Más detalles - + OCC::VfsSuffix @@ -5083,7 +5087,7 @@ El servidor respondió con el error: %2 Host your own server Aloja tu propio servidor - + Keep your data secure and under your control Mantén tus datos seguros y bajo tu control @@ -5095,7 +5099,7 @@ El servidor respondió con el error: %2 Sign up with provider Iniciar sesión a través de un proveedor - + OCC::WizardProxySettingsDialog @@ -5119,18 +5123,18 @@ El servidor respondió con el error: %2 SOCKS5 proxy Proxy SOCKS5 - + Username for proxy server Nombre de usuario para el servidor proxy - + OwncloudAdvancedSetupPage &Local Folder Carpeta &local - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si esta casilla está marcada, el contenido existente en el directorio local será eliminado para comenzar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debería subirse al directorio del servidor.</p></body></html> @@ -5179,18 +5183,18 @@ El servidor respondió con el error: %2 Username Nombre de usuario - + OwncloudHttpCredsPage &Password &Contraseña - + &Username &Nombre de usuario - + OwncloudSetupPage @@ -5276,7 +5280,7 @@ El servidor respondió con el error: %2 Updating end-to-end encryption metadata Actualizando metadatos de cifrado extremo a extremo - + Updating local metadata Actualizando los metadatos locales @@ -5296,7 +5300,7 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado - + ProxySettings @@ -5315,7 +5319,7 @@ El servidor respondió con el error: %2 No proxy Sin proxy - + Note: proxy settings have no effects for accounts on localhost Nota: las configuraciones del proxy no tienen efectos para las cuentas en localhost @@ -5331,7 +5335,7 @@ El servidor respondió con el error: %2 Use system proxy Utilizar el proxy del sistema - + QObject @@ -5424,7 +5428,7 @@ El servidor respondió con el error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. El archivo es demasiado grande para ser cargado. Podría necesitar escoger un archivo más pequeño, o, contactar al administrador de su servidor para que le asista. @@ -5528,7 +5532,7 @@ El servidor respondió con el error: %2 now ahora - + ResolveConflictsDialog @@ -5551,7 +5555,7 @@ El servidor respondió con el error: %2 Cancel Cancelar - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Decida si quiere mantener la versión local, la versión del servidor, o ambas. Si escoge ambas, se le añadirá un número al nombre del archivo local. @@ -5563,7 +5567,7 @@ El servidor respondió con el error: %2 Solve sync conflicts Resolver conflictos de sincronización - + SesErrorBox @@ -5581,11 +5585,11 @@ El servidor respondió con el error: %2 Open local or team folders Abrir carpetas locales o de equipo - + Website - + ShareDelegate @@ -5619,7 +5623,7 @@ El servidor respondió con el error: %2 Copy share link Copiar enlace de recurso compartido - + Custom Permissions @@ -5659,7 +5663,7 @@ El servidor respondió con el error: %2 View only Solo lectura - + ShareeSearchField @@ -5697,11 +5701,11 @@ El servidor respondió con el error: %2 Sharing is disabled. Compartir está deshabilitado. - + This item cannot be shared. Este ítem no puede ser compartido. - + SyncJournalDb @@ -5715,7 +5719,7 @@ El servidor respondió con el error: %2 Open browser Abrir navegador - + Resolve conflicts Resolver conflictos @@ -5723,7 +5727,7 @@ El servidor respondió con el error: %2 Sync now Sincronizar ahora - + TalkReplyTextField @@ -5745,11 +5749,11 @@ El servidor respondió con el error: %2 Switch to your browser to accept the terms of service Cambie al navegador para aceptar los términos de servicio - + Terms of Service Términos de Servicio - + theme @@ -5772,7 +5776,7 @@ El servidor respondió con el error: %2 Sync is paused La sincronización está en pausa. - + Sync is running Sincronizado en proceso @@ -5792,7 +5796,7 @@ El servidor respondió con el error: %2 Waiting to start syncing Esperando para empezar la sincronización - + TrayFoldersMenuButton @@ -5830,7 +5834,7 @@ El servidor respondió con el error: %2 Account switcher and settings menu Menú para cambio de cuentas y ajustes - + Add account @@ -5866,7 +5870,7 @@ El servidor respondió con el error: %2 Settings - + TrayWindowHeader @@ -5877,11 +5881,11 @@ El servidor respondió con el error: %2 Open %1 in browser Abrir %1 en el navegador - + Open local or team folders Abrir carpetas locales o de equipo - + TrayWindowHeaderBar @@ -5892,7 +5896,7 @@ El servidor respondió con el error: %2 Open %1 in browser Abrir %1 en el navegador - + Open Nextcloud in browser @@ -5904,7 +5908,7 @@ El servidor respondió con el error: %2 Website - + UnifiedSearchInputContainer @@ -5972,18 +5976,18 @@ El servidor respondió con el error: %2 Remove account Eliminar cuenta - + Switch to account Cambiar a la cuenta - + UserStatusMessageView Apply Aplicar - + Cancel Cancelar @@ -6003,7 +6007,7 @@ El servidor respondió con el error: %2 What is your status? Cuál es tu estado? - + UserStatusSetStatusView @@ -6049,7 +6053,7 @@ El servidor respondió con el error: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6111,7 +6115,7 @@ El servidor respondió con el error: %2 %n años - + utility @@ -6138,7 +6142,7 @@ El servidor respondió con el error: %2 Free up local space Liberar espacio local - + Make always available locally Hacer que esté siempre localmente disponible @@ -6154,7 +6158,7 @@ El servidor respondió con el error: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Se ha producido un error al lanzar el cliente de correo electrónico para crear un nuevo mensaje. ¿Puede ser que no haya ningún cliente de correo electrónico configurado? - + ValidateChecksumHeader diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 04f8961f9fa10..44cb1cdd04526 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -6,22 +6,22 @@ In %1 En %1 - + Open %1 locally Abrir %1 localmente - + ActivityItemContent Dismiss Descartar - + Open file details Abrir detalles del archivo - + ActivityList @@ -32,11 +32,11 @@ No activities yet Sin actividades todavía - + Scroll to top - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Rechazar notificación de llamada - + Talk notification caller avatar Avatar de la notificación de llamada - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Cerrar cliente de sincronización - + Recently changed Modificados recientemente @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu - + Add account Añadir cuenta @@ -185,7 +185,7 @@ Settings Configuraciones - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Recargar - + Remove local copies - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment - + Virtual files settings Configuración de archivos virtuales - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … - + Local storage use Uso de almacenamiento local - + FileProviderSyncStatus @@ -295,7 +295,7 @@ macOS may ignore or delay this request. - + Request sync @@ -303,18 +303,18 @@ macOS may ignore or delay this request. Syncing Sincronizando - + FileSystem Could not remove folder "%1" No se pudo eliminar la carpeta "%1" - + Error removing "%1": %2 Error al eliminar "%1": %2 - + Flow2AuthWidget @@ -329,7 +329,7 @@ macOS may ignore or delay this request. Copy Link Copiar enlace - + Logo Logotipo @@ -337,7 +337,7 @@ macOS may ignore or delay this request. Switch to your browser to connect your account Cambiar al navegador para conectar con su cuenta - + FolderWizardSelectiveSync @@ -355,7 +355,7 @@ macOS may ignore or delay this request. &Choose - + Add Folder Sync @@ -367,7 +367,7 @@ macOS may ignore or delay this request. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -378,7 +378,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Crear carpeta @@ -398,7 +398,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + MainWindow @@ -409,11 +409,11 @@ macOS may ignore or delay this request. New activities - + Unified search results list - + nextcloudTheme::aboutInfo() @@ -431,11 +431,11 @@ macOS may ignore or delay this request. The server enforces strict transport security and does not accept untrusted certificates. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - + OCC::Account @@ -466,7 +466,7 @@ Should the account be imported? Could not import accounts from legacy client configuration. No se pudieron importar las cuentas desde la configuración del cliente antiguo. - + Import Importar @@ -478,7 +478,7 @@ Should the account be imported? Skip Omitir - + OCC::AccountSettings @@ -633,7 +633,7 @@ Should the account be imported? Expand Memory - + Folder creation failed Falló la creación de la carpeta @@ -834,7 +834,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Parece que tiene habilitada la función de archivos virtuales en esta carpeta. En este momento no es posible descargar implícitamente archivos virtuales cifrados punto a punto. Para obtener la mejor experiencia con archivos virtuales y cifrado punto a punto, asegúrese que la carpeta cifrada esté marcada con "Hacer disponible localmente siempre". - + OCC::AccountSetupFromCommandLineJob @@ -930,7 +930,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) Archivos de certificado (*.p12 *.pfx) - + Certificate password: Contraseña del certificado: @@ -946,7 +946,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. Este servidor probablemente requiere un certificado del cliente SSL. - + OCC::Application @@ -998,7 +998,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ocurrió un error al acceder al archivo de configuración en %1. Por favor, revise que su cuenta de sistema pueda acceder al archivo. - + deleting eliminando @@ -1016,14 +1016,14 @@ Would you like to do this now? older software version más antiguo - + OCC::AuthenticationDialog &Password: &Contraseña: - + &Username: &Usuario: @@ -1035,7 +1035,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. Ingrese el usuario y la contraseña para "%1" en %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1061,12 +1061,12 @@ Would you like to do this now? The file %1 is currently in use - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + OCC::BulkPropagatorJob @@ -1109,7 +1109,7 @@ Would you like to do this now? Restoration failed: %1 Falló la restauración: %1 - + The file %1 is currently in use El archivo %1 está actualmente en uso @@ -1117,7 +1117,7 @@ Would you like to do this now? The local file was removed during sync. El archivo local fue eliminado durante la sincronización. - + OCC::CaseClashConflictSolver @@ -1144,11 +1144,11 @@ Would you like to do this now? Filename contains trailing spaces. El nombre de archivo contiene espacios al final. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - + OCC::CaseClashFilenameDialog @@ -1179,7 +1179,7 @@ Would you like to do this now? Filename contains illegal characters: %1 El nombre de archivo contiene caracteres no permitidos: %1 - + Filename contains leading and trailing spaces. El nombre de archivo contiene espacios al principio y al final. @@ -1235,7 +1235,7 @@ Would you like to do this now? today hoy - + OCC::CleanupPollsJob @@ -1253,7 +1253,7 @@ Would you like to do this now? Enter E2E passphrase Ingresar frase de contraseña E2E - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" @@ -1270,7 +1270,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, ingrese su frase de cifrado punto a punto:<br><br>Usuario: %2<br> Cuenta: %3<br> - + OCC::ConflictDialog @@ -1309,7 +1309,7 @@ Would you like to do this now? Keep server version Mantener la versión del servidor - + Local version Versión local @@ -1337,14 +1337,14 @@ Would you like to do this now? today hoy - + OCC::ConflictSolver Confirm deletion Confirmar eliminación - + Do you want to delete the directory <i>%1</i> and all its contents permanently? ¿Deseas eliminar el directorio <i>%1</i> y todo su contenido permanentemente? @@ -1364,7 +1364,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1388,11 +1388,11 @@ Would you like to do this now? The provided credentials are not correct Las credenciales proporcionadas no son correctas - + Timeout Tiempo de espera - + OCC::DataProtectionPage @@ -1411,7 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1453,11 +1457,11 @@ Would you like to do this now? Error while canceling deletion of %1 Error al cancelar la eliminación de %1 - + Error while canceling deletion of a file Error al cancelar la eliminación de un archivo - + OCC::DiscoverySingleDirectoryJob @@ -1468,7 +1472,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. - + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! @@ -1476,7 +1480,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + OCC::DiscoverySingleLocalDirectoryJob @@ -1495,11 +1499,11 @@ Would you like to do this now? Error while reading directory %1 Error al leer el directorio %1 - + Filename encoding is not valid La codificación del nombre de archivo es inválida - + OCC::EditLocallyJob @@ -1542,7 +1546,7 @@ Would you like to do this now? File %1 could not be locked. No se pudo bloquear el archivo %1. - + File %1 now locked. El archivo %1 está ahora bloqueado. @@ -1562,7 +1566,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! - + OCC::EditLocallyManager @@ -1580,7 +1584,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. Ocurrió un error al intentar verificar la solicitud de edición local. - + Could not find an account for local editing. No se pudo encontrar una cuenta para la edición local. @@ -1600,7 +1604,7 @@ Would you like to do this now? Please try again. Por favor, intente de nuevo. - + OCC::EncryptedFolderMetadataHandler @@ -1706,7 +1710,7 @@ Esto podría ser un problema con su librería OpenSSL. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. @@ -1714,7 +1718,7 @@ Esto podría ser un problema con su librería OpenSSL. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + OCC::Flow2AuthWidget @@ -1745,7 +1749,7 @@ Esto podría ser un problema con su librería OpenSSL. Switch to your browser to connect your account Cambiar al navegador para conectar con su cuenta - + Unable to open the Browser, please copy the link to your Browser. No se pudo abrir el navegador, por favor copie el enlace en su navegador. @@ -1753,7 +1757,7 @@ Esto podría ser un problema con su librería OpenSSL. Waiting for authorization Esperando autorización - + OCC::Folder @@ -1922,7 +1926,7 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Restore Files from Server - + Restore Files to Server @@ -1954,7 +1958,7 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Would you like to stop syncing this folder? ¿Desea detener la sincronización de esta carpeta? - + OCC::FolderCreationDialog @@ -1965,7 +1969,7 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Could not create a folder! Check your write permissions. ¡No se pudo crear la carpeta! Verifique sus permisos de escritura. - + Create new folder Crear nueva carpeta @@ -1981,14 +1985,14 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Folder already exists La carpeta ya existe - + OCC::FolderMan %1 (Sync is paused) %1 (La sincronización está pausada) - + (backup %1) @@ -2101,7 +2105,7 @@ For advanced users: this issue might be related to multiple sync database files Waiting to start syncing. Agurardando para iniciar la sincronización. - + OCC::FolderStatusDelegate @@ -2112,11 +2116,11 @@ For advanced users: this issue might be related to multiple sync database files File Archivo - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2197,7 +2201,7 @@ For advanced users: this issue might be related to multiple sync database files Preparing to sync … Preparándose para sincronizar ... - + Signed out Sesión cerrada @@ -2245,7 +2249,7 @@ For advanced users: this issue might be related to multiple sync database files ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2281,7 +2285,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Click to select a local folder to sync. Haz click para seleccionar una carpeta local a sincronizar. @@ -2301,7 +2305,7 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2328,7 +2332,7 @@ For advanced users: this issue might be related to multiple sync database files Create folder Crear carpeta - + Enter the name of the new folder to be created below "%1": Ingrese el nombre de la nueva carpeta que se creará debajo de "%1": @@ -2364,7 +2368,7 @@ For advanced users: this issue might be related to multiple sync database files You are already syncing the subfolder %1 at %2. - + OCC::FolderWizardSelectiveSync @@ -2387,11 +2391,11 @@ For advanced users: this issue might be related to multiple sync database files Virtual files are not supported at the selected location - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. - + OCC::GeneralSettings @@ -2494,7 +2498,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Move removed files to trash Mover archivos eliminados a la papelera @@ -2629,14 +2633,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp stable estable - + OCC::GETFileJob Connection Timeout El tiempo de la conexión expiró - + No E-Tag received from server, check Proxy/Gateway No se recibió un E-Tag del servidor, verifica el Proxy/Gateway @@ -2652,7 +2656,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp We received an unexpected download Content-Length. Recibimos una longitud de contenido de descarga inesperada. - + OCC::GetOrCreatePublicLinkShare @@ -2663,7 +2667,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - + Password for share required Se requiere contraseña para el recurso compartido @@ -2675,14 +2679,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp Sharing error Error al compartir - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Haz click aqui</a> para solicitar una contraseña de aplicación desde la interface Web. - + Enter Password Ingresa la Contraseña @@ -2694,7 +2698,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Reading from keychain failed with error: "%1" La lectura del llavero falló con el error: '%1' - + OCC::IgnoreListEditor @@ -2728,7 +2732,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: Añadir un nuevo patrón de exclusión: - + Allow Deletion Permitir eliminación @@ -2764,7 +2768,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un Remove all Eliminar todo - + OCC::InvalidFilenameDialog @@ -2783,7 +2787,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un Could not rename local file. %1 No se pudo renombrar el archivo local. %1 - + Error Error @@ -2863,7 +2867,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - + OCC::LegacyAccountSelectionDialog @@ -2885,7 +2889,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o cualquier versión posterior.</p> - + Close Cerrar @@ -2893,7 +2897,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un Legal notice Aviso legal - + OCC::LogBrowser @@ -2908,7 +2912,7 @@ Los elementos en los que se permite el borrado se eliminarán si impiden que un Open folder Abrir carpeta - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2922,18 +2926,18 @@ Note that using any logging command line options will override this setting.Esta configuración persiste entre reinicios del cliente. Tenga en cuenta que usar la línea de comandos para el registro anulará esta configuración. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> - + Error Error - + OCC::Mac::FileProviderEditLocallyJob @@ -3027,7 +3031,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co SOCKS5 proxy Proxy SOCKS5 - + Upload Bandwidth Ancho de banda para Carga @@ -3039,7 +3043,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Username for proxy server Nombre de usuario del servidor proxy - + OCC::NSISUpdater @@ -3058,7 +3062,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Get update Obtener la actualización - + New Version Available Nueva versión disponible @@ -3078,7 +3082,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Update manually Actualizar manualmente - + OCC::OCUpdater @@ -3129,7 +3133,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Update Check Verificar Actualizaciones - + Update status is unknown: Did not check for new updates. Estado de la actualización desconocido. No se verificó si había nuevas actualizaciones. @@ -3137,7 +3141,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co You are using the %1 update channel. Your installation is the latest version. - + OCC::OwncloudAdvancedSetupPage @@ -3165,7 +3169,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co In Finder's "Locations" sidebar section - + Local Sync Folder Carpeta de Sincronización Local @@ -3193,14 +3197,14 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Warning: The local folder is not empty. Pick a resolution! Advertencia: La carpeta local no está vacía. ¡Elija una resolución! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Se presentó una falla al conectarse a la dirección del servidor seguro <em>%1</em>. ¿Cómo deseas proceder?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p> Se presentó una falla al conectarse a la direccón especificada del servidor seguro. ¿Como deseas proceder?</p></body></html> @@ -3220,14 +3224,14 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Select a different URL Selecciona una liga diferente - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3292,7 +3296,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co macOS VFS for %1: Sync is running. macOS VFS para %1: Sincronización en progreso. - + OCC::OwncloudHttpCredsPage @@ -3325,7 +3329,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Could not load certificate. Maybe wrong password? No se pudo cargar el certificado. ¿Quizás la contraseña sea incorrecta? - + Server address does not seem to be valid La dirección del servidor parece ser inválida @@ -3334,7 +3338,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co %1 will be replaced with the application name El enlace a su interfaz web de %1 cuando lo abre en el navegador. - + OCC::OwncloudSetupWizard @@ -3345,7 +3349,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>¡La carpeta de sincronización local %1 fue creada exitosamente!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Conectado exitosamente a %1: %2 versión %3 (%4)</font><br/><br/> @@ -3453,7 +3457,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co failed. falló. - + OCC::OwncloudWizard @@ -3495,7 +3499,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Stay safe Manténgase seguro - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3511,7 +3515,7 @@ Cambiar a este modo cancelará cualquier sincronización en curso. Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualquier problema que surja. - + OCC::PasswordInputDialog @@ -3564,7 +3568,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Error while reading the database Error al leer la base de datos - + File has extension reserved for virtual files. El archivo tiene una extensión reservada para archivos virtuales. @@ -3696,7 +3700,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Upload of %1 exceeds %2 of space left in personal files. - + OCC::PropagateDirectory @@ -3715,7 +3719,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu File is currently in use El archivo se encuentra en uso - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 @@ -3723,7 +3727,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu unknown exception - + OCC::PropagateDownloadFile @@ -3754,7 +3758,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu File has changed since discovery El archivo ha cambiado desde que fue descubierto - + File was deleted from server El archivo fue borrado del servidor @@ -3778,7 +3782,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu The file could not be downloaded completely. El archivo no pudo ser descargado por completo. - + OCC::PropagateItemJob @@ -3808,7 +3812,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu The file %1 is currently in use El archivo %1 se encuentra en uso - + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 @@ -3820,14 +3824,14 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu unknown exception - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local - + Could not remove %1 because of a local file name clash No fue posible eliminar %1 porque hay un conflicto con el nombre de archivo local @@ -3835,14 +3839,14 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Temporary error when removing local item removed from server. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local - + Could not get file %1 from local DB @@ -3874,18 +3878,18 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu The file %1 is currently in use El archivo %1 está actualmente en uso - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Código de HTTP equivocado regresado por el servidor. Se esperaba 204, pero se recibió "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3907,11 +3911,11 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu The file %1 is currently in use El archivo %1 está actualmente en uso - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". - + OCC::PropagateRemoteMove @@ -3938,7 +3942,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Error writing metadata to the database Error al escribir los metadatos a la base de datos - + The file %1 is currently in use El archivo %1 está actualmente en uso @@ -3946,7 +3950,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3973,7 +3977,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu File Removed (start upload) %1 Archivo eliminado (comenzar la carga) %1 - + Local file changed during sync. El archivo local cambio durante la sincronización. @@ -3993,7 +3997,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Upload of %1 exceeds the quota for the folder La carga de %1 excede la cuota de la carpeta - + OCC::PropagateUploadFileNG @@ -4001,7 +4005,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu server error - + Folder is not accessible on the server. server error @@ -4026,7 +4030,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Unexpected return code from server (%1) Código de retorno del servidor inesperado (%1) - + OCC::PropagateUploadFileV1 @@ -4052,7 +4056,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Password: Contraseña: - + Proxy authentication required Se requiere de autenticación del Proxy @@ -4068,7 +4072,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Username: Nombre de usuario: - + OCC::SelectiveSyncDialog @@ -4082,7 +4086,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu An error occurred while loading the list of sub folders. Se presentó un error al cargar la lista de sub carpetas. - + Deselect remote folders you do not wish to synchronize. Deselecciona las carpetas remotas que no desees sincronizar. @@ -4102,18 +4106,18 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Size Tamaño - + OCC::ServerNotificationHandler Dismiss Descartar - + Reply Responder - + OCC::sesSnackBar @@ -4124,11 +4128,11 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Success - + Warning Advertencia - + OCC::SettingsDialog @@ -4140,7 +4144,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Account Cuenta - + General General @@ -4152,7 +4156,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Settings Configuraciones - + OCC::ShareeModel @@ -4160,7 +4164,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Resultados de búsqueda global @@ -4172,7 +4176,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Search globally Búsqueda global - + OCC::ShareManager @@ -4194,7 +4198,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Could not find local folder for %1 No se pudo encontrar una carpeta local para %1 - + Internal link Enlace interno @@ -4218,7 +4222,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Today Hoy - + OCC::SocketApi @@ -4309,7 +4313,7 @@ El servidor respondió con el error: %2 Open in browser Abrir en el navegador - + Resharing this file is not allowed No se permite volver a compartir este archivo @@ -4345,7 +4349,7 @@ El servidor respondió con el error: %2 Unlock file Desbloquear archivo - + OCC::SslButton @@ -4436,7 +4440,7 @@ El servidor respondió con el error: %2 The connection is not secure La conexión no es segura - + This connection is NOT secure as it is not encrypted. @@ -4444,7 +4448,7 @@ El servidor respondió con el error: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4487,7 +4491,7 @@ El servidor respondió con el error: %2 Issuer: %1 Emitido por: %1 - + Organization: %1 Organización: %1 @@ -4507,7 +4511,7 @@ El servidor respondió con el error: %2 with Certificate %1 con Certificado %1 - + OCC::SyncEngine @@ -4518,7 +4522,7 @@ El servidor respondió con el error: %2 Cannot open the sync journal No se puede abrir el diario de sincronización - + Could not set file record to local DB: %1 No se pudo establecer el registro del archivo en la base de datos local: %1 @@ -4567,7 +4571,7 @@ El servidor respondió con el error: %2 Using virtual files with suffix, but suffix is not set Usando archivos virtuales con sufijo, pero el sufijo no está establecido - + OCC::SyncStatusSummary @@ -4622,11 +4626,11 @@ El servidor respondió con el error: %2 Syncing file %1 of %2 Sincronizando archivo %1 de %2 - + You need to accept the terms of service - + OCC::Systray @@ -4666,18 +4670,18 @@ El servidor respondió con el error: %2 Resume sync for all Reanudar sincronización para todos - + Settings Configuraciones - + OCC::TermsOfServiceCheckWidget Copy Link Copiar enlace - + Link copied to clipboard. Enlace copiado al portapapeles. @@ -4693,7 +4697,7 @@ El servidor respondió con el error: %2 Waiting for terms to be accepted - + OCC::Theme @@ -4761,11 +4765,11 @@ El servidor respondió con el error: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4780,18 +4784,18 @@ El servidor respondió con el error: %2 Search has failed for '%1'. Error: %2 La búsqueda falló para '%1'. Error: %2 - + Search has failed for '%2'. La búsqueda falló para '%2'. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. No se pudo finalizar el ítem. - + Failed to unlock encrypted folder. No se pudo desbloquear la carpeta cifrada. @@ -4799,7 +4803,7 @@ El servidor respondió con el error: %2 Failed to update folder metadata. No se pudieron actualizar los metadatos de la carpeta. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4854,7 +4858,7 @@ El servidor respondió con el error: %2 Quota Warning - %1 percent or more storage in use - + Quota is updated; %1 percent of the total space is used. @@ -4874,7 +4878,7 @@ El servidor respondió con el error: %2 Trigger the migration - + OCC::UserModel @@ -4897,11 +4901,11 @@ El servidor respondió con el error: %2 Remove account - + Remove connection Eliminar conexión - + OCC::UserStatusSelectorModel @@ -4911,7 +4915,7 @@ El servidor respondió con el error: %2 - + %n hour(s) @@ -4977,7 +4981,7 @@ El servidor respondió con el error: %2 Today Hoy - + OCC::Vfs @@ -4988,18 +4992,18 @@ El servidor respondió con el error: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. no se pudo descargar %1. - + > More details > Más detalles @@ -5023,7 +5027,7 @@ El servidor respondió con el error: %2 More details Más detalles - + OCC::VfsSuffix @@ -5066,7 +5070,7 @@ El servidor respondió con el error: %2 Host your own server Aloje su propio servidor - + Keep your data secure and under your control Mantenga sus datos seguros y bajo control @@ -5078,7 +5082,7 @@ El servidor respondió con el error: %2 Sign up with provider Registrarse con un proveedor - + OCC::WizardProxySettingsDialog @@ -5102,18 +5106,18 @@ El servidor respondió con el error: %2 SOCKS5 proxy Proxy SOCKS5 - + Username for proxy server Nombre de usuario del servidor proxy - + OwncloudAdvancedSetupPage &Local Folder Carpeta &Local - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si esta opción está seleccionada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marques esta opción si el contenido local debe ser cargado a la carpeta de los servidores.</p></body></html> @@ -5162,18 +5166,18 @@ El servidor respondió con el error: %2 Username Nombre de usuario - + OwncloudHttpCredsPage &Password &Contraseña - + &Username &Nombre de Usuario - + OwncloudSetupPage @@ -5259,7 +5263,7 @@ El servidor respondió con el error: %2 Updating end-to-end encryption metadata - + Updating local metadata Actualizando los metadatos locales @@ -5279,7 +5283,7 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado - + ProxySettings @@ -5298,7 +5302,7 @@ El servidor respondió con el error: %2 No proxy Sin proxy - + Note: proxy settings have no effects for accounts on localhost Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local @@ -5314,7 +5318,7 @@ El servidor respondió con el error: %2 Use system proxy Usar el sistema de proxy - + QObject @@ -5407,7 +5411,7 @@ El servidor respondió con el error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5511,7 +5515,7 @@ El servidor respondió con el error: %2 now ahora - + ResolveConflictsDialog @@ -5534,7 +5538,7 @@ El servidor respondió con el error: %2 Cancel Cancelar - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Elija si quiere mantener la versión local, la versión del servidor o ambas. Si elige ambas, el archivo local tendrá un número añadido a su nombre. @@ -5546,7 +5550,7 @@ El servidor respondió con el error: %2 Solve sync conflicts Resolver los conflictos de sincronización - + SesErrorBox @@ -5564,11 +5568,11 @@ El servidor respondió con el error: %2 Open local or team folders - + Website - + ShareDelegate @@ -5602,7 +5606,7 @@ El servidor respondió con el error: %2 Copy share link Copiar enlace de uso compartido - + Custom Permissions @@ -5642,7 +5646,7 @@ El servidor respondió con el error: %2 View only Sólo lectura - + ShareeSearchField @@ -5680,11 +5684,11 @@ El servidor respondió con el error: %2 Sharing is disabled. Compartir está deshabilitado. - + This item cannot be shared. No se puede compartir este elemento. - + SyncJournalDb @@ -5698,7 +5702,7 @@ El servidor respondió con el error: %2 Open browser - + Resolve conflicts Resolver conflictos @@ -5706,7 +5710,7 @@ El servidor respondió con el error: %2 Sync now Sincronizar ahora - + TalkReplyTextField @@ -5728,11 +5732,11 @@ El servidor respondió con el error: %2 Switch to your browser to accept the terms of service - + Terms of Service - + theme @@ -5755,7 +5759,7 @@ El servidor respondió con el error: %2 Sync is paused La sincronización está pausada - + Sync is running La Sincronización está en curso @@ -5775,7 +5779,7 @@ El servidor respondió con el error: %2 Waiting to start syncing Esperando para empezar la sincronización - + TrayFoldersMenuButton @@ -5813,7 +5817,7 @@ El servidor respondió con el error: %2 Account switcher and settings menu - + Add account @@ -5849,7 +5853,7 @@ El servidor respondió con el error: %2 Settings - + TrayWindowHeader @@ -5860,11 +5864,11 @@ El servidor respondió con el error: %2 Open %1 in browser - + Open local or team folders - + TrayWindowHeaderBar @@ -5875,7 +5879,7 @@ El servidor respondió con el error: %2 Open %1 in browser - + Open Nextcloud in browser @@ -5887,7 +5891,7 @@ El servidor respondió con el error: %2 Website - + UnifiedSearchInputContainer @@ -5955,18 +5959,18 @@ El servidor respondió con el error: %2 Remove account - + Switch to account Cambiar a la cuenta - + UserStatusMessageView Apply Aplicar - + Cancel Cancelar @@ -5986,7 +5990,7 @@ El servidor respondió con el error: %2 What is your status? - + UserStatusSetStatusView @@ -6032,7 +6036,7 @@ El servidor respondió con el error: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6094,7 +6098,7 @@ El servidor respondió con el error: %2 - + utility @@ -6121,7 +6125,7 @@ El servidor respondió con el error: %2 Free up local space Liberar espacio local - + Make always available locally Hacer que esté siempre disponible localmente @@ -6137,7 +6141,7 @@ El servidor respondió con el error: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Se presentó un error al abrir el cliente de correo electrónico para crear un nuevo mensaje. ¿Tal vez no se ha configurado un cliente de correo electrónico por defecto? - + ValidateChecksumHeader diff --git a/translations/client_fr.ts b/translations/client_fr.ts index d82c9cf7fad19..ce0cdbf7b66d5 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -6,22 +6,22 @@ In %1 Dans %1 - + Open %1 locally Ouvrir %1 localement - + ActivityItemContent Dismiss Rejeter - + Open file details Ouvrir les détails du fichier - + ActivityList @@ -32,11 +32,11 @@ No activities yet Pas encore d'activité - + Scroll to top Défiler vers le haut - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Décliner la notification d'appel de Talk - + Talk notification caller avatar Avatar de l'appelant de la notification Talk - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Quitter le client de synchro - + Recently changed Modifié récemment @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Synchronisation de %1 sur %2 (%3 restant⸱s) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Sélecteur de compte et menu de paramètres - + Add account Ajouter un compte @@ -185,7 +185,7 @@ Settings Paramètres - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Recharger - + Remove local copies Supprimer les copies locales - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Réinitialiser l'environnement de fichiers virtuels - + Virtual files settings Paramètres des fichiers virtuels - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Libérer de l’espace… - + Local storage use Utilisation du stockage local - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Synchroniser les modifications pour l'environnement VFS. macOS peut ignorer ou retarder cette demande. - + Request sync Synchroniser @@ -304,18 +304,18 @@ macOS may ignore or delay this request. Syncing Synchronisation - + FileSystem Could not remove folder "%1" Impossible de supprimer le dossier "%1" - + Error removing "%1": %2 Erreur lors de la suppression de "%1" : %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS may ignore or delay this request. Copy Link Copier le lien - + Logo Logo @@ -338,7 +338,7 @@ macOS may ignore or delay this request. Switch to your browser to connect your account Basculez sur votre navigateur pour connecter votre compte - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS may ignore or delay this request. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS may ignore or delay this request. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Créer un dossier @@ -399,7 +399,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS may ignore or delay this request. New activities Nouvelles activités - + Unified search results list Liste des résultats de la recherche unifiée - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS may ignore or delay this request. The server enforces strict transport security and does not accept untrusted certificates. Le serveur applique une sécurité de transport stricte et n’accepte pas les certificats non approuvés. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Le serveur a mis trop de temps à répondre. Vérifiez votre connexion et réessayez la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. - + OCC::Account @@ -468,7 +468,7 @@ Le compte doit-il être importé ? Could not import accounts from legacy client configuration. Impossible d'importer des comptes à partir de l'ancienne configuration client. - + Import Importer @@ -480,7 +480,7 @@ Le compte doit-il être importé ? Skip Ignorer - + OCC::AccountSettings @@ -635,7 +635,7 @@ Le compte doit-il être importé ? Expand Memory - + Folder creation failed Échec de la création du dossier @@ -834,7 +834,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Il semble que la fonctionnalité des Fichiers Virtuels soit activée sur ce dossier. Pour l'instant, il n'est pas possible de télécharger implicitement des fichiers virtuels qui sont chiffrés de bout en bout. Pour bénéficier d'une expérience optimale avec les fichiers virtuels et le chiffrement de bout en bout, assurez-vous que le dossier chiffré soit marqué par l'option "Toujours rendre disponible localement". - + OCC::AccountSetupFromCommandLineJob @@ -930,7 +930,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) Fichiers de certificats (*.p12 *.pfx) - + Certificate password: Mot de passe du certificat : @@ -946,7 +946,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. Ce serveur requiert probablement un certificat SSL client. - + OCC::Application @@ -998,7 +998,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Une erreur est survenue lors de l'accès au fichier de configuration à %1. Merci de vérifier que le fichier est accessible du compte système. - + deleting supprimés @@ -1016,14 +1016,14 @@ Would you like to do this now? older software version antérieures - + OCC::AuthenticationDialog &Password: &Password: - + &Username: &Username: @@ -1035,7 +1035,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. Saisir le nom d’utilisateur et le mot de passe pour « %1 » sur %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1061,12 +1061,12 @@ Would you like to do this now? The file %1 is currently in use Le fichier %1 est en cours d'utilisation - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossible de mettre à jour les métadonnées du nouveau fichier %1. - + OCC::BulkPropagatorJob @@ -1109,7 +1109,7 @@ Would you like to do this now? Restoration failed: %1 Échec de la restauration : %1 - + The file %1 is currently in use Le fichier %1 est en cours d'utilisation @@ -1117,7 +1117,7 @@ Would you like to do this now? The local file was removed during sync. Le fichier local a été supprimé pendant la synchronisation. - + OCC::CaseClashConflictSolver @@ -1144,11 +1144,11 @@ Would you like to do this now? Filename contains trailing spaces. Le nom de fichier contient des espaces de fin. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. Vous n'avez pas les permissions de renommer ce fichier. Veuillez demander à son auteur de le renommer. - + OCC::CaseClashFilenameDialog @@ -1179,7 +1179,7 @@ Would you like to do this now? Filename contains illegal characters: %1 Le nom du fichier contient des caractères illégaux : %1 - + Filename contains leading and trailing spaces. Le nom de fichier contient des espaces de début et de fin. @@ -1235,7 +1235,7 @@ Would you like to do this now? today aujourd'hui - + OCC::CleanupPollsJob @@ -1253,7 +1253,7 @@ Would you like to do this now? Enter E2E passphrase Entrez la phrase secrète E2E - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Saisir le code PIN @@ -1270,7 +1270,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Veuillez entrer votre phrase de passe de chiffrement de bout en bout :<br><br>Nom d'utilisateur : %2<br>Compte : %3<br> - + OCC::ConflictDialog @@ -1309,7 +1309,7 @@ Would you like to do this now? Keep server version Conserver la version serveur - + Local version Version locale @@ -1337,14 +1337,14 @@ Would you like to do this now? today aujourd'hui - + OCC::ConflictSolver Confirm deletion Confirmer la suppression - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Voulez-vous supprimer le dossier <i>%1</i> et tout son contenu définitivement ? @@ -1364,7 +1364,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1388,11 +1388,11 @@ Would you like to do this now? The provided credentials are not correct Les informations d'identification fournies ne sont pas correctes - + Timeout Délai d'attente - + OCC::DataProtectionPage @@ -1411,7 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1453,11 +1457,11 @@ Would you like to do this now? Error while canceling deletion of %1 Erreur lors de l'annulation de la suppression de %1 - + Error while canceling deletion of a file Erreur lors de l'annulation de la suppression d'un fichier - + OCC::DiscoverySingleDirectoryJob @@ -1468,7 +1472,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. Erreur de configuration des métadonnées chiffrées: la signature initiale du serveur est vide. - + Server error: PROPFIND reply is not XML formatted! Erreur du serveur : La réponse PROPFIND n'est pas au format XML ! @@ -1476,7 +1480,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Le serveur a renvoyé une réponse inattendue et illisible. Veuillez contacter l'administrateur de votre serveur. - + OCC::DiscoverySingleLocalDirectoryJob @@ -1495,11 +1499,11 @@ Would you like to do this now? Error while reading directory %1 Erreur de lecture du dossier %1 - + Filename encoding is not valid L’encodage du nom de fichier n’est pas valide - + OCC::EditLocallyJob @@ -1542,7 +1546,7 @@ Would you like to do this now? File %1 could not be locked. Impossible de verrouiller le fichier %1. - + File %1 now locked. Fichier %1 désormais verrouillé. @@ -1562,7 +1566,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! Erreur de serveur : La réponse de PROPFIND n'est pas formatée en XML ! - + OCC::EditLocallyManager @@ -1580,7 +1584,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. Une erreur est survenue, tentative de vérification de la requête pour éditer localement. - + Could not find an account for local editing. Impossible de trouver un compte pour l'édition locale. @@ -1600,7 +1604,7 @@ Would you like to do this now? Please try again. Merci de réessayer. - + OCC::EncryptedFolderMetadataHandler @@ -1706,7 +1710,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. @@ -1714,7 +1718,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + OCC::Flow2AuthWidget @@ -1745,7 +1749,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. Switch to your browser to connect your account Basculez sur votre navigateur pour connecter votre compte - + Unable to open the Browser, please copy the link to your Browser. Impossible d'ouvrir le navigateur, veuillez copier le lien dans votre navigateur Web. @@ -1753,7 +1757,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. Waiting for authorization En attente de l'autorisation - + OCC::Folder @@ -1926,7 +1930,7 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les Restore Files from Server Restaurer des fichiers à partir du serveur - + Restore Files to Server Restaurer les fichiers sur le serveur @@ -1958,7 +1962,7 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les Would you like to stop syncing this folder? Voulez vous arrêter la synchronisation de ce dossier ? - + OCC::FolderCreationDialog @@ -1969,7 +1973,7 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les Could not create a folder! Check your write permissions. Impossible de créer le dossier ! Veuillez vérifier vos permissions d’écriture. - + Create new folder Créer un nouveau dossier @@ -1985,14 +1989,14 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les Folder already exists Le dossier existe déjà - + OCC::FolderMan %1 (Sync is paused) %1 (Synchronisation en pause) - + (backup %1) @@ -2108,7 +2112,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Waiting to start syncing. En attente de synchronisation. - + OCC::FolderStatusDelegate @@ -2119,11 +2123,11 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi File Fichier - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2204,7 +2208,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Preparing to sync … Préparation de la synchronisation... - + Signed out Session fermée @@ -2252,7 +2256,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2288,7 +2292,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Choose - + Click to select a local folder to sync. Cliquez pour choisir un dossier local à synchroniser. @@ -2308,7 +2312,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2335,7 +2339,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Create folder Créer un dossier - + Enter the name of the new folder to be created below "%1": Entrez le nom du nouveau dossier à créer dans "%1" : @@ -2371,7 +2375,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi You are already syncing the subfolder %1 at %2. Vous synchronisez déjà le sous-dossier %1 à %2. - + OCC::FolderWizardSelectiveSync @@ -2394,11 +2398,11 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Virtual files are not supported at the selected location Les fichiers virtuels ne sont pas pris en charge à l'emplacement sélectionné - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Vous ne pouvez pas définir la racine d'une partition Windows pour votre dossier local. Veuillez choisir un (sous)dossier de la partition. - + OCC::GeneralSettings @@ -2506,7 +2510,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d More Information - + Move removed files to trash Déplacer les fichiers supprimés vers la corbeille @@ -2643,14 +2647,14 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d stable stable - + OCC::GETFileJob Connection Timeout Délai d'attente de connexion dépassé - + No E-Tag received from server, check Proxy/Gateway Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle @@ -2666,7 +2670,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d We received an unexpected download Content-Length. Nous avons reçu un téléchargement de Contenu-Longeur inattendu - + OCC::GetOrCreatePublicLinkShare @@ -2677,7 +2681,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d %1 - + Password for share required Mot de passe requis @@ -2689,14 +2693,14 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Sharing error Erreur de partage - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Cliquez ici</a> pour demander un mot de passe d'application depuis l'interface web. - + Enter Password Saisissez le mot de passe @@ -2708,7 +2712,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Reading from keychain failed with error: "%1" La lecture à partir du trousseau a échoué avec l'erreur : "%1" - + OCC::IgnoreListEditor @@ -2742,7 +2746,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Add a new ignore pattern: Ajouter un nouveau modèle d'exclusion : - + Allow Deletion Autoriser la suppression @@ -2777,7 +2781,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e Remove all Tout retirer - + OCC::InvalidFilenameDialog @@ -2796,7 +2800,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e Could not rename local file. %1 Impossible de renommer le dossier local %1 - + Error Erreur @@ -2876,7 +2880,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e You don't have the permission to rename this file. Please ask the author of the file to rename it. Vous n'avez pas la permission de renommer ce fichier. Veuillez demander à son auteur de le renommer. - + OCC::LegacyAccountSelectionDialog @@ -2898,7 +2902,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Sous licence GNU General Public License (GPL) Version 2.0 ou supérieure.</p> - + Close Fermer @@ -2906,7 +2910,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e Legal notice Notice légale - + OCC::LogBrowser @@ -2921,7 +2925,7 @@ Les éléments dont la suppression est autorisée seront supprimés s'ils e Open folder Ouvrir le dossier - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2935,18 +2939,18 @@ Note that using any logging command line options will override this setting.Ce paramètre persiste lors des redémarrages du client. Notez que l'utilisation de toute option de ligne de commande de journalisation remplacera ce paramètre. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Le fichier "%1"<br/>ne peut pas être ouvert en écriture.<br/><br/>Le fichier de log <b>ne peut pas</b> être sauvegardé !</nobr> - + Error Erreur - + OCC::Mac::FileProviderEditLocallyJob @@ -3040,7 +3044,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat SOCKS5 proxy Proxy SOCKS5 - + Upload Bandwidth Bande passante d'émission @@ -3052,7 +3056,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Username for proxy server Nom d’utilisateur pour le serveur proxy - + OCC::NSISUpdater @@ -3071,7 +3075,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Get update Télécharger la version - + New Version Available Nouvelle version disponible @@ -3091,7 +3095,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Update manually Mettre à jour manuellement - + OCC::OCUpdater @@ -3142,7 +3146,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Update Check Recherche de mise à jour - + Update status is unknown: Did not check for new updates. L'état du processus de mise à jour est inconnu. Impossible de vérifier la présence de mises à jour. @@ -3150,7 +3154,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat You are using the %1 update channel. Your installation is the latest version. Vous utilisez le canal de mise à jour %1. Votre installation est la dernière version. - + OCC::OwncloudAdvancedSetupPage @@ -3178,7 +3182,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat In Finder's "Locations" sidebar section Dans la section « Emplacements » du panneau latéral du Finder - + Local Sync Folder Dossier de synchronisation local @@ -3206,14 +3210,14 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Warning: The local folder is not empty. Pick a resolution! Avertissement : Le dossier local n'est pas vide. Choisissez une option. - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Impossible de se connecter à l'adresse sécurisée <em>%1</em>. Que souhaitez-vous faire ?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Impossible de se connecter au serveur via l'adresse sécurisée indiquée. Que souhaitez-vous faire ?</p></body></html> @@ -3233,14 +3237,14 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Select a different URL Choisir une URL différente - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1 : %2 @@ -3305,7 +3309,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat macOS VFS for %1: Sync is running. macOS VFS pour %1: Synchronisation en cours. - + OCC::OwncloudHttpCredsPage @@ -3338,7 +3342,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Could not load certificate. Maybe wrong password? Impossible de charger le certificat. Vérifiez le mot de passe saisi. - + Server address does not seem to be valid L'adresse du serveur ne semble pas être valide @@ -3347,7 +3351,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat %1 will be replaced with the application name Adresse URL visible dans la barre d'adresse de votre navigateur Web lorsque vous êtes connecté à %1. - + OCC::OwncloudSetupWizard @@ -3358,7 +3362,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Dossier de synchronisation local %1 créé avec succès !</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connecté avec succès à %1 : %2 version %3 (%4)</font><br/><br/> @@ -3466,7 +3470,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat failed. échoué. - + OCC::OwncloudWizard @@ -3508,7 +3512,7 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat Stay safe Restez en sécurité - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3524,7 +3528,7 @@ Le passage à ce mode annulera toute synchronisation en cours. Il s'agit d'un nouveau mode expérimental. Si vous décidez de l'utiliser, veuillez signaler tout problème qui surviendrait. - + OCC::PasswordInputDialog @@ -3577,7 +3581,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Error while reading the database Erreur de lecture de la base de données - + File has extension reserved for virtual files. Le fichier a une extension réservée pour les fichiers virtuels. @@ -3709,7 +3713,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Upload of %1 exceeds %2 of space left in personal files. Le téléversement de %1 dépasse les %2 d'espace restant de l'espace personnel. - + OCC::PropagateDirectory @@ -3728,7 +3732,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' File is currently in use Le fichier est actuellement en cours d'utilisation - + The folder %1 cannot be made read-only: %2 Le dossier %1 ne peut pas être mis en lecture seule : %2 @@ -3736,7 +3740,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' unknown exception Exception inconnue - + OCC::PropagateDownloadFile @@ -3767,7 +3771,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' File has changed since discovery Le fichier a changé depuis sa découverte - + File was deleted from server Le fichier a été supprimé du serveur @@ -3791,7 +3795,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' The file could not be downloaded completely. Le fichier n'a pas pu être téléchargé intégralement. - + OCC::PropagateItemJob @@ -3821,7 +3825,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' The file %1 is currently in use Le fichier %1 est en cours d'utilisation - + The folder %1 cannot be made read-only: %2 Le dossier %1 ne peut être rendu en lecture seule : %2 @@ -3833,14 +3837,14 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' unknown exception Exception inconnue - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale - + Could not remove %1 because of a local file name clash Impossible de retirer %1 en raison d'un conflit de nom de fichier local @@ -3848,14 +3852,14 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Temporary error when removing local item removed from server. Erreur temporaire lors de la suppression d'un élément local supprimé du serveur. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale - + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale @@ -3887,18 +3891,18 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' The file %1 is currently in use Le fichier %1 est en cours d'utilisation - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur reçue est "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3920,11 +3924,11 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' The file %1 is currently in use Le fichier %1 est en cours d'utilisation - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". - + OCC::PropagateRemoteMove @@ -3951,7 +3955,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Error writing metadata to the database Erreur à l'écriture des métadonnées dans la base de données - + The file %1 is currently in use Le fichier %1 est en cours d'utilisation @@ -3959,7 +3963,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3986,7 +3990,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' File Removed (start upload) %1 Fichier supprimé (début du téléversement) %1 - + Local file changed during sync. Fichier local modifié pendant la synchronisation. @@ -4006,7 +4010,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Upload of %1 exceeds the quota for the folder Le téléversement de %1 provoque un dépassement du quota du dossier - + OCC::PropagateUploadFileNG @@ -4014,7 +4018,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' server error Fichier non accessible sur le serveur. - + Folder is not accessible on the server. server error Dossier non accessible sur le serveur. @@ -4039,7 +4043,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Unexpected return code from server (%1) Le serveur a retourné un code inattendu (%1) - + OCC::PropagateUploadFileV1 @@ -4065,7 +4069,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Password: Mot de passe : - + Proxy authentication required Authentification requise sur le proxy @@ -4081,7 +4085,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Username: Nom d’utilisateur : - + OCC::SelectiveSyncDialog @@ -4095,7 +4099,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' An error occurred while loading the list of sub folders. Une erreur est survenue lors du chargement de la liste des sous-dossiers. - + Deselect remote folders you do not wish to synchronize. Désélectionnez les sous-dossiers distants que vous ne souhaitez pas synchroniser. @@ -4115,18 +4119,18 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Size Taille - + OCC::ServerNotificationHandler Dismiss Ignorer - + Reply Répondre - + OCC::sesSnackBar @@ -4137,11 +4141,11 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Success - + Warning Attention - + OCC::SettingsDialog @@ -4153,7 +4157,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Account Compte - + General Général @@ -4165,7 +4169,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Settings Paramètres - + OCC::ShareeModel @@ -4173,7 +4177,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Résultats de la recherche globale @@ -4185,7 +4189,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Search globally Rechercher globalement - + OCC::ShareManager @@ -4207,7 +4211,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Could not find local folder for %1 Impossible de trouver le dossier local pour %1 - + Internal link Lien interne @@ -4231,7 +4235,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Today Aujourd'hui - + OCC::SocketApi @@ -4322,7 +4326,7 @@ Le serveur a répondu avec l'erreur : %2 Open in browser Ouvrir dans le navigateur - + Resharing this file is not allowed Repartager ce fichier est interdit @@ -4358,7 +4362,7 @@ Le serveur a répondu avec l'erreur : %2 Unlock file Déverrouiller le fichier - + OCC::SslButton @@ -4449,7 +4453,7 @@ Le serveur a répondu avec l'erreur : %2 The connection is not secure La connexion n'est pas sécurisée - + This connection is NOT secure as it is not encrypted. @@ -4457,7 +4461,7 @@ Le serveur a répondu avec l'erreur : %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4500,7 +4504,7 @@ Le serveur a répondu avec l'erreur : %2 Issuer: %1 Émetteur : %1 - + Organization: %1 Organisation : %1 @@ -4520,7 +4524,7 @@ Le serveur a répondu avec l'erreur : %2 with Certificate %1 avec certificat %1 - + OCC::SyncEngine @@ -4531,7 +4535,7 @@ Le serveur a répondu avec l'erreur : %2 Cannot open the sync journal Impossible d'ouvrir le journal de synchronisation - + Could not set file record to local DB: %1 Impossible de définir l'enregistrement du fichier dans la base de données locale : %1 @@ -4580,7 +4584,7 @@ Le serveur a répondu avec l'erreur : %2 Using virtual files with suffix, but suffix is not set Utilisation de fichiers virtuels avec suffixe, mais le suffixe n'est pas défini - + OCC::SyncStatusSummary @@ -4635,11 +4639,11 @@ Le serveur a répondu avec l'erreur : %2 Syncing file %1 of %2 Synchronisation du fichier %1 sur %2 - + You need to accept the terms of service Vous devez accepter les conditions d'utilisation - + OCC::Systray @@ -4679,18 +4683,18 @@ Le serveur a répondu avec l'erreur : %2 Resume sync for all Relancer toutes les synchros - + Settings Paramètres - + OCC::TermsOfServiceCheckWidget Copy Link Copier le lien - + Link copied to clipboard. Lien copié dans le presse-papiers. @@ -4706,7 +4710,7 @@ Le serveur a répondu avec l'erreur : %2 Waiting for terms to be accepted En attente de l'acceptation des conditions - + OCC::Theme @@ -4774,11 +4778,11 @@ Le serveur a répondu avec l'erreur : %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4793,18 +4797,18 @@ Le serveur a répondu avec l'erreur : %2 Search has failed for '%1'. Error: %2 La recherche de '%1' a échoué. Erreur : %2 - + Search has failed for '%2'. La recherche de '%2' a échoué. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Impossible de finaliser l'item. - + Failed to unlock encrypted folder. Échec du déverrouillage du dossier chiffré. @@ -4812,7 +4816,7 @@ Le serveur a répondu avec l'erreur : %2 Failed to update folder metadata. Échec du téléversement du dossier des métadonnées. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4867,7 +4871,7 @@ Le serveur a répondu avec l'erreur : %2 Quota Warning - %1 percent or more storage in use Alerte quota - %1 pour cent ou plus de stockage utilisé - + Quota is updated; %1 percent of the total space is used. Quota mis à jour ; %1 pour cent de l’espace total est utilisé. @@ -4887,7 +4891,7 @@ Le serveur a répondu avec l'erreur : %2 Trigger the migration Déclencher la migration - + OCC::UserModel @@ -4910,11 +4914,11 @@ Le serveur a répondu avec l'erreur : %2 Remove account Retirer le compte - + Remove connection Supprimer la connexion - + OCC::UserStatusSelectorModel @@ -4924,7 +4928,7 @@ Le serveur a répondu avec l'erreur : %2 %n jours - + %n hour(s) %n heure @@ -4990,7 +4994,7 @@ Le serveur a répondu avec l'erreur : %2 Today Aujourd'hui - + OCC::Vfs @@ -5001,18 +5005,18 @@ Le serveur a répondu avec l'erreur : %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 est un lecteur réseau. Il ne prend pas en charge les fichiers virtuels. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 n'est pas un système de fichiers NTFS. Il ne prend pas en charge les fichiers virtuels. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 ne peut pas être téléchargé. - + > More details > Plus de détails @@ -5036,7 +5040,7 @@ Le serveur a répondu avec l'erreur : %2 More details Plus de détails - + OCC::VfsSuffix @@ -5079,7 +5083,7 @@ Le serveur a répondu avec l'erreur : %2 Host your own server Hébergez votre propre serveur - + Keep your data secure and under your control Gardez vos données en sécurité et sous votre contrôle @@ -5091,7 +5095,7 @@ Le serveur a répondu avec l'erreur : %2 Sign up with provider S'inscrire auprès d'un fournisseur - + OCC::WizardProxySettingsDialog @@ -5115,18 +5119,18 @@ Le serveur a répondu avec l'erreur : %2 SOCKS5 proxy Proxy SOCKS5 - + Username for proxy server Nom d’utilisateur du serveur proxy - + OwncloudAdvancedSetupPage &Local Folder &Dossier local - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si cette case est cochée, le contenu existant du dossier local sera supprimé pour démarrer une synchronisation propre depuis le serveur.</p><p>Ne pas cocher si le contenu local doit être téléversé vers le serveur.</p></body></html> @@ -5175,18 +5179,18 @@ Le serveur a répondu avec l'erreur : %2 Username Nom d’utilisateur - + OwncloudHttpCredsPage &Password &Mot de passe - + &Username &Nom d’utilisateur - + OwncloudSetupPage @@ -5272,7 +5276,7 @@ Le serveur a répondu avec l'erreur : %2 Updating end-to-end encryption metadata Mise à jour des métadonnées de chiffrement de bout en bout - + Updating local metadata Mise à jour des méta-données locales @@ -5292,7 +5296,7 @@ Le serveur a répondu avec l'erreur : %2 Virtual file created Fichier virtuel créé - + ProxySettings @@ -5311,7 +5315,7 @@ Le serveur a répondu avec l'erreur : %2 No proxy Aucun serveur proxy - + Note: proxy settings have no effects for accounts on localhost Remarque : les paramètres de proxy n'ont aucun effet sur les comptes locaux @@ -5327,7 +5331,7 @@ Le serveur a répondu avec l'erreur : %2 Use system proxy Utiliser le proxy système - + QObject @@ -5420,7 +5424,7 @@ Le serveur a répondu avec l'erreur : %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Le fichier est trop volumineux pour être téléchargé. Vous devrez peut-être choisir un fichier plus petit ou contacter l'administrateur de votre serveur pour obtenir de l'aide. @@ -5524,7 +5528,7 @@ Le serveur a répondu avec l'erreur : %2 now A l'instant - + ResolveConflictsDialog @@ -5547,7 +5551,7 @@ Le serveur a répondu avec l'erreur : %2 Cancel Annuler - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Choisissez si vous souhaitez conserver la version locale, la version serveur, ou les deux. Si vous choisissez les deux, un numéro sera ajouté au nom du fichier local. @@ -5559,7 +5563,7 @@ Le serveur a répondu avec l'erreur : %2 Solve sync conflicts Résoudre les conflits de synchronisation - + SesErrorBox @@ -5577,11 +5581,11 @@ Le serveur a répondu avec l'erreur : %2 Open local or team folders - + Website - + ShareDelegate @@ -5615,7 +5619,7 @@ Le serveur a répondu avec l'erreur : %2 Copy share link Copier le lien de partage - + Custom Permissions @@ -5655,7 +5659,7 @@ Le serveur a répondu avec l'erreur : %2 View only Afficher seulement - + ShareeSearchField @@ -5693,11 +5697,11 @@ Le serveur a répondu avec l'erreur : %2 Sharing is disabled. Le partage est désactivé. - + This item cannot be shared. L'élément ne peut pas être partagé. - + SyncJournalDb @@ -5711,7 +5715,7 @@ Le serveur a répondu avec l'erreur : %2 Open browser Ouvrir le navigateur - + Resolve conflicts Résoudre les conflits @@ -5719,7 +5723,7 @@ Le serveur a répondu avec l'erreur : %2 Sync now Synchroniser maintenant - + TalkReplyTextField @@ -5741,11 +5745,11 @@ Le serveur a répondu avec l'erreur : %2 Switch to your browser to accept the terms of service Accédez à votre navigateur pour accepter les conditions d'utilisation - + Terms of Service Conditions d'utilisation - + theme @@ -5768,7 +5772,7 @@ Le serveur a répondu avec l'erreur : %2 Sync is paused La synchronisation est en pause - + Sync is running Synchronisation en cours @@ -5788,7 +5792,7 @@ Le serveur a répondu avec l'erreur : %2 Waiting to start syncing En attente du démarrage de la synchronisation - + TrayFoldersMenuButton @@ -5826,7 +5830,7 @@ Le serveur a répondu avec l'erreur : %2 Account switcher and settings menu Sélecteur de compte et menu de paramètres - + Add account Ajouter un compte @@ -5840,11 +5844,11 @@ Le serveur a répondu avec l'erreur : %2 Current account status is do not disturb - + Le statuts de compte actuel est ne pas déranger Current account status is online - + Le statuts de compte actuel est en ligne Exit @@ -5862,7 +5866,7 @@ Le serveur a répondu avec l'erreur : %2 Settings Paramètres - + TrayWindowHeader @@ -5873,11 +5877,11 @@ Le serveur a répondu avec l'erreur : %2 Open %1 in browser Ouvrir %1 dans le navigateur - + Open local or team folders - + TrayWindowHeaderBar @@ -5888,7 +5892,7 @@ Le serveur a répondu avec l'erreur : %2 Open %1 in browser Ouvrir %1 dans le navigateur - + Open Nextcloud in browser @@ -5900,7 +5904,7 @@ Le serveur a répondu avec l'erreur : %2 Website - + UnifiedSearchInputContainer @@ -5968,18 +5972,18 @@ Le serveur a répondu avec l'erreur : %2 Remove account Retirer le compte - + Switch to account Utiliser ce compte - + UserStatusMessageView Apply Appliquer - + Cancel Annuler @@ -5999,7 +6003,7 @@ Le serveur a répondu avec l'erreur : %2 What is your status? Quel est votre statut ? - + UserStatusSetStatusView @@ -6045,7 +6049,7 @@ Le serveur a répondu avec l'erreur : %2 %1 %2 %1 %2 - + %L1 B %L1 octets @@ -6107,7 +6111,7 @@ Le serveur a répondu avec l'erreur : %2 %n ans - + utility @@ -6134,7 +6138,7 @@ Le serveur a répondu avec l'erreur : %2 Free up local space Libérer de l'espace local - + Make always available locally Toujours rendre disponible localement @@ -6150,7 +6154,7 @@ Le serveur a répondu avec l'erreur : %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Il y a eu une erreur lors du lancement du client de messagerie pour créer un nouveau message. Peut-être qu'aucun client de messagerie n'est configuré ? - + ValidateChecksumHeader diff --git a/translations/client_it.ts b/translations/client_it.ts index dd6f183c63c7a..e3ae289d8faa9 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -6,22 +6,22 @@ In %1 In %1 - + Open %1 locally Apri %1 localmente - + ActivityItemContent Dismiss Annulla - + Open file details Apri i dettagli del file - + ActivityList @@ -32,11 +32,11 @@ No activities yet Ancora nessuna attività - + Scroll to top Scorri verso l'alto - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Notifica di rifiuto chiamata Talk - + Talk notification caller avatar Avatar chiamante notifica Talk - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Chiudi il client di sincronizzazione - + Recently changed Modificati di recente @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Sincronizzazione%1 di %2 (%3 rimasto) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Menu di cambio account e impostazioni - + Add account Aggiungi account @@ -185,7 +185,7 @@ Settings Impostazioni - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Ricarica - + Remove local copies Rimuovi copie locali - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Reimposta l'ambiente dei file virtuali - + Virtual files settings Impostazioni dei file virtuali - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Liberare spazio … - + Local storage use Utilizzo del disco locale - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Richiedi una sincronizzazione delle modifiche per l'ambiente VFS. macOS potrebbe ignorare o ritardare questa richiesta. - + Request sync Richiesta di sincronizzazione @@ -304,18 +304,18 @@ macOS potrebbe ignorare o ritardare questa richiesta. Syncing Sincronizzazione - + FileSystem Could not remove folder "%1" Impossibile rimuovere la cartella "%1" - + Error removing "%1": %2 Errore durante la rimozione di "%1": %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Copy Link Copia collegamento - + Logo Logo @@ -338,7 +338,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Switch to your browser to connect your account Passa al tuo browser per connetterti all'account - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Crea cartella @@ -399,7 +399,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS potrebbe ignorare o ritardare questa richiesta. New activities Nuove attività - + Unified search results list Elenco dei risultati di ricerca unificato - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS potrebbe ignorare o ritardare questa richiesta. The server enforces strict transport security and does not accept untrusted certificates. Il server applica una rigorosa sicurezza di trasporto e non accetta certificati non attendibili. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Il server ha impiegato troppo tempo per rispondere. Controlla la connessione e riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. - + OCC::Account @@ -468,7 +468,7 @@ L'account deve essere importato? Could not import accounts from legacy client configuration. Importazione account fallita da una configurazione di client obsoleto. - + Import Importa @@ -480,7 +480,7 @@ L'account deve essere importato? Skip Salta - + OCC::AccountSettings @@ -635,7 +635,7 @@ L'account deve essere importato? Expand Memory - + Folder creation failed Creazione della cartella non riuscita @@ -837,7 +837,7 @@ Vuoi farlo ora? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Sembra che tu abbia la funzione File Virtuali attiva in questa cartella. Al momento, non è possibile scaricare implicitamente file virtuali che sono cifrati end-to-end. Per avere la migliore esperienza con i file virtuali e la crittografia end-to-end, assicurati che la cartella cifrata sia contrassegnata con "Rendi sempre disponibile in locale". - + OCC::AccountSetupFromCommandLineJob @@ -933,7 +933,7 @@ Vuoi farlo ora? Certificate files (*.p12 *.pfx) File di certificato (*.p12 *.pfx) - + Certificate password: Password del certificato: @@ -949,7 +949,7 @@ Vuoi farlo ora? This server probably requires a SSL client certificate. Questo server richiede probabilmente un certificato client SSL. - + OCC::Application @@ -1001,7 +1001,7 @@ Vuoi farlo ora? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Si è verificato un errore durante l'accesso al file di configurazione su %1. Assicurati che il file sia accessibile dal tuo account di sistema. - + deleting eliminare @@ -1019,14 +1019,14 @@ Vuoi farlo ora? older software version più vecchio - + OCC::AuthenticationDialog &Password: &Password: - + &Username: Nome &utente: @@ -1038,7 +1038,7 @@ Vuoi farlo ora? Enter username and password for "%1" at %2. Digita nome utente e password per "%1" su %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1064,12 +1064,12 @@ Vuoi farlo ora? The file %1 is currently in use Il file %1 è attualmente in uso - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossibile aggiornare i metadati del nuovo file%1. - + OCC::BulkPropagatorJob @@ -1112,7 +1112,7 @@ Vuoi farlo ora? Restoration failed: %1 Ripristini non riusciti: %1 - + The file %1 is currently in use Il file %1 è attualmente in uso @@ -1120,7 +1120,7 @@ Vuoi farlo ora? The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. - + OCC::CaseClashConflictSolver @@ -1147,11 +1147,11 @@ Vuoi farlo ora? Filename contains trailing spaces. Il nome del file contiene spazi alla fine. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. - + OCC::CaseClashFilenameDialog @@ -1182,7 +1182,7 @@ Vuoi farlo ora? Filename contains illegal characters: %1 Il nome del file contiene caratteri non consentiti: %1 - + Filename contains leading and trailing spaces. Il nome del file contiene spazi all'inizio e alla fine. @@ -1238,7 +1238,7 @@ Vuoi farlo ora? today oggi - + OCC::CleanupPollsJob @@ -1256,7 +1256,7 @@ Vuoi farlo ora? Enter E2E passphrase Digita la frase segreta E2E - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Inserisci il codice PIN @@ -1273,7 +1273,7 @@ Vuoi farlo ora? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Digita la tua frase segreta per la crittografia end-to-end:<br><br> Utente: %2<br>Account: %3<br> - + OCC::ConflictDialog @@ -1312,7 +1312,7 @@ Vuoi farlo ora? Keep server version Mantieni la versione del server - + Local version Versione locale @@ -1340,14 +1340,14 @@ Vuoi farlo ora? today oggi - + OCC::ConflictSolver Confirm deletion Conferma l'eliminazione - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vuoi eliminare la cartella <i>%1</i> e il suo contenuto definitivamente? @@ -1367,7 +1367,7 @@ Vuoi farlo ora? %1 - + OCC::ConnectionValidator @@ -1391,11 +1391,11 @@ Vuoi farlo ora? The provided credentials are not correct Le credenziali fornite non sono corrette - + Timeout Scadenza - + OCC::DataProtectionPage @@ -1414,7 +1414,11 @@ Vuoi farlo ora? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1456,11 +1460,11 @@ Vuoi farlo ora? Error while canceling deletion of %1 Errore nell'annullamento della cancellazione di %1 - + Error while canceling deletion of a file Errore nell'annullamento della cancellazione di un file - + OCC::DiscoverySingleDirectoryJob @@ -1471,7 +1475,7 @@ Vuoi farlo ora? Encrypted metadata setup error: initial signature from server is empty. Errore di configurazione dei metadati crittografati: la firma iniziale del server è vuota. - + Server error: PROPFIND reply is not XML formatted! Errore del server: la risposta PROPFIND non è in formato XML! @@ -1479,7 +1483,7 @@ Vuoi farlo ora? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Il server ha restituito una risposta inaspettata che non è stato possibile leggere. Contatta l'amministratore del server. - + OCC::DiscoverySingleLocalDirectoryJob @@ -1498,11 +1502,11 @@ Vuoi farlo ora? Error while reading directory %1 Errore durante la lettura della cartella %1 - + Filename encoding is not valid La codifica del nome del file non è valida - + OCC::EditLocallyJob @@ -1545,7 +1549,7 @@ Vuoi farlo ora? File %1 could not be locked. Impossibile blocare il file %1. - + File %1 now locked. File %1 ora bloccato. @@ -1565,7 +1569,7 @@ Vuoi farlo ora? Server error: PROPFIND reply is not XML formatted! Errore del server: la risposta PROPFIND non è in formato XML! - + OCC::EditLocallyManager @@ -1583,7 +1587,7 @@ Vuoi farlo ora? An error occurred trying to verify the request to edit locally. Si è verificato un errore durante il tentativo di verifica della richiesta di modifica locale. - + Could not find an account for local editing. Impossibile trovare un account per la modifica locale. @@ -1603,7 +1607,7 @@ Vuoi farlo ora? Please try again. Riprova. - + OCC::EncryptedFolderMetadataHandler @@ -1709,7 +1713,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Il server non ha risposto con i dati previsti. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Il server è temporaneamente non disponibile perché è in modalità manutenzione. Riprova al termine della manutenzione. @@ -1717,7 +1721,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Non siamo riusciti ad analizzare la risposta del server. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. - + OCC::Flow2AuthWidget @@ -1748,7 +1752,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. Switch to your browser to connect your account Passa al tuo browser per connetterti all'account - + Unable to open the Browser, please copy the link to your Browser. Impossibile aprire il browser, copia il collegamento nel tuo browser. @@ -1756,7 +1760,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. Waiting for authorization In attesa di autorizzazione - + OCC::Folder @@ -1929,7 +1933,7 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi Restore Files from Server Ripristina i file dal server - + Restore Files to Server Ripristina i file sul server @@ -1961,7 +1965,7 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi Would you like to stop syncing this folder? Vuoi interrompere la sincronizzazione di questa cartella? - + OCC::FolderCreationDialog @@ -1972,7 +1976,7 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi Could not create a folder! Check your write permissions. Impossibile creare una cartella! Controlla i tuoi permessi di scrittura. - + Create new folder Crea una nuova cartella @@ -1988,14 +1992,14 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi Folder already exists La cartella esiste già - + OCC::FolderMan %1 (Sync is paused) %1 (La sincronizzazione è sospesa) - + (backup %1) @@ -2112,7 +2116,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Waiting to start syncing. In attesa di iniziare la sincronizzazione. - + OCC::FolderStatusDelegate @@ -2123,11 +2127,11 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da File File - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2208,7 +2212,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Preparing to sync … Preparazione della sincronizzazione… - + Signed out Disconnesso @@ -2256,7 +2260,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2292,7 +2296,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Choose - + Click to select a local folder to sync. Fai clic per selezionare una cartella locale da sincronizzare. @@ -2312,7 +2316,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2339,7 +2343,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Create folder Crea cartella - + Enter the name of the new folder to be created below "%1": Digita il nome della nuova cartella da creare sotto a "%1": @@ -2375,7 +2379,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da You are already syncing the subfolder %1 at %2. Stai già sincronizzando la sottocartella %1 in %2. - + OCC::FolderWizardSelectiveSync @@ -2398,11 +2402,11 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Virtual files are not supported at the selected location I file virtuali non sono supportati nella posizione selezionata - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. - + OCC::GeneralSettings @@ -2510,7 +2514,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile More Information - + Move removed files to trash Sposta nel cestino i file eliminati @@ -2647,14 +2651,14 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile stable stabile - + OCC::GETFileJob Connection Timeout Connessione scaduta - + No E-Tag received from server, check Proxy/Gateway Nessun e-tag ricevuto dal server, controlla il proxy/gateway @@ -2670,7 +2674,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile We received an unexpected download Content-Length. Abbiamo ricevuto un Content-Length inatteso dello scaricamento. - + OCC::GetOrCreatePublicLinkShare @@ -2681,7 +2685,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile %1 - + Password for share required Password per condivisione richiesta @@ -2693,14 +2697,14 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Sharing error Errore di condivisione - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Fai clic qui</a> per richiedere una password dell'applicazione dall'interfaccia web. - + Enter Password Digita password @@ -2712,7 +2716,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Reading from keychain failed with error: "%1" Lettura dal portachiavi non riuscita con errore: "%1" - + OCC::IgnoreListEditor @@ -2746,7 +2750,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Add a new ignore pattern: Aggiungi un nuovo modello di esclusione: - + Allow Deletion Consenti eliminazione @@ -2782,7 +2786,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se Remove all Rimuovi tutto - + OCC::InvalidFilenameDialog @@ -2801,7 +2805,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se Could not rename local file. %1 Impossibile rimuovere il file locale. %1 - + Error Errore @@ -2881,7 +2885,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se You don't have the permission to rename this file. Please ask the author of the file to rename it. Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. - + OCC::LegacyAccountSelectionDialog @@ -2903,7 +2907,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Sotto licenza GNU General Public License (GPL) versione 2.0 o qualsiasi versione successiva.</p> - + Close Chiudi @@ -2911,7 +2915,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se Legal notice Avviso legale - + OCC::LogBrowser @@ -2926,7 +2930,7 @@ Gli elementi per i quali è consentita l'eliminazione saranno eliminati se Open folder Apri cartella - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2938,18 +2942,18 @@ Note that using any logging command line options will override this setting.Questa impostazione persiste in caso di riavvio del client. Nota che l'utilizzo di qualsiasi opzione della riga di comando di registrazione sovrascriverà questa impostazione. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Il file "%1"<br/>non può essere aperto in scrittura.<br/><br/>Il risultato del log <b>non</b> può essere salvato!</nobr> - + Error Errore - + OCC::Mac::FileProviderEditLocallyJob @@ -3043,7 +3047,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz SOCKS5 proxy Proxy SOCKS5 - + Upload Bandwidth Ampiezza di banda in uscita @@ -3055,7 +3059,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Username for proxy server Nome utente del server proxy - + OCC::NSISUpdater @@ -3074,7 +3078,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Get update Ottieni l'aggiornamento - + New Version Available Nuova versione disponibile @@ -3094,7 +3098,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Update manually Aggiorna manualmente - + OCC::OCUpdater @@ -3145,7 +3149,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Update Check Controllo aggiornamenti - + Update status is unknown: Did not check for new updates. Lo stato di aggiornamento è sconosciuto. Non è possibile verificare la presenza di nuovi aggiornamenti. @@ -3153,7 +3157,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz You are using the %1 update channel. Your installation is the latest version. Stai utilizzando il canale di aggiornamento %1. La tua installazione è alla versione più recente. - + OCC::OwncloudAdvancedSetupPage @@ -3181,7 +3185,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz In Finder's "Locations" sidebar section Nella sezione "Posizioni" della barra laterale del Finder - + Local Sync Folder Cartella locale di sincronizzazione @@ -3209,14 +3213,14 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Warning: The local folder is not empty. Pick a resolution! Attenzione: la cartella locale non è vuota. Scegli una soluzione! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Connessione all'indirizzo sicuro del server <em>%1</em> non riuscita. Come desideri procedere?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Connessione all'indirizzo sicuro del server specificato non riuscita. Come desideri procedere?</p></body></html> @@ -3236,14 +3240,14 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Select a different URL Seleziona un URL diverso - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3308,7 +3312,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz macOS VFS for %1: Sync is running. macOS VFS per %1: La sincronizzazione è in esecuzione. - + OCC::OwncloudHttpCredsPage @@ -3341,7 +3345,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Could not load certificate. Maybe wrong password? Impossibile caricare il certificato. Forse la password è errata? - + Server address does not seem to be valid L'indirizzo del server non sembra essere valido @@ -3350,7 +3354,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz %1 will be replaced with the application name Il collegamento all'interfaccia web di %1 quando lo apri nel browser. - + OCC::OwncloudSetupWizard @@ -3361,7 +3365,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Cartella locale %1 creata correttamente!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connesso correttamente a %1: %2 versione %3 (%4)</font><br/><br/> @@ -3469,7 +3473,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz failed. non riuscita. - + OCC::OwncloudWizard @@ -3511,7 +3515,7 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz Stay safe Rimani al sicuro - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3521,7 +3525,7 @@ Switching to this mode will abort any currently running synchronization. This is a new, experimental mode. If you decide to use it, please report any issues that come up. Quando la modalità "file virtuali" è abilitata, nessun file sarà scaricato inizialmente. Sarà invece creato un piccolo file "%1" per ogni file esistente sul server. I contenuti possono essere scaricati eseguendo questi file o utilizzando il loro menu contestuale. La modalità dei file virtuali si esclude a vicenda con la sincronizzazione selettiva. Le cartelle attualmente non selezionate saranno tradotte in cartelle solo in linea e le impostazioni di sincronizzazione selettiva saranno ripristinate. Il passaggio a questa modalità interromperà qualsiasi sincronizzazione attualmente in esecuzione. Questa è una nuova modalità sperimentale. Se decidi di utilizzarlo, segnala eventuali problemi che si presentano. - + OCC::PasswordInputDialog @@ -3574,7 +3578,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error while reading the database Errore durante la lettura del database - + File has extension reserved for virtual files. Il file ha l'estensione riservata ai file virtuali. @@ -3706,7 +3710,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds %2 of space left in personal files. Il caricamento di %1supera %2 dello spazio rimasto nei file personali. - + OCC::PropagateDirectory @@ -3725,7 +3729,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File is currently in use Il file è attualmente in uso - + The folder %1 cannot be made read-only: %2 La cartella %1 non può essere resa in sola lettura: %2 @@ -3733,7 +3737,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception eccezione sconosciuta - + OCC::PropagateDownloadFile @@ -3764,7 +3768,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File has changed since discovery Il file è stato modificato dal suo rilevamento - + File was deleted from server Il file è stato eliminato dal server @@ -3788,7 +3792,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file could not be downloaded completely. Il file non può essere scaricato completamente. - + OCC::PropagateItemJob @@ -3818,7 +3822,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use Il file %1 è attualmente in uso - + The folder %1 cannot be made read-only: %2 La cartella %1 non può essere resa in sola lettura: %2 @@ -3830,14 +3834,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss unknown exception eccezione sconosciuta - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale - + Could not remove %1 because of a local file name clash Impossibile rimuovere %1 a causa di un conflitto con un file locale @@ -3845,14 +3849,14 @@ This is a new, experimental mode. If you decide to use it, please report any iss Temporary error when removing local item removed from server. Errore temporaneo durante la rimozione dell'elemento locale rimosso dal server. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale - + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale @@ -3884,18 +3888,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use Il file %1 è attualmente in uso - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3917,11 +3921,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss The file %1 is currently in use Il file %1 è attualmente in uso - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". - + OCC::PropagateRemoteMove @@ -3948,7 +3952,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Error writing metadata to the database Errore durante la scrittura dei metadati nel database - + The file %1 is currently in use Il file %1 è attualmente in uso @@ -3956,7 +3960,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3983,7 +3987,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss File Removed (start upload) %1 File rimosso (avvio caricamento) %1 - + Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. @@ -4003,7 +4007,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds the quota for the folder Il caricamento di %1 supera la quota per la cartella - + OCC::PropagateUploadFileNG @@ -4011,7 +4015,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss server error Il file non è accessibile sul server. - + Folder is not accessible on the server. server error La cartella non è accessibile sul server. @@ -4036,7 +4040,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Unexpected return code from server (%1) Codice di uscita inatteso dal server (%1) - + OCC::PropagateUploadFileV1 @@ -4062,7 +4066,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Password: Password: - + Proxy authentication required Autenticazione proxy richiesta @@ -4078,7 +4082,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Username: Nome utente: - + OCC::SelectiveSyncDialog @@ -4092,7 +4096,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss An error occurred while loading the list of sub folders. Si è verificato un errore durante il caricamento dell'elenco delle sottocartelle. - + Deselect remote folders you do not wish to synchronize. Deseleziona le cartelle remote che non desideri sincronizzare. @@ -4112,18 +4116,18 @@ This is a new, experimental mode. If you decide to use it, please report any iss Size Dimensione - + OCC::ServerNotificationHandler Dismiss Annulla - + Reply Rispondi - + OCC::sesSnackBar @@ -4134,11 +4138,11 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + Warning Avviso - + OCC::SettingsDialog @@ -4150,7 +4154,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Account Account - + General Generale @@ -4162,7 +4166,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Settings Impostazioni - + OCC::ShareeModel @@ -4170,7 +4174,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Risultati della ricerca globale @@ -4182,7 +4186,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Search globally Cerca globalmente - + OCC::ShareManager @@ -4204,7 +4208,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Could not find local folder for %1 Impossibile trovare la cartella locale per %1 - + Internal link Collegamento ad uso interno @@ -4228,7 +4232,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Today Oggi - + OCC::SocketApi @@ -4319,7 +4323,7 @@ Il server ha risposto con errore: %2 Open in browser Apri nel browser - + Resharing this file is not allowed La ri-condivisione di questo file non è consentita @@ -4355,7 +4359,7 @@ Il server ha risposto con errore: %2 Unlock file Sblocca file - + OCC::SslButton @@ -4446,7 +4450,7 @@ Il server ha risposto con errore: %2 The connection is not secure La connessione non è sicura - + This connection is NOT secure as it is not encrypted. @@ -4454,7 +4458,7 @@ Il server ha risposto con errore: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4497,7 +4501,7 @@ Il server ha risposto con errore: %2 Issuer: %1 Emittente: %1 - + Organization: %1 Organizzazione: %1 @@ -4517,7 +4521,7 @@ Il server ha risposto con errore: %2 with Certificate %1 con certificato %1 - + OCC::SyncEngine @@ -4528,7 +4532,7 @@ Il server ha risposto con errore: %2 Cannot open the sync journal Impossibile aprire il registro di sincronizzazione - + Could not set file record to local DB: %1 Impossibile impostare il record del file nel DB locale: %1 @@ -4577,7 +4581,7 @@ Il server ha risposto con errore: %2 Using virtual files with suffix, but suffix is not set Utilizzo di file virtuali con suffisso, ma il suffisso non è impostato - + OCC::SyncStatusSummary @@ -4632,11 +4636,11 @@ Il server ha risposto con errore: %2 Syncing file %1 of %2 Sincronizzazione file %1 di %2 - + You need to accept the terms of service Devi accettare i termini del servizio - + OCC::Systray @@ -4676,18 +4680,18 @@ Il server ha risposto con errore: %2 Resume sync for all Riprendi la sincronizzazione per tutto - + Settings Impostazioni - + OCC::TermsOfServiceCheckWidget Copy Link Copia collegamento - + Link copied to clipboard. Collegamento copiato negli appunti. @@ -4703,7 +4707,7 @@ Il server ha risposto con errore: %2 Waiting for terms to be accepted In attesa che i termini vengano accettati - + OCC::Theme @@ -4771,11 +4775,11 @@ Il server ha risposto con errore: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4790,18 +4794,18 @@ Il server ha risposto con errore: %2 Search has failed for '%1'. Error: %2 Ricerca di '%1' fallita. Errore: %2 - + Search has failed for '%2'. Ricerca di '%2' fallita. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Impossibile finalizzare l'elemento. - + Failed to unlock encrypted folder. Sblocco della cartella cifrata non riuscito. @@ -4809,7 +4813,7 @@ Il server ha risposto con errore: %2 Failed to update folder metadata. Aggiornamento dei metadati della cartella non riuscito. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4864,7 +4868,7 @@ Il server ha risposto con errore: %2 Quota Warning - %1 percent or more storage in use Avviso di quota - %1 percento o più di spazio di archiviazione in uso - + Quota is updated; %1 percent of the total space is used. La quota è aggiornata; %1 percento dello spazio totale è utilizzato. @@ -4884,7 +4888,7 @@ Il server ha risposto con errore: %2 Trigger the migration Avviare la migrazione - + OCC::UserModel @@ -4907,11 +4911,11 @@ Il server ha risposto con errore: %2 Remove account Rimuovi account - + Remove connection Rimuovi connessione - + OCC::UserStatusSelectorModel @@ -4921,7 +4925,7 @@ Il server ha risposto con errore: %2 %n giorni - + %n hour(s) %n ora @@ -4987,7 +4991,7 @@ Il server ha risposto con errore: %2 Today Oggi - + OCC::Vfs @@ -4998,18 +5002,18 @@ Il server ha risposto con errore: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1 è un'unità di rete. Non supporta file virtuali. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1non è un file system NTFS. Non supporta file virtuali. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 non è stato possibile scaricarlo. - + > More details > Più dettagli @@ -5033,7 +5037,7 @@ Il server ha risposto con errore: %2 More details Più dettagli - + OCC::VfsSuffix @@ -5076,7 +5080,7 @@ Il server ha risposto con errore: %2 Host your own server Ospita il tuo server - + Keep your data secure and under your control Mantieni i tuoi dati sicuri e sotto il tuo controllo @@ -5088,7 +5092,7 @@ Il server ha risposto con errore: %2 Sign up with provider Registrati a un fornitore - + OCC::WizardProxySettingsDialog @@ -5112,18 +5116,18 @@ Il server ha risposto con errore: %2 SOCKS5 proxy Proxy SOCKS5 - + Username for proxy server Nome utente per il server proxy - + OwncloudAdvancedSetupPage &Local Folder Carte&lla locale - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Se questa casella è marcata, il contenuto della cartella locale sarà cancellato per avviare una nuova sincronizzazione dal server.</p><p>Non marcarla se il contenuto locale deve essere caricato nella cartella del server.</p></body></html> @@ -5172,18 +5176,18 @@ Il server ha risposto con errore: %2 Username Nome utente - + OwncloudHttpCredsPage &Password &Password - + &Username Nome &utente - + OwncloudSetupPage @@ -5269,7 +5273,7 @@ Il server ha risposto con errore: %2 Updating end-to-end encryption metadata Aggiornamento dei metadati di crittografia end-to-end - + Updating local metadata Aggiornamento dei metadati locali @@ -5289,7 +5293,7 @@ Il server ha risposto con errore: %2 Virtual file created File virtuale creato - + ProxySettings @@ -5308,7 +5312,7 @@ Il server ha risposto con errore: %2 No proxy Nessun proxy - + Note: proxy settings have no effects for accounts on localhost Nota: le impostazioni proxy non hanno effetto sugli account su localhost @@ -5324,7 +5328,7 @@ Il server ha risposto con errore: %2 Use system proxy Utilizza il proxy di sistema - + QObject @@ -5417,7 +5421,7 @@ Il server ha risposto con errore: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Il file è troppo grande per essere caricato. Potrebbe essere necessario scegliere un file più piccolo o contattare l'amministratore del server per assistenza. @@ -5521,7 +5525,7 @@ Il server ha risposto con errore: %2 now adesso - + ResolveConflictsDialog @@ -5544,7 +5548,7 @@ Il server ha risposto con errore: %2 Cancel Annulla - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Scegli se vuoi tenere la versione locale, quella del server, o entrambe. Se scegli entrambe, al nome del tuo file locale verrà aggiunto un numero. @@ -5556,7 +5560,7 @@ Il server ha risposto con errore: %2 Solve sync conflicts Risolvi i conflitti di sincronizzazione - + SesErrorBox @@ -5574,11 +5578,11 @@ Il server ha risposto con errore: %2 Open local or team folders Apri cartelle locali o di team - + Website - + ShareDelegate @@ -5612,7 +5616,7 @@ Il server ha risposto con errore: %2 Copy share link Copia il collegamento di condivisione - + Custom Permissions @@ -5652,7 +5656,7 @@ Il server ha risposto con errore: %2 View only Sola lettura - + ShareeSearchField @@ -5690,11 +5694,11 @@ Il server ha risposto con errore: %2 Sharing is disabled. La condivisione è disattivata. - + This item cannot be shared. Questo elemento non può essere condiviso. - + SyncJournalDb @@ -5708,7 +5712,7 @@ Il server ha risposto con errore: %2 Open browser Apri browser - + Resolve conflicts Risolvi i conflitti @@ -5716,7 +5720,7 @@ Il server ha risposto con errore: %2 Sync now Sincronizza ora - + TalkReplyTextField @@ -5738,11 +5742,11 @@ Il server ha risposto con errore: %2 Switch to your browser to accept the terms of service Passa al tuo browser per accettare i termini di servizio - + Terms of Service Termini di servizio - + theme @@ -5765,7 +5769,7 @@ Il server ha risposto con errore: %2 Sync is paused La sincronizzazione è sospesa - + Sync is running La sincronizzazione è in corso @@ -5785,7 +5789,7 @@ Il server ha risposto con errore: %2 Waiting to start syncing In attesa di iniziare la sincronizzazione - + TrayFoldersMenuButton @@ -5823,7 +5827,7 @@ Il server ha risposto con errore: %2 Account switcher and settings menu Menu di cambio account e impostazioni - + Add account Aggiungi account @@ -5837,11 +5841,11 @@ Il server ha risposto con errore: %2 Current account status is do not disturb - + Lo stato attuale dell'account è "non disturbare" Current account status is online - + Lo stato attuale dell'account è online Exit @@ -5859,7 +5863,7 @@ Il server ha risposto con errore: %2 Settings Impostazioni - + TrayWindowHeader @@ -5870,11 +5874,11 @@ Il server ha risposto con errore: %2 Open %1 in browser Apri %1 nel browser - + Open local or team folders Apri cartelle locali o di team - + TrayWindowHeaderBar @@ -5885,7 +5889,7 @@ Il server ha risposto con errore: %2 Open %1 in browser Apri %1 nel browser - + Open Nextcloud in browser @@ -5897,7 +5901,7 @@ Il server ha risposto con errore: %2 Website - + UnifiedSearchInputContainer @@ -5965,18 +5969,18 @@ Il server ha risposto con errore: %2 Remove account Rimuovi account - + Switch to account Cambia account - + UserStatusMessageView Apply Applica - + Cancel Annulla @@ -5996,7 +6000,7 @@ Il server ha risposto con errore: %2 What is your status? Qual è il tuo stato? - + UserStatusSetStatusView @@ -6042,7 +6046,7 @@ Il server ha risposto con errore: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6104,7 +6108,7 @@ Il server ha risposto con errore: %2 %n anni - + utility @@ -6131,7 +6135,7 @@ Il server ha risposto con errore: %2 Free up local space Libera spazio locale - + Make always available locally Rendi sempre disponibile localmente @@ -6147,7 +6151,7 @@ Il server ha risposto con errore: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Si è verificato un errore durante l'avvio del client di posta per creare un nuovo messaggio. Forse non hai ancora configurato alcun client di posta predefinito? - + ValidateChecksumHeader diff --git a/translations/client_nl.ts b/translations/client_nl.ts index 10f5682aa0a1a..b2d465c044ba8 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -6,22 +6,22 @@ In %1 In %1 - + Open %1 locally %1 lokaal openen - + ActivityItemContent Dismiss Negeren - + Open file details Bestandsdetails openen - + ActivityList @@ -32,11 +32,11 @@ No activities yet Nog geen activiteiten - + Scroll to top Naar boven schuiven - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Wijs Talk oproepmelding af - + Talk notification caller avatar Talk notificatie beller avatar - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Afsluiten synchronisatieclient - + Recently changed Recent gewijzigd @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Wisselen van gebruiker en instellingsmenu - + Add account Gebruiker toevoegen @@ -185,7 +185,7 @@ Settings Instellingen - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Herlaad - + Remove local copies Verwijder lokale kopieën - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment - + Virtual files settings Virtuele bestandsinstellingen - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Maak ruimte ... - + Local storage use Gebruik lokale opslag - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Vraag een synchronisatie van wijzigingen voor de VFS-omgeving aan. macOS kan dit verzoek negeren of uitstellen. - + Request sync Vraag synchronisatie aan @@ -304,18 +304,18 @@ macOS kan dit verzoek negeren of uitstellen. Syncing Synchroniseren - + FileSystem Could not remove folder "%1" Kan map "%1" niet verwijderen - + Error removing "%1": %2 Fout bij verwijderen '%1': %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS kan dit verzoek negeren of uitstellen. Copy Link Kopiëren link - + Logo Logo @@ -338,7 +338,7 @@ macOS kan dit verzoek negeren of uitstellen. Switch to your browser to connect your account Schakel over naar je browser om je account te verbinden - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS kan dit verzoek negeren of uitstellen. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS kan dit verzoek negeren of uitstellen. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS kan dit verzoek negeren of uitstellen. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Maak map @@ -399,7 +399,7 @@ macOS kan dit verzoek negeren of uitstellen. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS kan dit verzoek negeren of uitstellen. New activities - + Unified search results list - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS kan dit verzoek negeren of uitstellen. The server enforces strict transport security and does not accept untrusted certificates. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. - + OCC::Account @@ -467,7 +467,7 @@ Should the account be imported? Could not import accounts from legacy client configuration. Kon geen accounts importeren van legacy client configuratie. - + Import Import @@ -479,7 +479,7 @@ Should the account be imported? Skip Overslaan - + OCC::AccountSettings @@ -634,7 +634,7 @@ Should the account be imported? Expand Memory - + Folder creation failed Map maken mislukt @@ -834,7 +834,7 @@ Would you like to do this now? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Het lijkt erop dat de functie Virtuele bestanden voor deze map is ingeschakeld. Momenteel is het niet mogelijk om impliciet virtuele bestanden te downloaden die begin-tot-eind versleuteld zijn. Om de beste ervaring met virtuele bestanden en begin-tot-eind versleuteling te krijgen, moet je ervoor zorgen dat de versleutelde map is gemarkeerd met "Altijd lokaal beschikbaar maken". - + OCC::AccountSetupFromCommandLineJob @@ -930,7 +930,7 @@ Would you like to do this now? Certificate files (*.p12 *.pfx) Certificaat bestanden (*.p12 *.pfx) - + Certificate password: Wachtwoord certificaat: @@ -946,7 +946,7 @@ Would you like to do this now? This server probably requires a SSL client certificate. De server vereist vermoedelijk een SSL client certificaat. - + OCC::Application @@ -998,7 +998,7 @@ Would you like to do this now? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Fout bij het benaderen van het configuratiebestand op %1. Zorg ervoor dat het bestand door je systeemaccount kan worden benaderd. - + deleting verwijderen @@ -1016,14 +1016,14 @@ Would you like to do this now? older software version ouder - + OCC::AuthenticationDialog &Password: &Wachtwoord: - + &Username: &Gebruikersnaam: @@ -1035,7 +1035,7 @@ Would you like to do this now? Enter username and password for "%1" at %2. Geef gebruikersnaam en wachtwoord op voor "%1" bij %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1061,12 +1061,12 @@ Would you like to do this now? The file %1 is currently in use - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file - + OCC::BulkPropagatorJob @@ -1109,7 +1109,7 @@ Would you like to do this now? Restoration failed: %1 Herstellen mislukt: %1 - + The file %1 is currently in use Bestand %1 is momenteel in gebruik @@ -1117,7 +1117,7 @@ Would you like to do this now? The local file was removed during sync. Het lokale bestand werd verwijderd tijdens synchronisatie. - + OCC::CaseClashConflictSolver @@ -1144,11 +1144,11 @@ Would you like to do this now? Filename contains trailing spaces. De bestandsnaam bevat spaties achteraan. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. - + OCC::CaseClashFilenameDialog @@ -1179,7 +1179,7 @@ Would you like to do this now? Filename contains illegal characters: %1 Bestandsnaam bevat ongeldige tekens: %1 - + Filename contains leading and trailing spaces. De bestandsnaam bevat spaties vooraan en achteraan. @@ -1235,7 +1235,7 @@ Would you like to do this now? today vandaag - + OCC::CleanupPollsJob @@ -1253,7 +1253,7 @@ Would you like to do this now? Enter E2E passphrase Invoeren E2E wachtwoord - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" @@ -1270,7 +1270,7 @@ Would you like to do this now? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Voer je begin-tot-eind versleutelingswachtwoord in: <br><br>Gebruiker: %2<br>Account: %3<br> - + OCC::ConflictDialog @@ -1309,7 +1309,7 @@ Would you like to do this now? Keep server version Bewaar serverversie - + Local version Lokale versie @@ -1337,14 +1337,14 @@ Would you like to do this now? today vandaag - + OCC::ConflictSolver Confirm deletion Bevestig verwijderen - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Wil je de map <i>%1</i>met gehele inhoud permanent verwijderen? @@ -1364,7 +1364,7 @@ Would you like to do this now? %1 - + OCC::ConnectionValidator @@ -1388,11 +1388,11 @@ Would you like to do this now? The provided credentials are not correct De verstrekte inloggegevens zijn niet juist - + Timeout Time-out - + OCC::DataProtectionPage @@ -1411,7 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1453,11 +1457,11 @@ Would you like to do this now? Error while canceling deletion of %1 Fout bij annuleren verwijderen van %1 - + Error while canceling deletion of a file Fout bij het annuleren van verwijdering van een bestand - + OCC::DiscoverySingleDirectoryJob @@ -1468,7 +1472,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. - + Server error: PROPFIND reply is not XML formatted! Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! @@ -1476,7 +1480,7 @@ Would you like to do this now? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” - + OCC::DiscoverySingleLocalDirectoryJob @@ -1495,11 +1499,11 @@ Would you like to do this now? Error while reading directory %1 Fout tijdens lezen van map %1 - + Filename encoding is not valid Bestandsnaamcodering is niet geldig - + OCC::EditLocallyJob @@ -1542,7 +1546,7 @@ Would you like to do this now? File %1 could not be locked. Bestand %1 kon niet vergrendeld worden. - + File %1 now locked. Bestand %1 is nu vergrendeld. @@ -1562,7 +1566,7 @@ Would you like to do this now? Server error: PROPFIND reply is not XML formatted! Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! - + OCC::EditLocallyManager @@ -1580,7 +1584,7 @@ Would you like to do this now? An error occurred trying to verify the request to edit locally. Er trad een fout op bij de aanvraag voor lokaal bewerken. - + Could not find an account for local editing. Kon geen account vinden voor lokaal bewerken. @@ -1600,7 +1604,7 @@ Would you like to do this now? Please try again. Probeer a.u.b opnieuw - + OCC::EncryptedFolderMetadataHandler @@ -1706,7 +1710,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. @@ -1714,7 +1718,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. - + OCC::Flow2AuthWidget @@ -1745,7 +1749,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. Switch to your browser to connect your account Schakel over naar je browser om je account te verbinden - + Unable to open the Browser, please copy the link to your Browser. Kan de browser niet openen, kopieer de link naar je browser. @@ -1753,7 +1757,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. Waiting for authorization Wachten op autorisatie - + OCC::Folder @@ -1922,7 +1926,7 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Restore Files from Server - + Restore Files to Server @@ -1954,7 +1958,7 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Would you like to stop syncing this folder? Wil je stoppen met het synchroniseren van deze map? - + OCC::FolderCreationDialog @@ -1965,7 +1969,7 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Could not create a folder! Check your write permissions. Kan map niet aanmaken! Controleer je schrijfmachtiging. - + Create new folder Maak nieuwe map aan @@ -1981,14 +1985,14 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Folder already exists Map bestaat al - + OCC::FolderMan %1 (Sync is paused) %1 (Synchronisatie onderbroken) - + (backup %1) @@ -2101,7 +2105,7 @@ For advanced users: this issue might be related to multiple sync database files Waiting to start syncing. In afwachting van synchronisatie. - + OCC::FolderStatusDelegate @@ -2112,11 +2116,11 @@ For advanced users: this issue might be related to multiple sync database files File Bestand - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2198,7 +2202,7 @@ For advanced users: this issue might be related to multiple sync database files Preparing to sync … Voorbereiden synchronisatie ... - + Signed out Afgemeld @@ -2246,7 +2250,7 @@ For advanced users: this issue might be related to multiple sync database files ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2282,7 +2286,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Click to select a local folder to sync. Klikken om een lokale map te selecteren voor synchronisatie @@ -2302,7 +2306,7 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2329,7 +2333,7 @@ For advanced users: this issue might be related to multiple sync database files Create folder Maak map - + Enter the name of the new folder to be created below "%1": Voer de naam van de hieronder te maken nieuwe map in "%1": @@ -2365,7 +2369,7 @@ For advanced users: this issue might be related to multiple sync database files You are already syncing the subfolder %1 at %2. - + OCC::FolderWizardSelectiveSync @@ -2388,11 +2392,11 @@ For advanced users: this issue might be related to multiple sync database files Virtual files are not supported at the selected location - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. - + OCC::GeneralSettings @@ -2495,7 +2499,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Move removed files to trash Verplaats verwijderde bestanden naar de prullenbak @@ -2630,14 +2634,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp stable stabiel - + OCC::GETFileJob Connection Timeout Verbindingstime-out - + No E-Tag received from server, check Proxy/Gateway Geen E-Tag ontvangen van de server, controleer Proxy/Gateway @@ -2653,7 +2657,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp We received an unexpected download Content-Length. We ontvingen een onverwachte download Content-Lengte. - + OCC::GetOrCreatePublicLinkShare @@ -2664,7 +2668,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 - + Password for share required Wachtwoord voor deellink vereist @@ -2676,14 +2680,14 @@ Downgrading versions is not possible immediately: changing from stable to enterp Sharing error Fout bij delen - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Klik hier</a> om een nieuw app wachtwoord via de web interface op te vragen. - + Enter Password Vul het wachtwoord in @@ -2695,7 +2699,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Reading from keychain failed with error: "%1" Het lezen van de sleutelketen is mislukt met fout: "%1" - + OCC::IgnoreListEditor @@ -2729,7 +2733,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: Voeg nieuw negeerpatroon toe: - + Allow Deletion Verwijderen toestaan @@ -2765,7 +2769,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een Remove all Alles verwijderen - + OCC::InvalidFilenameDialog @@ -2784,7 +2788,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een Could not rename local file. %1 Kan lokaal bestand niet hernoemen. %1 - + Error Fout @@ -2864,7 +2868,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een You don't have the permission to rename this file. Please ask the author of the file to rename it. Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. - + OCC::LegacyAccountSelectionDialog @@ -2886,7 +2890,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Gelicenseerd onder de GNU General Public License (GPL) Versie 2.0 of later</p> - + Close Sluiten @@ -2894,7 +2898,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een Legal notice Juridische bepalingen - + OCC::LogBrowser @@ -2909,7 +2913,7 @@ Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een Open folder Openen map - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2923,18 +2927,18 @@ Note that using any logging command line options will override this setting.Deze instelling blijft bestaan tijdens het opnieuw opstarten van de client. Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal overschrijven. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Bestand "%1"<br/>kan niet voor schrijven worden geopend.<br/><br/>De log output kan <b>niet</b> opgeslagen worden!</nobr> - + Error Fout - + OCC::Mac::FileProviderEditLocallyJob @@ -3028,7 +3032,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove SOCKS5 proxy SOCKS5 proxy - + Upload Bandwidth Upload bandbreedte @@ -3040,7 +3044,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Username for proxy server Gebruikersnaam voor proxyserver - + OCC::NSISUpdater @@ -3059,7 +3063,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Get update Ophalen update - + New Version Available Nieuwe versie beschikbaar @@ -3079,7 +3083,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Update manually Handmatig bijwerken - + OCC::OCUpdater @@ -3130,7 +3134,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Update Check Controle update - + Update status is unknown: Did not check for new updates. Update status is onbekend: niet gecontroleerd op nieuwe updates. @@ -3138,7 +3142,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove You are using the %1 update channel. Your installation is the latest version. - + OCC::OwncloudAdvancedSetupPage @@ -3166,7 +3170,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove In Finder's "Locations" sidebar section - + Local Sync Folder Lokale synchronisatiemap @@ -3194,14 +3198,14 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Warning: The local folder is not empty. Pick a resolution! Waarschuwing: De lokale map is niet leeg. Maak een keuze! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres <em>%1</em>.Hoe wilt u verder gaan?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres. Hoe wilt u verder gaan?</p></body></html> @@ -3221,14 +3225,14 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Select a different URL Selecteer een andere URL - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3293,7 +3297,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove macOS VFS for %1: Sync is running. - + OCC::OwncloudHttpCredsPage @@ -3326,7 +3330,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Could not load certificate. Maybe wrong password? Kan certificaat niet laden. Misschien is het wachtwoord onjuist? - + Server address does not seem to be valid Het serveradres lijkt niet geldig @@ -3335,7 +3339,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove %1 will be replaced with the application name De link naar je %1 web interface wanneer je die opent in de browser. - + OCC::OwncloudSetupWizard @@ -3346,7 +3350,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokale synch map %1 is succesvol aangemaakt!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Succesvol verbonden met %1: %2 versie %3 (%4)</font><br/><br/> @@ -3454,7 +3458,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove failed. mislukt. - + OCC::OwncloudWizard @@ -3496,7 +3500,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Stay safe Blijf veilig - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3512,7 +3516,7 @@ Als je naar deze modus overschakelt, wordt elke momenteel lopende synchronisatie Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen we je om eventuele problemen te melden. - + OCC::PasswordInputDialog @@ -3565,7 +3569,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Error while reading the database Fout bij lezen database - + File has extension reserved for virtual files. Bestand heeft een extensie gereserveerd voor virtuele bestanden. @@ -3697,7 +3701,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Upload of %1 exceeds %2 of space left in personal files. - + OCC::PropagateDirectory @@ -3716,7 +3720,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen File is currently in use Bestand is al in gebruik - + The folder %1 cannot be made read-only: %2 Map %1 kon niet alleen-lezen gemaakt worden: %2 @@ -3724,7 +3728,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen unknown exception onbekende uitzondering - + OCC::PropagateDownloadFile @@ -3755,7 +3759,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen File has changed since discovery Het bestand is gewijzigd sinds het is gevonden - + File was deleted from server Bestand was verwijderd van de server @@ -3779,7 +3783,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen The file could not be downloaded completely. Het bestand kon niet volledig worden gedownload. - + OCC::PropagateItemJob @@ -3809,7 +3813,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen The file %1 is currently in use Bestand %1 is al in gebruik - + The folder %1 cannot be made read-only: %2 Map %1 kon niet alleen-lezen gemaakt worden: %2 @@ -3821,14 +3825,14 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen unknown exception onbekende uitzondering - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB - + Could not remove %1 because of a local file name clash Bestand %1 kon niet worden verwijderd, omdat de naam conflicteert met een lokaal bestand @@ -3836,14 +3840,14 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Temporary error when removing local item removed from server. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB - + Could not get file %1 from local DB @@ -3875,18 +3879,18 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen The file %1 is currently in use Bestand %1 is al in gebruik - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3908,11 +3912,11 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen The file %1 is currently in use Bestand %1 is al in gebruik - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 201, maar ontvangen "%1 %2". - + OCC::PropagateRemoteMove @@ -3939,7 +3943,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Error writing metadata to the database Fout bij schrijven van Metadata naar de database - + The file %1 is currently in use Bestand %1 is al in gebruik @@ -3947,7 +3951,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht werd 201, maar ontvangen "%1 %2". - + OCC::PropagateUploadFileCommon @@ -3974,7 +3978,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen File Removed (start upload) %1 Bestand verwijderd (start upload) %1 - + Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. @@ -3994,7 +3998,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Upload of %1 exceeds the quota for the folder Upload van %1 overschrijdt het quotum voor de map - + OCC::PropagateUploadFileNG @@ -4002,7 +4006,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen server error - + Folder is not accessible on the server. server error @@ -4027,7 +4031,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Unexpected return code from server (%1) Onverwachte reactie van server (%1) - + OCC::PropagateUploadFileV1 @@ -4053,7 +4057,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Password: Wachtwoord: - + Proxy authentication required Proxy-authenticatie vereist @@ -4069,7 +4073,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Username: Gebruikersnaam: - + OCC::SelectiveSyncDialog @@ -4083,7 +4087,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen An error occurred while loading the list of sub folders. Er trad een fout op bij het laden van de lijst met submappen. - + Deselect remote folders you do not wish to synchronize. Deselecteer de externe mappen die u niet wenst te synchroniseren. @@ -4103,18 +4107,18 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Size Grootte - + OCC::ServerNotificationHandler Dismiss Terzijde leggen - + Reply Antwoord - + OCC::sesSnackBar @@ -4125,11 +4129,11 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Success - + Warning Waarschuwing - + OCC::SettingsDialog @@ -4141,7 +4145,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Account Account - + General Algemeen @@ -4153,7 +4157,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Settings Instellingen - + OCC::ShareeModel @@ -4161,7 +4165,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Zoekresultaten (global) @@ -4173,7 +4177,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Search globally Zoek door alles - + OCC::ShareManager @@ -4195,7 +4199,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Could not find local folder for %1 Kan lokale map niet vinden voor %1 - + Internal link Interne link @@ -4219,7 +4223,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Today Vandaag - + OCC::SocketApi @@ -4310,7 +4314,7 @@ Server antwoordde met fout: %2 Open in browser Openen in browser - + Resharing this file is not allowed Opnieuw delen van dit bestand is niet toegestaan @@ -4346,7 +4350,7 @@ Server antwoordde met fout: %2 Unlock file Ontgrendel bestand - + OCC::SslButton @@ -4437,7 +4441,7 @@ Server antwoordde met fout: %2 The connection is not secure De verbinding is niet veilig - + This connection is NOT secure as it is not encrypted. @@ -4445,7 +4449,7 @@ Server antwoordde met fout: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4488,7 +4492,7 @@ Server antwoordde met fout: %2 Issuer: %1 Uitgever: %1 - + Organization: %1 Organisatie: %1 @@ -4508,7 +4512,7 @@ Server antwoordde met fout: %2 with Certificate %1 met certificaat %1 - + OCC::SyncEngine @@ -4519,7 +4523,7 @@ Server antwoordde met fout: %2 Cannot open the sync journal Kan het sync transactielog niet openen - + Could not set file record to local DB: %1 Kon bestandsrecord %1 niet instellen op de lokale DB: %1 @@ -4568,7 +4572,7 @@ Server antwoordde met fout: %2 Using virtual files with suffix, but suffix is not set gebruik maken van virtuele bestanden met achtervoegsel, maar achtervoegsel niet ingesteld - + OCC::SyncStatusSummary @@ -4623,11 +4627,11 @@ Server antwoordde met fout: %2 Syncing file %1 of %2 Bestand %1 van %2 synchroniseren - + You need to accept the terms of service - + OCC::Systray @@ -4667,18 +4671,18 @@ Server antwoordde met fout: %2 Resume sync for all Vervolg sync voor iedereen - + Settings Instellingen - + OCC::TermsOfServiceCheckWidget Copy Link Kopiëren link - + Link copied to clipboard. Link gekopieerd naar het klembord. @@ -4694,7 +4698,7 @@ Server antwoordde met fout: %2 Waiting for terms to be accepted - + OCC::Theme @@ -4762,11 +4766,11 @@ Server antwoordde met fout: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4781,18 +4785,18 @@ Server antwoordde met fout: %2 Search has failed for '%1'. Error: %2 Fout bij het zoeken naar '%1'. Error: %2 - + Search has failed for '%2'. Fout bij het zoeken naar '%2'. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Kon item niet afronden. - + Failed to unlock encrypted folder. Kon versleutelde map niet ontgrendelen. @@ -4800,7 +4804,7 @@ Server antwoordde met fout: %2 Failed to update folder metadata. Kon metadata niet uploaden. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4855,7 +4859,7 @@ Server antwoordde met fout: %2 Quota Warning - %1 percent or more storage in use - + Quota is updated; %1 percent of the total space is used. @@ -4875,7 +4879,7 @@ Server antwoordde met fout: %2 Trigger the migration - + OCC::UserModel @@ -4898,11 +4902,11 @@ Server antwoordde met fout: %2 Remove account - + Remove connection Verwijderen verbinding - + OCC::UserStatusSelectorModel @@ -4912,7 +4916,7 @@ Server antwoordde met fout: %2 - + %n hour(s) @@ -4978,7 +4982,7 @@ Server antwoordde met fout: %2 Today Vandaag - + OCC::Vfs @@ -4989,18 +4993,18 @@ Server antwoordde met fout: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 kon niet worden gedownload. - + > More details > Meer details @@ -5024,7 +5028,7 @@ Server antwoordde met fout: %2 More details Meer details - + OCC::VfsSuffix @@ -5067,7 +5071,7 @@ Server antwoordde met fout: %2 Host your own server Host je eigen server - + Keep your data secure and under your control Hou je gegevens veilig en in eigen beheer @@ -5079,7 +5083,7 @@ Server antwoordde met fout: %2 Sign up with provider Aanmelden bij provider - + OCC::WizardProxySettingsDialog @@ -5103,18 +5107,18 @@ Server antwoordde met fout: %2 SOCKS5 proxy SOCKS5 proxy - + Username for proxy server Gebruikersnaam voor proxyserver - + OwncloudAdvancedSetupPage &Local Folder &Lokale map - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Als deze checkbox is aangevinkt zullen bestaande bestanden in de lokale map worden gewist om een schone sync vanaf de server te starten.</p><p>Vink dit niet aan als de lokale bestanden naar de map op de server zouden moeten worden geüploadet.</p></body></html> @@ -5163,18 +5167,18 @@ Server antwoordde met fout: %2 Username Gebruikersnaam - + OwncloudHttpCredsPage &Password &Wachtwoord - + &Username &Gebruikersnaam - + OwncloudSetupPage @@ -5260,7 +5264,7 @@ Server antwoordde met fout: %2 Updating end-to-end encryption metadata - + Updating local metadata Bijwerken lokale metadata @@ -5280,7 +5284,7 @@ Server antwoordde met fout: %2 Virtual file created Virtueel bestand gecreëerd - + ProxySettings @@ -5299,7 +5303,7 @@ Server antwoordde met fout: %2 No proxy Geen proxy - + Note: proxy settings have no effects for accounts on localhost Let op: proxy-instellingen hebben geen effect voor accounts op localhost @@ -5315,7 +5319,7 @@ Server antwoordde met fout: %2 Use system proxy Gebruik systeem proxy - + QObject @@ -5408,7 +5412,7 @@ Server antwoordde met fout: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5512,7 +5516,7 @@ Server antwoordde met fout: %2 now nu - + ResolveConflictsDialog @@ -5535,7 +5539,7 @@ Server antwoordde met fout: %2 Cancel Annuleren - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Kies of je lokale versie, server versie of beide wilt behouden. Als je voor beide kiest, krijgt het lokale bestand een nummer toegevoegd aan de naam. @@ -5547,7 +5551,7 @@ Server antwoordde met fout: %2 Solve sync conflicts Los synchronisatieconflicten op - + SesErrorBox @@ -5565,11 +5569,11 @@ Server antwoordde met fout: %2 Open local or team folders - + Website - + ShareDelegate @@ -5603,7 +5607,7 @@ Server antwoordde met fout: %2 Copy share link Kopiëren deellink - + Custom Permissions @@ -5643,7 +5647,7 @@ Server antwoordde met fout: %2 View only Alleen bekijken - + ShareeSearchField @@ -5681,11 +5685,11 @@ Server antwoordde met fout: %2 Sharing is disabled. Delen is uitgeschakeld. - + This item cannot be shared. Dit item kan niet worden gedeeld - + SyncJournalDb @@ -5699,7 +5703,7 @@ Server antwoordde met fout: %2 Open browser - + Resolve conflicts Los conflicten op @@ -5707,7 +5711,7 @@ Server antwoordde met fout: %2 Sync now Nu synchroniseren - + TalkReplyTextField @@ -5729,11 +5733,11 @@ Server antwoordde met fout: %2 Switch to your browser to accept the terms of service - + Terms of Service - + theme @@ -5756,7 +5760,7 @@ Server antwoordde met fout: %2 Sync is paused Synchronisatie is gepauzeerd - + Sync is running Bezig met synchroniseren @@ -5776,7 +5780,7 @@ Server antwoordde met fout: %2 Waiting to start syncing In afwachting van synchronisatie - + TrayFoldersMenuButton @@ -5814,7 +5818,7 @@ Server antwoordde met fout: %2 Account switcher and settings menu Wisselen van gebruiker en instellingsmenu - + Add account @@ -5828,11 +5832,11 @@ Server antwoordde met fout: %2 Current account status is do not disturb - + Huidige gebruikersstatus is Niet Storen Current account status is online - + Huidige gebruikersstatus is Online Exit @@ -5850,7 +5854,7 @@ Server antwoordde met fout: %2 Settings Instellingen - + TrayWindowHeader @@ -5861,11 +5865,11 @@ Server antwoordde met fout: %2 Open %1 in browser - + Open local or team folders - + TrayWindowHeaderBar @@ -5876,7 +5880,7 @@ Server antwoordde met fout: %2 Open %1 in browser - + Open Nextcloud in browser @@ -5888,7 +5892,7 @@ Server antwoordde met fout: %2 Website - + UnifiedSearchInputContainer @@ -5956,18 +5960,18 @@ Server antwoordde met fout: %2 Remove account - + Switch to account Omschakelen naar account - + UserStatusMessageView Apply Toepassen - + Cancel Annuleren @@ -5987,7 +5991,7 @@ Server antwoordde met fout: %2 What is your status? - + UserStatusSetStatusView @@ -6033,7 +6037,7 @@ Server antwoordde met fout: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6095,7 +6099,7 @@ Server antwoordde met fout: %2 - + utility @@ -6122,7 +6126,7 @@ Server antwoordde met fout: %2 Free up local space Lokale ruimte vrijmaken - + Make always available locally Maak altijd lokaal beschikbaar @@ -6138,7 +6142,7 @@ Server antwoordde met fout: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Er trad een fout op bij het starten van de e-mailclient om een nieuw bericht te maken. Misschien is er geen e-mailclient gedefinieerd? - + ValidateChecksumHeader diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 5f4938af3293b..6d1d441665877 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -6,22 +6,22 @@ In %1 Om %1 - + Open %1 locally Öppna %1 lokalt - + ActivityItemContent Dismiss Avfärda - + Open file details Öppna filinformation - + ActivityList @@ -32,11 +32,11 @@ No activities yet Inga aktiviteter än - + Scroll to top Bläddra till toppen - + CallNotificationDialog @@ -51,11 +51,11 @@ Decline Talk call notification Avvisa samtalsavisering från Talk - + Talk notification caller avatar Avatar för samtalsavisering - + CloudProviderWrapper @@ -95,7 +95,7 @@ Quit sync client Avsluta - + Recently changed Nyligen ändrade @@ -127,7 +127,7 @@ Syncing %1 of %2 (%3 left) Synkroniserar %1 av %2 (%3 kvar) - + ConflictDelegate @@ -145,7 +145,7 @@ Account switcher and settings menu Kontobytare och inställningsmeny - + Add account Lägg till konto @@ -185,7 +185,7 @@ Settings Inställningar - + EditFileLocallyLoadingDialog @@ -238,11 +238,11 @@ Reload Ladda om - + Remove local copies Ta bort lokala kopior - + FileProviderFileDelegate @@ -264,11 +264,11 @@ Reset virtual files environment Återställ miljön för virtuella filer - + Virtual files settings Inställningar virtuella filer - + FileProviderStorageInfo @@ -279,11 +279,11 @@ Free up space … Frigör utrymme … - + Local storage use Användning lokal lagring - + FileProviderSyncStatus @@ -296,7 +296,7 @@ macOS may ignore or delay this request. Begär en synkronisering av ändringar för VFS-miljön. macOS kan ignorera eller fördröja denna begäran. - + Request sync Begär synkronisering @@ -304,18 +304,18 @@ macOS kan ignorera eller fördröja denna begäran. Syncing Synkroniserar - + FileSystem Could not remove folder "%1" Kunde inte ta bort mappen "%1" - + Error removing "%1": %2 Kunde inte radera "%1": %2 - + Flow2AuthWidget @@ -330,7 +330,7 @@ macOS kan ignorera eller fördröja denna begäran. Copy Link Kopiera länk - + Logo Logotyp @@ -338,7 +338,7 @@ macOS kan ignorera eller fördröja denna begäran. Switch to your browser to connect your account Använd din webbläsare för att få åtkomst till ditt konto - + FolderWizardSelectiveSync @@ -356,7 +356,7 @@ macOS kan ignorera eller fördröja denna begäran. &Choose - + Add Folder Sync @@ -368,7 +368,7 @@ macOS kan ignorera eller fördröja denna begäran. Step 1 of 3: Select local folder - + FolderWizardTargetPage @@ -379,7 +379,7 @@ macOS kan ignorera eller fördröja denna begäran. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Create folder Skapa mapp @@ -399,7 +399,7 @@ macOS kan ignorera eller fördröja denna begäran. Step 2 of 3: Directory in your %1 - + MainWindow @@ -410,11 +410,11 @@ macOS kan ignorera eller fördröja denna begäran. New activities Nya aktiviteter - + Unified search results list Sammanlagda sökresultat - + nextcloudTheme::aboutInfo() @@ -432,11 +432,11 @@ macOS kan ignorera eller fördröja denna begäran. The server enforces strict transport security and does not accept untrusted certificates. Servern tillämpar strikt transport­skydd och accepterar inte opålitliga certifikat. - + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Servern tog för lång tid på sig att svara. Kontrollera din anslutning och försök synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. - + OCC::Account @@ -468,7 +468,7 @@ Ska kontot importeras? Could not import accounts from legacy client configuration. Kunde inte importera konton från äldre klientkonfiguration. - + Import Importera @@ -480,7 +480,7 @@ Ska kontot importeras? Skip Hoppa över - + OCC::AccountSettings @@ -635,7 +635,7 @@ Ska kontot importeras? Expand Memory - + Folder creation failed Kunde inte skapa mappen @@ -837,7 +837,7 @@ Vill du konfigurera den nu? You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Det verkar som att funktionen "Virtuella filer" är aktiverad för denna mapp. För närvarande är det inte möjligt att ladda ner virtuella filer som är end-to-end-krypterade. För att använda virtuella filer med ände-till-ände-kryptering, säkerställ att "Gör alltid tillgänglig lokalt" är aktiverat på den krypterade mappen. - + OCC::AccountSetupFromCommandLineJob @@ -933,7 +933,7 @@ Vill du konfigurera den nu? Certificate files (*.p12 *.pfx) Certifikatfiler (*.p12 *.pfx) - + Certificate password: Certifikatlösenord: @@ -949,7 +949,7 @@ Vill du konfigurera den nu? This server probably requires a SSL client certificate. Denna server kräver förmodligen ett SSL klientcertifikat - + OCC::Application @@ -1001,7 +1001,7 @@ Vill du konfigurera den nu? There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ett fel uppstod vid läsning av konfigurationsfilen vid %1. Kontrollera att filen kan nås av ditt datorkonto. - + deleting radera @@ -1019,14 +1019,14 @@ Vill du konfigurera den nu? older software version äldre - + OCC::AuthenticationDialog &Password: &Lösenord: - + &Username: &Användarnamn: @@ -1038,7 +1038,7 @@ Vill du konfigurera den nu? Enter username and password for "%1" at %2. Ange användarnamn och lösenord för "%1" på %2. - + OCC::BasePropagateRemoteDeleteEncrypted @@ -1064,12 +1064,12 @@ Vill du konfigurera den nu? The file %1 is currently in use Filen %1 används för närvarande - + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Kunde inte uppdatera metadata för den nya filen %1. - + OCC::BulkPropagatorJob @@ -1112,7 +1112,7 @@ Vill du konfigurera den nu? Restoration failed: %1 Återställning misslyckades: %1 - + The file %1 is currently in use Filen %1 används för närvarande @@ -1120,7 +1120,7 @@ Vill du konfigurera den nu? The local file was removed during sync. Den lokala filen togs bort under synkronisering. - + OCC::CaseClashConflictSolver @@ -1147,11 +1147,11 @@ Vill du konfigurera den nu? Filename contains trailing spaces. Filnamnet innehåller blanksteg i slutet. - + You don't have the permission to rename this file. Please ask the author of the file to rename it. Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. - + OCC::CaseClashFilenameDialog @@ -1182,7 +1182,7 @@ Vill du konfigurera den nu? Filename contains illegal characters: %1 Filnamnet innehåller ogiltiga tecken: %1 - + Filename contains leading and trailing spaces. Filnamnet innehåller blanksteg i början och slutet. @@ -1238,7 +1238,7 @@ Vill du konfigurera den nu? today idag - + OCC::CleanupPollsJob @@ -1256,7 +1256,7 @@ Vill du konfigurera den nu? Enter E2E passphrase Ange lösenord för E2E - + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Ange PIN-kod @@ -1273,7 +1273,7 @@ Vill du konfigurera den nu? Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Ange din lösenordsfras för ände-till-ände-kryptering:<br><br>Användarnamn: %2<br>Konto: %3<br> - + OCC::ConflictDialog @@ -1312,7 +1312,7 @@ Vill du konfigurera den nu? Keep server version Behåll serverversion - + Local version Lokal version @@ -1340,14 +1340,14 @@ Vill du konfigurera den nu? today idag - + OCC::ConflictSolver Confirm deletion Bekräfta radering - + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vill du radera mappen <i>%1</i> och allt innehåll permanent? @@ -1367,7 +1367,7 @@ Vill du konfigurera den nu? %1 - + OCC::ConnectionValidator @@ -1391,11 +1391,11 @@ Vill du konfigurera den nu? The provided credentials are not correct De angivna uppgifterna stämmer inte - + Timeout Timeout - + OCC::DataProtectionPage @@ -1414,7 +1414,11 @@ Vill du konfigurera den nu? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + + + OCC::DataProtectionSettingsPage @@ -1456,11 +1460,11 @@ Vill du konfigurera den nu? Error while canceling deletion of %1 Ett fel uppstod när radering av %1 skulle avbrytas - + Error while canceling deletion of a file Ett fel uppstod när radering av en fil skulle avbrytas - + OCC::DiscoverySingleDirectoryJob @@ -1471,7 +1475,7 @@ Vill du konfigurera den nu? Encrypted metadata setup error: initial signature from server is empty. Inställningsfel för krypterad metadata: initial signatur från servern är tom. - + Server error: PROPFIND reply is not XML formatted! Serverfel: PROPFIND-svar är inte XML-formaterat! @@ -1479,7 +1483,7 @@ Vill du konfigurera den nu? The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Servern returnerade ett oväntat svar som inte kunde läsas. Kontakta din serveradministratör. - + OCC::DiscoverySingleLocalDirectoryJob @@ -1498,11 +1502,11 @@ Vill du konfigurera den nu? Error while reading directory %1 Ett fel uppstod när mappen %1 skulle öppnas - + Filename encoding is not valid Filnamnets teckenuppsättning är ogiltig - + OCC::EditLocallyJob @@ -1545,7 +1549,7 @@ Vill du konfigurera den nu? File %1 could not be locked. Filen %1 kunde inte låsas. - + File %1 now locked. Filen %1 är nu låst. @@ -1565,7 +1569,7 @@ Vill du konfigurera den nu? Server error: PROPFIND reply is not XML formatted! Serverfel: PROPFIND-svar är inte XML-formaterat! - + OCC::EditLocallyManager @@ -1583,7 +1587,7 @@ Vill du konfigurera den nu? An error occurred trying to verify the request to edit locally. Ett fel uppstod vid försök att verifiera begäran om att redigera lokalt. - + Could not find an account for local editing. Det gick inte att hitta ett konto för lokal redigering. @@ -1603,7 +1607,7 @@ Vill du konfigurera den nu? Please try again. Försök igen. - + OCC::EncryptedFolderMetadataHandler @@ -1709,7 +1713,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Servern svarade inte som förväntat. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. - + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Servern är tillfälligt otillgänglig eftersom den är i underhållsläge. Försök igen när underhållet har avslutats. @@ -1717,7 +1721,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Vi kunde inte tolka serversvaret. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. - + OCC::Flow2AuthWidget @@ -1748,7 +1752,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. Switch to your browser to connect your account Använd din webbläsare för att få åtkomst till ditt konto - + Unable to open the Browser, please copy the link to your Browser. Det går inte att öppna webbläsaren, kopiera länken till din webbläsare. @@ -1756,7 +1760,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. Waiting for authorization Väntar på auktorisation - + OCC::Folder @@ -1929,7 +1933,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Restore Files from Server Återställ filer från servern - + Restore Files to Server Återställ filer till server @@ -1961,7 +1965,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Would you like to stop syncing this folder? Vill du sluta synkronisera den här mappen? - + OCC::FolderCreationDialog @@ -1972,7 +1976,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Could not create a folder! Check your write permissions. Kunde inte skapa mappen! Kontrollera skrivrättigheterna. - + Create new folder Skapa ny mapp @@ -1988,14 +1992,14 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Folder already exists Mappen finns redan - + OCC::FolderMan %1 (Sync is paused) %1 (synkronisering pausad) - + (backup %1) @@ -2111,7 +2115,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Waiting to start syncing. Väntar på att starta synkronisering. - + OCC::FolderStatusDelegate @@ -2122,11 +2126,11 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn File Fil - + Synchronize any other local folder with your %1 - + OCC::FolderStatusModel @@ -2207,7 +2211,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Preparing to sync … Förbereder synk ... - + Signed out Utloggad @@ -2255,7 +2259,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn ↓ %1/s ↓ %1/s - + OCC::FolderWatcher @@ -2291,7 +2295,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Choose - + Click to select a local folder to sync. Klicka för att välja en lokal mapp att synkronisera. @@ -2311,7 +2315,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Step 1 of 3: Select local folder - + OCC::FolderWizardRemotePath @@ -2338,7 +2342,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Create folder Skapa mapp - + Enter the name of the new folder to be created below "%1": Ange namn på den mapp som ska placeras under "%1". @@ -2374,7 +2378,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn You are already syncing the subfolder %1 at %2. Du synkroniserar redan undermappen %1 på %2. - + OCC::FolderWizardSelectiveSync @@ -2397,11 +2401,11 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Virtual files are not supported at the selected location Virtuella filer stöds inte på den valda platsen - + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. - + OCC::GeneralSettings @@ -2509,7 +2513,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil More Information - + Move removed files to trash Flytta borttagna filer till papperskorgen @@ -2646,14 +2650,14 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil stable stabil - + OCC::GETFileJob Connection Timeout Anslutningen avbröts på grund av timeout - + No E-Tag received from server, check Proxy/Gateway Ingen E-Tag mottogs från servern, kontrollera proxy/gateway @@ -2669,7 +2673,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil We received an unexpected download Content-Length. Nerladdningens storlek är inkorrekt. - + OCC::GetOrCreatePublicLinkShare @@ -2680,7 +2684,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil %1 - + Password for share required Lösenord för delning krävs @@ -2692,14 +2696,14 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Sharing error Fel vid delning - + OCC::HttpCredentialsGui <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Klicka här</a> för att begära ett applösenord från webbgränssnittet. - + Enter Password Ange lösenord @@ -2711,7 +2715,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Reading from keychain failed with error: "%1" Läsning från nyckelkedjan misslyckades med fel: "%1" - + OCC::IgnoreListEditor @@ -2745,7 +2749,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Add a new ignore pattern: Lägg till ett nytt ignorera mönster: - + Allow Deletion Tillåt radering @@ -2781,7 +2785,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor Remove all Ta bort alla - + OCC::InvalidFilenameDialog @@ -2800,7 +2804,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor Could not rename local file. %1 Kunde inte byta namn på lokal fil. %1 - + Error Fel @@ -2880,7 +2884,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor You don't have the permission to rename this file. Please ask the author of the file to rename it. Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. - + OCC::LegacyAccountSelectionDialog @@ -2902,7 +2906,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licenserad under GNU General Public License (GPL) Version 2.0 eller annan senare version.</p> - + Close Stäng @@ -2910,7 +2914,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor Legal notice Rättsligt meddelande - + OCC::LogBrowser @@ -2925,7 +2929,7 @@ Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bor Open folder Öppna mapp - + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -2939,18 +2943,18 @@ Note that using any logging command line options will override this setting.Den här inställningen kvarstår även när klienten startas om. Observera att om du använder kommandoradsalternativ för loggning kommer den här inställningen att åsidosättas. - + OCC::Logger <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Filen "%1"<br/>kan inte öppnas för skrivning.<br/><br/>Loggtexten <b>kan inte</b> sparas!</nobr> - + Error Fel - + OCC::Mac::FileProviderEditLocallyJob @@ -3044,7 +3048,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h SOCKS5 proxy SOCKS5 proxy - + Upload Bandwidth Bandbredd för uppladdning @@ -3056,7 +3060,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Username for proxy server Användarnamn för proxyserver - + OCC::NSISUpdater @@ -3075,7 +3079,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Get update Hämta uppdatering - + New Version Available Ny version tillgänglig @@ -3095,7 +3099,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Update manually Uppdatera manuellt - + OCC::OCUpdater @@ -3146,7 +3150,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Update Check Uppdateringskontroll - + Update status is unknown: Did not check for new updates. Uppdateringsstatus är okänd: Gjorde ingen kontroll av nya uppdateringar. @@ -3154,7 +3158,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h You are using the %1 update channel. Your installation is the latest version. Du använder uppdateringskanalen %1 Din installation är den senaste versionen. - + OCC::OwncloudAdvancedSetupPage @@ -3182,7 +3186,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h In Finder's "Locations" sidebar section I sidopanelens avsnitt “Platser” i Finder - + Local Sync Folder Lokal mapp för synkronisering @@ -3210,14 +3214,14 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Warning: The local folder is not empty. Pick a resolution! Varning: Den lokala mappen är inte tom. Välj en lösning! - + OCC::OwncloudConnectionMethodDialog <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Misslyckades med att ansluta till den säkra serveradressen <em>%1</em>. Hur vill du gå vidare?</p></body></html> - + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Misslyckades med att upprätta anslutning till den angivna servern. Hur vill du fortsätta?</p></body></html> @@ -3237,14 +3241,14 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Select a different URL Välj en annan webbadress - + OCC::ownCloudGui %1 (%2, %3) %1 (%2, %3) - + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 @@ -3309,7 +3313,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h macOS VFS for %1: Sync is running. macOS VFS för %1: Synkronisering körs. - + OCC::OwncloudHttpCredsPage @@ -3342,7 +3346,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Could not load certificate. Maybe wrong password? Kunde inte läsa in certifikatet. Felaktigt lösenord? - + Server address does not seem to be valid Serverns adress verkar var ogiltig @@ -3351,7 +3355,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h %1 will be replaced with the application name Länken till din %1 webbsida när du öppnar den i webbläsaren. - + OCC::OwncloudSetupWizard @@ -3362,7 +3366,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokal synkroniseringsmapp %1 skapad!</b></font> - + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Lyckades ansluta till %1: %2 version %3 (%4)</font><br/><br/> @@ -3470,7 +3474,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h failed. misslyckades. - + OCC::OwncloudWizard @@ -3512,7 +3516,7 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h Stay safe Var försiktig - + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3528,7 +3532,7 @@ Om du byter till det här läget avbryts all pågående synkronisering. Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda det, rapportera eventuella problem som dyker upp. - + OCC::PasswordInputDialog @@ -3581,7 +3585,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Error while reading the database Fel uppstod när databasen skulle läsas - + File has extension reserved for virtual files. Filens ändelse är reserverad för virtuella filer. @@ -3713,7 +3717,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Upload of %1 exceeds %2 of space left in personal files. Uppladdningen av %1 överskrider %2 av återstående utrymme i personliga filer. - + OCC::PropagateDirectory @@ -3732,7 +3736,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda File is currently in use Filen används - + The folder %1 cannot be made read-only: %2 Mappen %1 kan inte göras skrivskyddad: %2 @@ -3740,7 +3744,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda unknown exception okänt fel - + OCC::PropagateDownloadFile @@ -3771,7 +3775,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda File has changed since discovery Filen har ändrats sedan upptäckten - + File was deleted from server Filen har tagits bort från servern @@ -3795,7 +3799,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda The file could not be downloaded completely. Filen kunde inte hämtas fullständigt. - + OCC::PropagateItemJob @@ -3825,7 +3829,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda The file %1 is currently in use Filen %1 används för närvarande - + The folder %1 cannot be made read-only: %2 Mappen %1 kan inte göras skrivskyddad: %2 @@ -3837,14 +3841,14 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda unknown exception okänt fel - + OCC::PropagateLocalRemove Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB - + Could not remove %1 because of a local file name clash Det gick inte att ta bort %1 på grund av ett lokalt filnamn @@ -3852,14 +3856,14 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Temporary error when removing local item removed from server. Tillfälligt fel vid borttagning av lokalt objekt som tagits bort från servern. - + OCC::PropagateLocalRename Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB - + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB @@ -3891,18 +3895,18 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda The file %1 is currently in use Filen %1 används för närvarande - + OCC::PropagateRemoteDelete Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '204' förväntades, men "%1 %2" mottogs. - + OCC::PropagateRemoteDeleteEncryptedRootFolder @@ -3924,11 +3928,11 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda The file %1 is currently in use Filen %1 används för närvarande - + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. - + OCC::PropagateRemoteMove @@ -3955,7 +3959,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Error writing metadata to the database Fel vid skrivning av metadata till databasen - + The file %1 is currently in use Filen %1 används för närvarande @@ -3963,7 +3967,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. - + OCC::PropagateUploadFileCommon @@ -3990,7 +3994,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda File Removed (start upload) %1 Filen borttagen (starta uppladdning) %1 - + Local file changed during sync. Lokal fil ändrades under synkronisering. @@ -4010,7 +4014,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Upload of %1 exceeds the quota for the folder Uppladdningen av %1 överstiger kvoten för mappen - + OCC::PropagateUploadFileNG @@ -4018,7 +4022,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda server error Filen är inte åtkomlig på servern. - + Folder is not accessible on the server. server error Mappen är inte åtkomlig på servern. @@ -4043,7 +4047,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Unexpected return code from server (%1) Oväntad svarskod från servern (%1) - + OCC::PropagateUploadFileV1 @@ -4069,7 +4073,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Password: Lösenord: - + Proxy authentication required Proxy-autentisering krävs @@ -4085,7 +4089,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Username: Användarnamn: - + OCC::SelectiveSyncDialog @@ -4099,7 +4103,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda An error occurred while loading the list of sub folders. Ett fel uppstod när listan för submappar lästes in. - + Deselect remote folders you do not wish to synchronize. Avmarkera mappar du inte vill synkronisera. @@ -4119,18 +4123,18 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Size Storlek - + OCC::ServerNotificationHandler Dismiss Avfärda - + Reply Svara - + OCC::sesSnackBar @@ -4141,11 +4145,11 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Success - + Warning Varning - + OCC::SettingsDialog @@ -4157,7 +4161,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Account Konto - + General Allmänt @@ -4169,7 +4173,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Settings Inställningar - + OCC::ShareeModel @@ -4177,7 +4181,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda sharee (shareWithAdditionalInfo) %1 (%2) - + Global search results Globala sökresultat @@ -4189,7 +4193,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Search globally Sök globalt - + OCC::ShareManager @@ -4211,7 +4215,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Could not find local folder for %1 Kunde inte hitta lokal mapp för %1 - + Internal link Intern länk @@ -4235,7 +4239,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Today Idag - + OCC::SocketApi @@ -4326,7 +4330,7 @@ Servern svarade med fel: %2 Open in browser Öppna i webbläsare - + Resharing this file is not allowed Vidaredelning av denna fil är inte tillåtet @@ -4362,7 +4366,7 @@ Servern svarade med fel: %2 Unlock file Lås upp fil - + OCC::SslButton @@ -4453,7 +4457,7 @@ Servern svarade med fel: %2 The connection is not secure Anslutningen är inte säker - + This connection is NOT secure as it is not encrypted. @@ -4461,7 +4465,7 @@ Servern svarade med fel: %2 This connection is encrypted using %1 bit %2. - + OCC::SslErrorDialog @@ -4504,7 +4508,7 @@ Servern svarade med fel: %2 Issuer: %1 Utfärdare: %1 - + Organization: %1 Organisation: %1 @@ -4524,7 +4528,7 @@ Servern svarade med fel: %2 with Certificate %1 med Certifikat %1 - + OCC::SyncEngine @@ -4535,7 +4539,7 @@ Servern svarade med fel: %2 Cannot open the sync journal Det går inte att öppna synkroniseringsjournalen - + Could not set file record to local DB: %1 Kunde inte ställa in filposten till lokal DB: %1 @@ -4584,7 +4588,7 @@ Servern svarade med fel: %2 Using virtual files with suffix, but suffix is not set Använder virtuella filer med suffix, men suffix är inte inställt - + OCC::SyncStatusSummary @@ -4639,11 +4643,11 @@ Servern svarade med fel: %2 Syncing file %1 of %2 Synkroniserar fil %1 av %2 - + You need to accept the terms of service Du behöver acceptera användarvillkoren - + OCC::Systray @@ -4683,18 +4687,18 @@ Servern svarade med fel: %2 Resume sync for all Återuppta synkronisering för alla - + Settings Inställningar - + OCC::TermsOfServiceCheckWidget Copy Link Kopiera länk - + Link copied to clipboard. Länken kopierad till urklipp. @@ -4710,7 +4714,7 @@ Servern svarade med fel: %2 Waiting for terms to be accepted Väntar på att användarvillkoren ska accepteras - + OCC::Theme @@ -4778,11 +4782,11 @@ Servern svarade med fel: %2 Privacy-Link - + Privacy-Link_STRATO - + OCC::UnifiedSearchResultsListModel @@ -4797,18 +4801,18 @@ Servern svarade med fel: %2 Search has failed for '%1'. Error: %2 Sökningen "%1'. Fel: %2. - + Search has failed for '%2'. Sökningen "%2' misslyckades. - + OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. Misslyckades med att slutföra objektet. - + Failed to unlock encrypted folder. Kunde inte låsa upp krypterad mapp. @@ -4816,7 +4820,7 @@ Servern svarade med fel: %2 Failed to update folder metadata. Kunde inte uppdatera mappens metadata. - + OCC::UpdateE2eeFolderUsersMetadataJob @@ -4871,7 +4875,7 @@ Servern svarade med fel: %2 Quota Warning - %1 percent or more storage in use Kvotvarning - %1 procent eller mer av lagringsutrymmet används - + Quota is updated; %1 percent of the total space is used. Kvoten har uppdaterats; %1 procent av det totala utrymmet är använt. @@ -4891,7 +4895,7 @@ Servern svarade med fel: %2 Trigger the migration Initiera migreringen - + OCC::UserModel @@ -4914,11 +4918,11 @@ Servern svarade med fel: %2 Remove account Ta bort konto - + Remove connection Ta bort anslutning - + OCC::UserStatusSelectorModel @@ -4928,7 +4932,7 @@ Servern svarade med fel: %2 %n dagar - + %n hour(s) %n timme @@ -4994,7 +4998,7 @@ Servern svarade med fel: %2 Today Idag - + OCC::Vfs @@ -5005,18 +5009,18 @@ Servern svarade med fel: %2 Please choose a different location. %1 is a network drive. It doesn't support virtual files. Välj en annan plats. %1 är en nätverksenhet. Den stöder inte virtuella filer. - + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Välj en annan plats. %1 är inte ett NTFS-filsystem. Det stöder inte virtuella filer. - + OCC::VfsDownloadErrorDialog %1 could not be downloaded. %1 kunde inte laddas ned. - + > More details > Fler detaljer @@ -5040,7 +5044,7 @@ Servern svarade med fel: %2 More details Fler detaljer - + OCC::VfsSuffix @@ -5083,7 +5087,7 @@ Servern svarade med fel: %2 Host your own server Använd egen server - + Keep your data secure and under your control Håll din data säker och under din kontroll @@ -5095,7 +5099,7 @@ Servern svarade med fel: %2 Sign up with provider Registrera hos en leverantör - + OCC::WizardProxySettingsDialog @@ -5119,18 +5123,18 @@ Servern svarade med fel: %2 SOCKS5 proxy SOCKS5 proxy - + Username for proxy server Användarnamn för proxyserver - + OwncloudAdvancedSetupPage &Local Folder &Lokal mapp - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Om denna ruta är kryssad så kommer befintligt innehåll i den lokala mappen tas bort så att en ren synkronisering från servern kan startas.</p><p>Kryssa inte i denna ruta om du vill ladda upp det lokala innehållet till serverns mapp.</p></body></html> @@ -5179,18 +5183,18 @@ Servern svarade med fel: %2 Username Användarnamn - + OwncloudHttpCredsPage &Password &Lösenord - + &Username &Användarnamn - + OwncloudSetupPage @@ -5276,7 +5280,7 @@ Servern svarade med fel: %2 Updating end-to-end encryption metadata Uppdaterar metadata för ände-till-ände-kryptering - + Updating local metadata Uppdaterar lokal metadata @@ -5296,7 +5300,7 @@ Servern svarade med fel: %2 Virtual file created Virtuell fil skapad - + ProxySettings @@ -5315,7 +5319,7 @@ Servern svarade med fel: %2 No proxy Ingen proxy - + Note: proxy settings have no effects for accounts on localhost Observera: proxyinställningar har ingen effekt för konton på localhost @@ -5331,7 +5335,7 @@ Servern svarade med fel: %2 Use system proxy Använd systemets proxyinställningar - + QObject @@ -5424,7 +5428,7 @@ Servern svarade med fel: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Filen är för stor för att laddas upp. Du kan behöva välja en mindre fil eller kontakta din serveradministratör för hjälp. @@ -5528,7 +5532,7 @@ Servern svarade med fel: %2 now nu - + ResolveConflictsDialog @@ -5551,7 +5555,7 @@ Servern svarade med fel: %2 Cancel Avbryt - + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Välj om du vill behålla den lokala versionen, serverversionen eller båda. Om du väljer båda kommer den lokala filen att ha ett nummer tillagt i namnet. @@ -5563,7 +5567,7 @@ Servern svarade med fel: %2 Solve sync conflicts Lös synkroniseringskonflikter - + SesErrorBox @@ -5581,11 +5585,11 @@ Servern svarade med fel: %2 Open local or team folders Öppna lokala eller teammappar - + Website - + ShareDelegate @@ -5619,7 +5623,7 @@ Servern svarade med fel: %2 Copy share link Kopiera delningslänk - + Custom Permissions @@ -5659,7 +5663,7 @@ Servern svarade med fel: %2 View only Endast visa - + ShareeSearchField @@ -5697,11 +5701,11 @@ Servern svarade med fel: %2 Sharing is disabled. Delning är inaktiverat. - + This item cannot be shared. Det här objektet kan inte delas. - + SyncJournalDb @@ -5715,7 +5719,7 @@ Servern svarade med fel: %2 Open browser Öppna webbläsare - + Resolve conflicts Lös konflikter @@ -5723,7 +5727,7 @@ Servern svarade med fel: %2 Sync now Synkronisera nu - + TalkReplyTextField @@ -5745,11 +5749,11 @@ Servern svarade med fel: %2 Switch to your browser to accept the terms of service Byt till din webbläsare för att acceptera användarvillkoren - + Terms of Service Användarvillkor - + theme @@ -5772,7 +5776,7 @@ Servern svarade med fel: %2 Sync is paused Synkronisering pausad - + Sync is running Synkronisering är aktiv @@ -5792,7 +5796,7 @@ Servern svarade med fel: %2 Waiting to start syncing Väntar på att starta synkronisering - + TrayFoldersMenuButton @@ -5830,7 +5834,7 @@ Servern svarade med fel: %2 Account switcher and settings menu Kontobytare och inställningsmeny - + Add account Lägg till konto @@ -5866,7 +5870,7 @@ Servern svarade med fel: %2 Settings Inställningar - + TrayWindowHeader @@ -5877,11 +5881,11 @@ Servern svarade med fel: %2 Open %1 in browser Öppna %1 i webbläsare - + Open local or team folders Öppna lokala eller teammappar - + TrayWindowHeaderBar @@ -5892,7 +5896,7 @@ Servern svarade med fel: %2 Open %1 in browser Öppna %1 i webbläsare - + Open Nextcloud in browser @@ -5904,7 +5908,7 @@ Servern svarade med fel: %2 Website - + UnifiedSearchInputContainer @@ -5972,18 +5976,18 @@ Servern svarade med fel: %2 Remove account Ta bort konto - + Switch to account Växla till konto - + UserStatusMessageView Apply Verkställ - + Cancel Avbryt @@ -6003,7 +6007,7 @@ Servern svarade med fel: %2 What is your status? Vad är din status? - + UserStatusSetStatusView @@ -6049,7 +6053,7 @@ Servern svarade med fel: %2 %1 %2 %1 %2 - + %L1 B %L1 B @@ -6111,7 +6115,7 @@ Servern svarade med fel: %2 %n år - + utility @@ -6138,7 +6142,7 @@ Servern svarade med fel: %2 Free up local space Frigör lokalt utrymme - + Make always available locally Gör alltid tillgänglig lokalt @@ -6154,7 +6158,7 @@ Servern svarade med fel: %2 There was an error when launching the email client to create a new message. Maybe no default email client is configured? Det uppstod ett fel när e-postklienten skulle startas för att skapa ett nytt meddelande. Kanske är ingen standard-e-postklient konfigurerad? - + ValidateChecksumHeader From b5658f29ab0f9e220f57d3deb6a8449fdb113094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:09 +0200 Subject: [PATCH 145/148] Step 2 --- translations/client_de.ts | 4 ++-- translations/client_en.ts | 4 ++-- translations/client_en_GB.ts | 4 ++-- translations/client_es.ts | 4 ++-- translations/client_es_MX.ts | 4 ++-- translations/client_fr.ts | 4 ++-- translations/client_it.ts | 4 ++-- translations/client_nl.ts | 4 ++-- translations/client_sv.ts | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index b19f00ad8ade4..a576f783c83bb 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -1414,11 +1414,11 @@ Möchten Sie dies jetzt tun? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_en.ts b/translations/client_en.ts index 616b5e8b4410c..771097b8524d4 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -1402,11 +1402,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index 7c729a703f3d9..119da46584d18 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -1414,11 +1414,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_es.ts b/translations/client_es.ts index 31f600ca8b7ef..bbeab7ad62393 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -1414,11 +1414,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 44cb1cdd04526..083ca57c5077f 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -1411,11 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_fr.ts b/translations/client_fr.ts index ce0cdbf7b66d5..01070704eaa79 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -1411,11 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_it.ts b/translations/client_it.ts index e3ae289d8faa9..b3c2a5a8a12ab 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -1414,11 +1414,11 @@ Vuoi farlo ora? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_nl.ts b/translations/client_nl.ts index b2d465c044ba8..d83cdb716fb0f 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -1411,11 +1411,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 6d1d441665877..0f660d5398fd5 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -1414,11 +1414,11 @@ Vill du konfigurera den nu? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + OCC::DataProtectionSettingsPage From 86dff4f15750c7bb61040a6b140630d5b81bb545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:11 +0200 Subject: [PATCH 146/148] Step 3 --- translations/client_de.ts | 172 ++++++++++++++------------- translations/client_en.ts | 223 ++++++++++++++++++----------------- translations/client_en_GB.ts | 144 +++++++++++----------- translations/client_es.ts | 189 ++++++++++++++--------------- translations/client_es_MX.ts | 203 ++++++++++++++++--------------- translations/client_fr.ts | 185 +++++++++++++++-------------- translations/client_it.ts | 142 +++++++++++----------- translations/client_nl.ts | 192 +++++++++++++++--------------- translations/client_sv.ts | 202 +++++++++++++++---------------- 9 files changed, 845 insertions(+), 807 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index a576f783c83bb..fbb8dd797e831 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -1,6 +1,6 @@ - +AgreeZustimmenBackZurückNecessary dataErforderliche DatenRequired to ensure that the software can be used as expectedErforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann.Save SettingsEinstellungen speichernSend anonymous useAnonyme Nutzungsdaten sendenThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODiese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. ActivityItem In %1 @@ -37,7 +37,7 @@ Nach unten blättern - +BasicComboBoxClear status message menuStatusmeldungs-Menü löschen CallNotificationDialog Answer Talk call notification @@ -93,7 +93,7 @@ Quit sync client - Sync-Client beenden + Sync-Client beenden Recently changed @@ -243,7 +243,7 @@ Lokale Kopien entfernen - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Bei der schnellen Synchronisierung werden nur Änderungen an Dateien und Ordnern innerhalb der Ordner synchronisiert, die bereits untersucht wurden. Dies kann die Reaktionsfähigkeit bei der Ersteinrichtung virtueller Dateien erheblich erhöhen. Allerdings führt dies zu redundanten Downloads von Dateien, die in einen noch nicht erfassten Ordner verschoben wurden. FileProviderFileDelegate Delete @@ -264,7 +264,7 @@ Reset virtual files environment Virtuelle Dateienumgebung zurücksetzen - + Signal file provider domainDomain des Signaldateianbieters Virtual files settings Einstellungen für virtuelle Dateien @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 GB von %2 GB der entfernten Dateien synchronisiert - + Evict local copies...Lokale Kopien entfernen... Free up space … Speicherplatz freigeben … @@ -343,18 +343,18 @@ macOS kann diese Anforderung ignorieren oder verzögern. FolderWizardSelectiveSync Add Folder Sync - + Ordner Sync hinzufügen Step 3 of 3: Selektive Synchronisation - + Schritt 3 von 3: Selektive Synchronisierung FolderWizardSourcePage &Choose - + &Wählen Add Folder Sync @@ -362,11 +362,11 @@ macOS kann diese Anforderung ignorieren oder verzögern. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Wählen Sie einen Ordner auf Ihrer Festplatte, der dauerhaft mit Ihrem %1 verbunden sein soll. Alle Dateien und Unterordner werden automatisch hochgeladen und synchronisiert. Step 1 of 3: Select local folder - + Schritt 1 von 3: Lokalen Ordner auswählen @@ -377,7 +377,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Beide Ordner sind dauerhaft miteinander verknüpft und die jeweiligen Inhalte werden automatisch synchronisiert und aktualisiert. Create folder @@ -389,7 +389,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Bitte wählen oder erstellen Sie nun einen Zielordner in Ihrem %1, in den der Inhalt hochgeladen und synchronisiert werden soll. Refresh @@ -397,7 +397,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Step 2 of 3: Directory in your %1 - + Schritt 2 von 3: Verzeichnis in Ihrem %1 @@ -458,7 +458,9 @@ macOS kann diese Anforderung ignorieren oder verzögern. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 Konten wurden von einem älteren Desktop-Client erkannt. + Sollen die Konten importiert werden? An account was detected from a legacy desktop client. Should the account be imported? Ein Konto wurde von einem älteren Desktop-Client erkannt. @@ -485,7 +487,7 @@ Soll das Konto importiert werden? OCC::AccountSettings %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) von %2 belegt. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. + %1 (%3%) von %2 Serverkapazität verwendet. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. %1 as %2 @@ -633,15 +635,15 @@ Soll das Konto importiert werden? Expand Memory - + Speicher erweitern - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0097ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1041 Folder creation failed Anlegen des Ordners fehlgeschlagen Force sync now - Synchronisierung jetzt erzwingen + Synchronisierung jetzt erzwingen Forget encryption setup @@ -725,7 +727,7 @@ Soll das Konto importiert werden? Storage space %1% occupied - + Speicherplatz %1% belegt Storage space: … @@ -765,15 +767,15 @@ Soll das Konto importiert werden? There are folders that were not synchronized because they are external storages: - + Es gibt Ordner, die nicht synchronisiert werden konnten, da sie externe Speicher sind: There are folders that were not synchronized because they are too big or external storages: - + Es gibt Ordner, die nicht synchronisiert werden konnten, da sie zu groß oder externe Speicher sind: There are folders that were not synchronized because they are too big: - + Einige Ordner konnten nicht synchronisiert werden, da sie zu groß sind: This account supports end-to-end encryption, but it needs to be set up first. @@ -794,14 +796,14 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihre Gedächtnisstütze nicht mehr zugegriffen werden. + Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihren mnemonischen Verschlüsselungsschlüssel nicht mehr zugegriffen werden. <b>Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze aus zwölf Wörtern aus dem Wörterbuch. Bitte notieren Sie sich diese und bewahren Sie sie sicher auf. Sie benötigen sie, um die Synchronisierung verschlüsselter Ordner auf Ihren anderen Geräten einzurichten. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze von 12 Wörterbuchwörtern. Bitte notieren Sie sich diese und bewahren Sie sie auf. Sie werden benötigt, um Ihrem Konto weitere Geräte hinzuzufügen (z. B. Ihr Mobiltelefon oder Laptop). Unable to connect to %1. Verbindung zu %1 kann nicht hergestellt werden. @@ -1220,7 +1222,7 @@ Möchten Sie dies jetzt tun? The file could not be synced because it generates a case clash conflict with an existing file on this system. - Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich der Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. + Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. Use invalid name @@ -1408,7 +1410,7 @@ Möchten Sie dies jetzt tun? Settings - Einstellungen + Einstellungen This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1738,7 +1740,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. Open Browser - Browser öffnen + Im Browser öffnen Polling for authorization @@ -1857,7 +1859,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. A folder from an external storage has been added. - + Ein Ordner von einem externen Speicher wurde hinzugefügt. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1869,21 +1871,21 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Eine große Anzahl von Dateien auf dem Server wurde gelöscht. -Bitte bestätigen Sie, dass Sie mit deren Löschung fortfahren möchten. -Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie von Ordner '%1' auf den Server hochladen. + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - Eine große Anzahl von Dateien wurde lokal im Ordner '%1' gelöscht. -Bitte bestätigen Sie, dass Sie mit diesen Löschungen fortfahren möchten. -Alternativ können Sie auch alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. A new folder larger than %1 MB has been added: %2. - + Ein neuer Ordner größer als %1 MB wurde hinzugefügt: %2. Changes in synchronized folders could not be tracked reliably. @@ -1970,7 +1972,7 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe OCC::FolderCreationDialog %1 Create new folder - + %1 Neuen Ordner erstellen Could not create a folder! Check your write permissions. @@ -2001,11 +2003,11 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe (backup %1) - + (Sicherung %1) (backup) - + (Sicherung) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2128,7 +2130,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Synchronize any other local folder with your %1 - + Synchronisieren Sie jeden anderen lokalen Ordner mit Ihrem %1 @@ -2293,7 +2295,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Choose - + Wählen Sie Click to select a local folder to sync. @@ -2344,7 +2346,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Enter the name of the new folder to be created below "%1": - Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: + Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: Failed to create the folder on %1. Please check manually. @@ -2408,7 +2410,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::GeneralSettings - + &Analysis data collection for needs-based design&Analyse der Datenerhebung für bedarfsgerechte Gestaltung &Automatically check for updates &Automatisch auf Aktualisierungen prüfen @@ -2450,7 +2452,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Ask for confirmation before synchronizing new folders larger than - Bestätigung erfragen, bevor neue Ordner synchronisiert werden, die größer sind als + Um eine Bestätigung bitten, bevor Sie neue Ordner synchronisieren, die größer sind als Automatically disable synchronisation of folders that overcome limit @@ -2478,7 +2480,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Data Protection - + Datenschutzbestimmungen Debug Archive Created @@ -2511,7 +2513,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf More Information - + Mehr Informationen Move removed files to trash @@ -2527,11 +2529,11 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Open Source Software - + Open-Source-Software Privacy Policy - + Datenschutzerklärung Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2611,7 +2613,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Updates - + Aktualisierungen Usage Documentation @@ -2766,11 +2768,11 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. Dateien oder Ordner, die diesem Muster entsprechen, werden nicht synchronisiert. -Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn diese das Entfernen eines Ordners verhindern würden. Dies ist für Metadaten nützlich. +Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen eines Ordners verhindern würden. Dies ist nützlich für Metadaten. Ignore Pattern - + Muster ignorieren Pattern @@ -3814,7 +3816,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateLocalMkdir Could not create folder %1 - Ordner %1 konnte nicht erstellt werden + Ordner %1 konnte nicht erstellt werden Error updating metadata: %1 @@ -3888,7 +3890,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Folder %1 cannot be renamed because of a local file or folder name clash! - Ordner %1 kann aufgrund einer lokalen Datei- oder Ordnernamenskollision nicht umbenannt werden! + Ordner %1 kann nicht umbenannt werden, da ein Konflikt zwischen lokalen Datei- oder Ordnernamen besteht! The file %1 is currently in use @@ -4011,7 +4013,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Upload of %1 exceeds the quota for the folder - Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners + Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners @@ -4142,7 +4144,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver Success - + Erfolg Warning @@ -4166,7 +4168,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver New account - + Neues Konto Settings @@ -4458,11 +4460,11 @@ Server antwortete mit Fehler: %2 This connection is NOT secure as it is not encrypted. - + Diese Verbindung ist NICHT sicher, da diese nicht verschlüsselt ist. This connection is encrypted using %1 bit %2. - + Diese Verbindung ist verschlüsselt mit %1 Bit %2. @@ -4739,51 +4741,51 @@ Server antwortete mit Fehler: %2 Help-Link - + https://wl.hidrive.com/easy/0148 Help-Link_STRATO - + https://static.hidrive.com/next/1011 LegalNotice-Link - + https://wl.hidrive.com/easy/0044 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1021 Login_URL - + https://storage.ionos.de Login_URL_STRATO - + https://storage.ionos.de MoreInformation-Link - + https://wl.hidrive.com/easy/0047 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1011 OpenSource-Link - + https://wl.hidrive.com/easy/0046 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0045 Privacy-Link_STRATO - + https://static.hidrive.com/next/1001 @@ -4809,7 +4811,7 @@ Server antwortete mit Fehler: %2 OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - Element konnte nicht fertiggestellt werden + Fehler beim Fertigstellen des Elements. Failed to unlock encrypted folder. @@ -4824,7 +4826,7 @@ Server antwortete mit Fehler: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - Benutzer %1 konnte für den Zugriff auf Ordner %2 nicht hinzugefügt oder entfernt werden + Benutzer %1 konnte nicht zum Zugriffsordner %2 hinzugefügt oder entfernt werden Could not fetch public key for user %1 @@ -4845,7 +4847,7 @@ Server antwortete mit Fehler: %2 OCC::User - + %1 notifications%1 Benachrichtigungen %n notification(s) %n Benachrichtigung @@ -5073,7 +5075,7 @@ Server antwortete mit Fehler: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Sie wurden von Ihrem Konto %1 bei %2 abgemeldet. Bitte melden Sie sich erneut an.</b> @@ -5273,7 +5275,7 @@ Server antwortete mit Fehler: %2 Updated local virtual files metadata - Metadaten für lokale virtuelle Dateien aktualisiert + Aktualisierte Metadaten für lokale virtuelle Dateien Updating end-to-end encryption metadata @@ -5299,7 +5301,7 @@ Server antwortete mit Fehler: %2 Virtual file created Virtuelle Datei erstellt - +updating local virtual files metadataAktualisierung der Metadaten lokaler virtueller Dateien ProxySettings @@ -5385,7 +5387,7 @@ Server antwortete mit Fehler: %2 Failed to create debug archive - Debug-Archiv konnte nicht erstellt werden + Fehler beim Erstellen des Debug-Archivs It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5425,7 +5427,7 @@ Server antwortete mit Fehler: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + Das Verzeichnis %1 kann nicht Teil Ihres Synchronisationsverzeichnisses sein. Bitte wählen Sie einen anderen Ordner. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5578,7 +5580,7 @@ Server antwortete mit Fehler: %2 SesTrayHeader Open Nextcloud in browser - + HiDrive Next im Browser öffnen Open local or team folders @@ -5586,7 +5588,7 @@ Server antwortete mit Fehler: %2 Website - + Website @@ -5624,13 +5626,13 @@ Server antwortete mit Fehler: %2 Custom Permissions - + Benutzerdefinierte Berechtigungen Enter a note for the recipient Eine Notiz für den Empfänger eingeben - + Enter the note to recipientGeben Sie eine Notiz an den Empfänger ein File drop (upload only) Dateien ablegen (nur Hochladen) @@ -5800,7 +5802,7 @@ Server antwortete mit Fehler: %2 TrayFoldersMenuButton Files - + Dateien Open %1 in file explorer @@ -5859,11 +5861,11 @@ Server antwortete mit Fehler: %2 Pause sync for all - Synchronisierung für alle pausieren + Synchronisierung für alle pausieren Resume sync for all - Synchronisierung für alle fortsetzen + Synchronisierung für alle fortsetzen Settings diff --git a/translations/client_en.ts b/translations/client_en.ts index 771097b8524d4..63a9abedac307 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -1,6 +1,6 @@ - +AgreeAgreeBackBackNecessary dataNecessary dataRequired to ensure that the software can be used as expectedRequired to ensure that the software can be used as expectedSave SettingsSave SettingsSend anonymous useSend anonymous useThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.This helps us to optimize the software and to better identify system crashes and unexpected errors.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. ActivityItem In %1 @@ -37,11 +37,11 @@ - +BasicComboBoxClear status message menuDelete status message menu CallNotificationDialog Answer Talk call notification - + Answer Talk call notification Decline @@ -49,11 +49,11 @@ Decline Talk call notification - + Decline Talk call notification Talk notification caller avatar - + Talk notification caller avatar @@ -93,7 +93,7 @@ Quit sync client - + Quit sync client Recently changed @@ -132,11 +132,11 @@ ConflictDelegate Local version - + Local version Server version - + Server version @@ -243,11 +243,11 @@ - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. FileProviderFileDelegate Delete - + Delete @@ -264,7 +264,7 @@ Reset virtual files environment - + Signal file provider domainSignal file provider domain Virtual files settings @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced - + Evict local copies...Evict local copies... Free up space … @@ -288,7 +288,7 @@ FileProviderSyncStatus All synced! - + All synced! Request a sync of changes for the VFS environment. @@ -342,18 +342,18 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync Add Folder Sync - + Add Folder Sync Step 3 of 3: Selektive Synchronisation - + Step 3 of 3: Selective Synchronisation FolderWizardSourcePage &Choose - + &Choose Add Folder Sync @@ -361,11 +361,11 @@ macOS may ignore or delay this request. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized. Step 1 of 3: Select local folder - + Step 1 of 3: Select local folder @@ -376,11 +376,11 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Create folder - + Create folder Folders @@ -388,7 +388,7 @@ macOS may ignore or delay this request. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Refresh @@ -396,7 +396,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + Step 2 of 3: Directory in your %1 @@ -457,7 +457,9 @@ macOS may ignore or delay this request. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 accounts were detected from a legacy desktop client. +Should the accounts be imported? An account was detected from a legacy desktop client. Should the account be imported? @@ -483,7 +485,7 @@ Should the account be imported? OCC::AccountSettings %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 as %2 @@ -631,15 +633,15 @@ Should the account be imported? Expand Memory - + Expand Memory - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0057ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 Folder creation failed Force sync now - + Force sync now Forget encryption setup @@ -723,7 +725,7 @@ Should the account be imported? Storage space %1% occupied - + Storage space %1% occupied Storage space: … @@ -763,15 +765,15 @@ Should the account be imported? There are folders that were not synchronized because they are external storages: - + There are folders that were not synchronised because they are external storages: There are folders that were not synchronized because they are too big or external storages: - + There are folders that were not synchronised because they are too big or external storages: There are folders that were not synchronized because they are too big: - + There are folders that were not synchronised because they are too big: This account supports end-to-end encryption, but it needs to be set up first. @@ -788,13 +790,14 @@ This action will abort any currently running synchronization. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). Unable to connect to %1. @@ -1166,7 +1169,7 @@ Would you like to do this now? Existing file - + Existing file Filename contains illegal characters: %1 @@ -1210,7 +1213,7 @@ Would you like to do this now? The file could not be synced because it generates a case clash conflict with an existing file on this system. - + The file could not be synced because it generates a case clash conflict with an existing file on this system. Use invalid name @@ -1396,7 +1399,7 @@ Would you like to do this now? Settings - + Settings This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1457,11 +1460,11 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob Encrypted metadata setup error! - + Encrypted metadata setup error! Encrypted metadata setup error: initial signature from server is empty. - + Encrypted metadata setup error: initial signature from server is empty. Server error: PROPFIND reply is not XML formatted! @@ -1725,7 +1728,7 @@ This can be an issue with your OpenSSL libraries. Open Browser - + Open Browser Polling for authorization @@ -1844,7 +1847,7 @@ This can be an issue with your OpenSSL libraries. A folder from an external storage has been added. - + A folder from an external storage has been added. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1855,17 +1858,21 @@ This can be an issue with your OpenSSL libraries. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. A new folder larger than %1 MB has been added: %2. - + A new folder larger than %1 MB has been added: %2. Changes in synchronized folders could not be tracked reliably. @@ -1901,19 +1908,19 @@ This means that the synchronization client might not upload local changes immedi Proceed with Deletion - + Proceed with deletion Remove all files? - + Remove all files? Restore Files from Server - + Restore files from server Restore Files to Server - + Restore files to server Stop syncing @@ -1948,7 +1955,7 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderCreationDialog %1 Create new folder - + %1 Create new folder Could not create a folder! Check your write permissions. @@ -1979,11 +1986,11 @@ This means that the synchronization client might not upload local changes immedi (backup %1) - + (backup %1) (backup) - + (backup) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2103,7 +2110,7 @@ For advanced users: this issue might be related to multiple sync database files Synchronize any other local folder with your %1 - + Synchronize any other local folder with your %1 @@ -2268,7 +2275,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Choose Click to select a local folder to sync. @@ -2319,7 +2326,7 @@ For advanced users: this issue might be related to multiple sync database files Enter the name of the new folder to be created below "%1": - + Enter the name of the new folder to be created below "%1": Failed to create the folder on %1. Please check manually. @@ -2370,7 +2377,7 @@ For advanced users: this issue might be related to multiple sync database files Use virtual files instead of downloading content immediately %1 - + Use virtual files instead of downloading content immediately %1 Virtual files are not supported at the selected location @@ -2383,7 +2390,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - + &Analysis data collection for needs-based design&Analysis data collection for needs-based design &Automatically check for updates @@ -2416,15 +2423,15 @@ Downgrading versions is not possible immediately: changing from stable to enterp Ask for confirmation before synchronizing external storages - + Ask for confirmation before synchronizing external storages Ask for confirmation before synchronizing new folders larger than - + Ask for confirmation before synchronizing new folders larger than Automatically disable synchronisation of folders that overcome limit - + Automatically disable synchronisation of folders that overcome limit Cancel @@ -2448,7 +2455,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Data Protection - + Data Protection Debug Archive Created @@ -2481,7 +2488,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + More Information Move removed files to trash @@ -2497,11 +2504,11 @@ Downgrading versions is not possible immediately: changing from stable to enterp Open Source Software - + Open Source Software Privacy Policy - + Privacy Policy Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2561,7 +2568,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Show sync folders in &Explorer's navigation pane - + Show sync folders in &Explorer's navigation pane The channel determines which upgrades will be offered to install: @@ -2580,7 +2587,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Updates - + Updates Usage Documentation @@ -2713,7 +2720,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: - + Add a new ignore pattern: Allow Deletion @@ -2731,11 +2738,13 @@ Downgrading versions is not possible immediately: changing from stable to enterp Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - + Files or folders matching a pattern will not be synchronized. + +Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. Ignore Pattern - + Ignore Pattern Pattern @@ -2987,7 +2996,7 @@ Note that using any logging command line options will override this setting. No proxy - + No proxy Note: proxy settings have no effects for accounts on localhost @@ -3770,7 +3779,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir Could not create folder %1 - + Could not create folder %1 Error updating metadata: %1 @@ -3844,7 +3853,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Folder %1 cannot be renamed because of a local file or folder name clash! - + Folder %1 cannot be renamed because of a local file or folder name clash! The file %1 is currently in use @@ -3967,7 +3976,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Upload of %1 exceeds the quota for the folder - + Upload of %1 exceeds the quota for the folder @@ -4098,7 +4107,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + Success Warning @@ -4122,7 +4131,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss New account - + New Account Settings @@ -4412,11 +4421,11 @@ Server replied with error: %2 This connection is NOT secure as it is not encrypted. - + This connection is NOT secure as it is not encrypted. This connection is encrypted using %1 bit %2. - + This connection is encrypted using %1 bit %2. @@ -4693,51 +4702,51 @@ Server replied with error: %2 Help-Link - + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - + https://static.hidrive.com/next/1016 LegalNotice-Link - + https://wl.hidrive.com/easy/0004 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1026 Login_URL - + https://storage.ionos.com Login_URL_STRATO - + https://storage.ionos.com MoreInformation-Link - + https://wl.hidrive.com/easy/0007 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1016 OpenSource-Link - + https://wl.hidrive.com/easy/0006 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0005 Privacy-Link_STRATO - + https://static.hidrive.com/next/1006 @@ -4763,11 +4772,11 @@ Server replied with error: %2 OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - + Failed to finalize item. Failed to unlock encrypted folder. - + Failed to unlock encrypted folder. Failed to update folder metadata. @@ -4778,7 +4787,7 @@ Server replied with error: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - + Could not add or remove user %1 to access folder %2 Could not fetch public key for user %1 @@ -4799,7 +4808,7 @@ Server replied with error: %2 OCC::User - + %1 notifications%1 notifications %n notification(s) %n notification @@ -5027,7 +5036,7 @@ Server replied with error: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>You have been logged out of your account %1 at %2. Please login again.</b> @@ -5089,7 +5098,7 @@ Server replied with error: %2 <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> Ask before syncing folders larger than @@ -5227,7 +5236,7 @@ Server replied with error: %2 Updated local virtual files metadata - + Updated local virtual files metadata Updating end-to-end encryption metadata @@ -5253,7 +5262,7 @@ Server replied with error: %2 Virtual file created - +updating local virtual files metadataUpdating local virtual files metadata ProxySettings @@ -5331,7 +5340,7 @@ Server replied with error: %2 Could not create debug archive in selected location! - + Could not create debug archive in selected location! Error deleting the file @@ -5339,7 +5348,7 @@ Server replied with error: %2 Failed to create debug archive - + Failed to create debug archive It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5379,7 +5388,7 @@ Server replied with error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The directory %1 cannot be part of your sync directory. Please choose another folder. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5532,7 +5541,7 @@ Server replied with error: %2 SesTrayHeader Open Nextcloud in browser - + Open HiDrive Next in browser Open local or team folders @@ -5540,7 +5549,7 @@ Server replied with error: %2 Website - + Website @@ -5574,17 +5583,17 @@ Server replied with error: %2 Copy share link - + Copy share link Custom Permissions - + Custom Permissions Enter a note for the recipient - + Enter the note to recipientEnter the note to recipient File drop (upload only) @@ -5606,7 +5615,7 @@ Server replied with error: %2 Share link copied! - + Share link copied! Unshare @@ -5754,7 +5763,7 @@ Server replied with error: %2 TrayFoldersMenuButton Files - + Files Open %1 in file explorer @@ -5813,11 +5822,11 @@ Server replied with error: %2 Pause sync for all - + Pause sync for all Resume sync for all - + Resume sync for all Settings diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index 119da46584d18..ff6cac9f034a4 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -1,6 +1,6 @@ - +AgreeAgreeBackBackNecessary dataNecessary dataRequired to ensure that the software can be used as expectedRequired to ensure that the software can be used as expectedSave SettingsSave SettingsSend anonymous useSend anonymous useThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.This helps us to optimize the software and to better identify system crashes and unexpected errors.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. ActivityItem In %1 @@ -37,7 +37,7 @@ Scroll to top - +BasicComboBoxClear status message menuDelete status message menu CallNotificationDialog Answer Talk call notification @@ -243,7 +243,7 @@ Remove local copies - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. FileProviderFileDelegate Delete @@ -264,7 +264,7 @@ Reset virtual files environment Reset virtual files environment - + Signal file provider domainSignal file provider domain Virtual files settings Virtual files settings @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 GB of %2 GB remote files synced - + Evict local copies...Evict local copies... Free up space … Free up space … @@ -343,18 +343,18 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync Add Folder Sync - + Add Folder Sync Step 3 of 3: Selektive Synchronisation - + Step 3 of 3: Selective Synchronisation FolderWizardSourcePage &Choose - + &Choose Add Folder Sync @@ -362,11 +362,11 @@ macOS may ignore or delay this request. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Step 1 of 3: Select local folder - + Step 1 of 3: Select local folder @@ -377,7 +377,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Create folder @@ -389,7 +389,7 @@ macOS may ignore or delay this request. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Refresh @@ -397,7 +397,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + Step 2 of 3: Directory in your %1 @@ -458,7 +458,9 @@ macOS may ignore or delay this request. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 accounts were detected from a legacy desktop client. +Should the accounts be imported? An account was detected from a legacy desktop client. Should the account be imported? An account was detected from a legacy desktop client. @@ -633,9 +635,9 @@ Should the account be imported? Expand Memory - + Expand Memory - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0057ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 Folder creation failed Folder creation failed @@ -725,7 +727,7 @@ Should the account be imported? Storage space %1% occupied - + Storage space %1% occupied Storage space: … @@ -765,15 +767,15 @@ Should the account be imported? There are folders that were not synchronized because they are external storages: - + There are folders that were not synchronised because they are external storages: There are folders that were not synchronized because they are too big or external storages: - + There are folders that were not synchronised because they are too big or external storages: There are folders that were not synchronized because they are too big: - + There are folders that were not synchronised because they are too big: This account supports end-to-end encryption, but it needs to be set up first. @@ -794,14 +796,14 @@ This action will abort any currently running synchronization. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). Unable to connect to %1. Unable to connect to %1. @@ -1408,7 +1410,7 @@ Would you like to do this now? Settings - Settings + Settings This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1857,7 +1859,7 @@ This can be an issue with your OpenSSL libraries. A folder from an external storage has been added. - + A folder from an external storage has been added. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1869,21 +1871,21 @@ This can be an issue with your OpenSSL libraries. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - A large number of files in the server have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. + Eine große Anzahl von Dateien wurde auf dem Server gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - A large number of files in your local '%1' folder have been deleted. -Please confirm if you'd like to proceed with these deletions. -Alternatively, you can restore all deleted files by downloading them from the server. + Eine große Anzahl von Dateien in Ihrem lokalen Ordner "%1" wurde gelöscht. +Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. +Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. A new folder larger than %1 MB has been added: %2. - + A new folder larger than %1 MB has been added: %2. Changes in synchronized folders could not be tracked reliably. @@ -1970,7 +1972,7 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderCreationDialog %1 Create new folder - + %1 Create new folder Could not create a folder! Check your write permissions. @@ -2001,11 +2003,11 @@ This means that the synchronization client might not upload local changes immedi (backup %1) - + (backup %1) (backup) - + (backup) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2128,7 +2130,7 @@ For advanced users: this issue might be related to multiple sync database files Synchronize any other local folder with your %1 - + Synchronize any other local folder with your %1 @@ -2293,7 +2295,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Choose Click to select a local folder to sync. @@ -2408,7 +2410,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - + &Analysis data collection for needs-based design&Analysis data collection for needs-based design &Automatically check for updates &Automatically check for updates @@ -2478,7 +2480,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Data Protection - + Data Protection Debug Archive Created @@ -2511,7 +2513,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + More Information Move removed files to trash @@ -2527,11 +2529,11 @@ Downgrading versions is not possible immediately: changing from stable to enterp Open Source Software - + Open Source Software Privacy Policy - + Privacy Policy Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2612,7 +2614,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Updates - + Updates Usage Documentation @@ -2771,7 +2773,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from Ignore Pattern - + Ignore Pattern Pattern @@ -4143,7 +4145,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + Success Warning @@ -4167,7 +4169,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss New account - + New account Settings @@ -4459,11 +4461,11 @@ Server replied with error: %2 This connection is NOT secure as it is not encrypted. - + This connection is NOT secure as it is not encrypted. This connection is encrypted using %1 bit %2. - + This connection is encrypted using %1 bit %2. @@ -4740,51 +4742,51 @@ Server replied with error: %2 Help-Link - + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - + https://static.hidrive.com/next/1016 LegalNotice-Link - + https://wl.hidrive.com/easy/0004 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1026 Login_URL - + https://storage.ionos.co.uk Login_URL_STRATO - + https://storage.ionos.co.uk MoreInformation-Link - + https://wl.hidrive.com/easy/0007 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1016 OpenSource-Link - + https://wl.hidrive.com/easy/0006 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0005 Privacy-Link_STRATO - + https://static.hidrive.com/next/1006 @@ -4825,7 +4827,7 @@ Server replied with error: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - Unable to add or remove user %1 from accessing folder %2. + Could not add or remove user %1 to access folder %2 Could not fetch public key for user %1 @@ -4846,7 +4848,7 @@ Server replied with error: %2 OCC::User - + %1 notifications%1 notifications %n notification(s) %n notification @@ -5074,7 +5076,7 @@ Server replied with error: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>You have been logged out of your account %1 at %2. Please login again.</b> @@ -5300,7 +5302,7 @@ Server replied with error: %2 Virtual file created Virtual file created - +updating local virtual files metadataUpdating local virtual files metadata ProxySettings @@ -5426,7 +5428,7 @@ Server replied with error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + The directory %1 cannot be part of your sync directory. Please choose another folder. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5579,7 +5581,7 @@ Server replied with error: %2 SesTrayHeader Open Nextcloud in browser - + Open HiDrive Next in browser Open local or team folders @@ -5587,7 +5589,7 @@ Server replied with error: %2 Website - + Website @@ -5625,13 +5627,13 @@ Server replied with error: %2 Custom Permissions - + Custom Permissions Enter a note for the recipient Enter a note for the recipient - + Enter the note to recipientEnter the note to recipient File drop (upload only) File drop (upload only) @@ -5801,7 +5803,7 @@ Server replied with error: %2 TrayFoldersMenuButton Files - + Files Open %1 in file explorer @@ -5860,11 +5862,11 @@ Server replied with error: %2 Pause sync for all - Pause sync for all + Pause sync for all Resume sync for all - Resume sync for all + Resume sync for all Settings diff --git a/translations/client_es.ts b/translations/client_es.ts index bbeab7ad62393..8f7caf527a208 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -1,6 +1,7 @@ - +AgreeAceptarBackVolverNecessary dataDatos necesariosRequired to ensure that the software can be used as expectedNecesario para garantizar que el software puede utilizarse según lo previstoSave SettingsGuardar ajustesSend anonymous useEnviar uso anónimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOEsta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. ActivityItem In %1 @@ -37,7 +38,7 @@ Desplazarse hasta la parte superior - +BasicComboBoxClear status message menuBorrar el menú de mensajes de estado CallNotificationDialog Answer Talk call notification @@ -243,7 +244,7 @@ Quitar copias locales - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. FileProviderFileDelegate Delete @@ -264,7 +265,7 @@ Reset virtual files environment Reiniciar el ambiente de archivos virtuales - + Signal file provider domainDominio del proveedor de archivos de firmas Virtual files settings Configuración de archivos virtuales @@ -275,7 +276,7 @@ %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - + Evict local copies...Desalojar las copias locales... Free up space … Liberar espacio … @@ -343,18 +344,18 @@ macOS podría ignorar o demorar esta solicitud. FolderWizardSelectiveSync Add Folder Sync - + Añadir sincronización de carpetas Step 3 of 3: Selektive Synchronisation - + Paso 3 de 3: Sincronización selectiva FolderWizardSourcePage &Choose - + &Elegir Add Folder Sync @@ -362,11 +363,11 @@ macOS podría ignorar o demorar esta solicitud. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. Step 1 of 3: Select local folder - + Paso 1 de 3: Seleccionar carpeta local @@ -377,11 +378,11 @@ macOS podría ignorar o demorar esta solicitud. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. Create folder - Crear carpeta + Crear carpeta Folders @@ -389,7 +390,7 @@ macOS podría ignorar o demorar esta solicitud. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. Refresh @@ -397,7 +398,7 @@ macOS podría ignorar o demorar esta solicitud. Step 2 of 3: Directory in your %1 - + Paso 2 de 3: Directorio en su %1 @@ -458,7 +459,9 @@ macOS podría ignorar o demorar esta solicitud. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? An account was detected from a legacy desktop client. Should the account be imported? Se detectó una cuenta desde un cliente de escritorio antiguo. @@ -633,9 +636,9 @@ Should the account be imported? Expand Memory - + Ampliar la memoria - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0067ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1043 Folder creation failed Ha fallado la creación de la carpeta @@ -725,7 +728,7 @@ Should the account be imported? Storage space %1% occupied - + Espacio de almacenamiento %1% ocupado Storage space: … @@ -765,15 +768,15 @@ Should the account be imported? There are folders that were not synchronized because they are external storages: - + Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: There are folders that were not synchronized because they are too big or external storages: - + Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: There are folders that were not synchronized because they are too big: - + Hay carpetas que no se han sincronizado porque son demasiado grandes: This account supports end-to-end encryption, but it needs to be set up first. @@ -794,14 +797,14 @@ Además, esta acción interrumpirá cualquier sincronización en curso. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado mnemónica. -<b>Este proceso no es puede deshacer. ¿Seguro que desea continuar?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. +<b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Para proteger su Identidad Criptográfica, ciframos la misma con un mnemonico de 12 palabras de diccionario. Por favor, anótelo y consérvelo a salvo. Lo necesitará para configurar la sincronización de carpetas cifradas en sus otros dispositivos. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). Unable to connect to %1. No es posible conectarse con %1. @@ -1408,7 +1411,7 @@ Would you like to do this now? Settings - + Ajustes This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1473,7 +1476,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. - Error de configuración de los metadatos cifrados: la firma inicial del servidor está vacía. + Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. Server error: PROPFIND reply is not XML formatted! @@ -1726,7 +1729,7 @@ Esto podría ser un problema con tu librería OpenSSL OCC::Flow2AuthWidget Copy Link - Copiar Link + Copiar enlace Error @@ -1738,7 +1741,7 @@ Esto podría ser un problema con tu librería OpenSSL Open Browser - Abrir Navegador + Abrir en el navegador Polling for authorization @@ -1857,7 +1860,7 @@ Esto podría ser un problema con tu librería OpenSSL A folder from an external storage has been added. - + Una carpeta de almacenamiento externo ha sido añadida. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1869,21 +1872,21 @@ Esto podría ser un problema con tu librería OpenSSL A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Han sido eliminados un gran número de archivos en el servidor. -Por favor, confirme si quiere proceder con estas eliminaciones. -Alternativamente, puede restaurar todos los archivos borrados subiéndolos desde la carpeta '%1' al servidor. + Se ha eliminado un gran número de archivos del servidor. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - Han sido eliminados un gran número de archivos en su carpeta local '%1'. -Por favor, confirma si quiere continuar con estas eliminaciones. -Alternativamente, puede restaurar todos los archivos borrados descargándolos del servidor. + Se ha eliminado un gran número de archivos de tu carpeta local '%1'. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. A new folder larger than %1 MB has been added: %2. - + Una carpeta mayor de %1 MB ha sido añadida: %2. Changes in synchronized folders could not be tracked reliably. @@ -1923,7 +1926,7 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Proceed with Deletion - Continuar con la eliminación + Proceder a la supresión Remove all files? @@ -1931,11 +1934,11 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente Restore Files from Server - Restaurar los archivos desde el servidor + Restaurar archivos del servidor Restore Files to Server - Restaurar los archivos al servidor + Restaurar archivos en el servidor Stop syncing @@ -1970,7 +1973,7 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente OCC::FolderCreationDialog %1 Create new folder - + %1 Crear nueva carpeta Could not create a folder! Check your write permissions. @@ -2001,11 +2004,11 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente (backup %1) - + (copia de seguridad %1) (backup) - + (copia de seguridad) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2128,7 +2131,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Synchronize any other local folder with your %1 - + Sincroniza cualquier otra carpeta local con tu %1 @@ -2293,7 +2296,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Choose - + Seleccione Click to select a local folder to sync. @@ -2408,7 +2411,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::GeneralSettings - + &Analysis data collection for needs-based design&Recogida de datos de análisis para un diseño basado en las necesidades &Automatically check for updates Comprobar &actualizaciones automáticamente @@ -2446,7 +2449,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Ask for confirmation before synchronizing external storages - Preguntar si se desea sincronizar carpetas de almacenamiento externo + Pide confirmación antes de sincronizar almacenamientos externos Ask for confirmation before synchronizing new folders larger than @@ -2454,7 +2457,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Automatically disable synchronisation of folders that overcome limit - Deshabilitar sincronización de manera automática para las carpetas que sobrepasen el límite + Desactivar automáticamente la sincronización de carpetas que superen el límite Cancel @@ -2478,7 +2481,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Data Protection - + Protección de datos Debug Archive Created @@ -2511,7 +2514,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable More Information - + Más información Move removed files to trash @@ -2527,11 +2530,11 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Open Source Software - + Software de código abierto Privacy Policy - + Política de privacidad Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2591,7 +2594,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Show sync folders in &Explorer's navigation pane - Mostrar carpetas sincronizadas en el panel de navegación del &Explorador + Mostrar carpetas de sincronización en el panel de navegación de &Explorer The channel determines which upgrades will be offered to install: @@ -2612,7 +2615,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Updates - + Actualizaciones Usage Documentation @@ -2747,7 +2750,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Add a new ignore pattern: - Añadir un nuevo patrón de archivos ignorados: + Añadir un nuevo patrón de ignorar: Allow Deletion @@ -2765,13 +2768,13 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - Los archivos o carpetas que coincidan con un patrón no se sincronizarán. + Los archivos o carpetas que coincidan con este patrón no se sincronizarán. -Los elementos que se permite su borrado se eliminarán si impiden que un directorio se elimine. Esto es útil para los metadatos. +Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. Ignore Pattern - + Ignorar patrón Pattern @@ -3889,7 +3892,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Folder %1 cannot be renamed because of a local file or folder name clash! - ¡La carpeta %1 no puede ser renombrada ya que un archivo o carpeta local causa un conflicto de nombre! + La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. The file %1 is currently in use @@ -4143,7 +4146,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c Success - + Éxito Warning @@ -4167,7 +4170,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c New account - + Nueva cuenta Settings @@ -4459,11 +4462,11 @@ El servidor respondió con el error: %2 This connection is NOT secure as it is not encrypted. - + Esta conexión NO ES SEGURA, pues no está cifrada. This connection is encrypted using %1 bit %2. - + Esta conexión está cifrada con %1 bit %2. @@ -4740,51 +4743,51 @@ El servidor respondió con el error: %2 Help-Link - + https://wl.hidrive.com/easy/0118 Help-Link_STRATO - + https://static.hidrive.com/next/1013 LegalNotice-Link - + https://wl.hidrive.com/easy/0014 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1023 Login_URL - + https://storage.ionos.es Login_URL_STRATO - + https://storage.ionos.es MoreInformation-Link - + https://wl.hidrive.com/easy/0017 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1013 OpenSource-Link - + https://wl.hidrive.com/easy/0016 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0015 Privacy-Link_STRATO - + https://static.hidrive.com/next/1003 @@ -4825,7 +4828,7 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - No se ha podido añadir o eliminar al usuario %1 para acceder a la carpeta %2 + No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 Could not fetch public key for user %1 @@ -4846,7 +4849,7 @@ El servidor respondió con el error: %2 OCC::User - + %1 notifications%1 notificaciones %n notification(s) %n notificación @@ -5074,7 +5077,7 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> @@ -5136,7 +5139,7 @@ El servidor respondió con el error: %2 <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Si esta casilla está marcada, el contenido existente en el directorio local será eliminado para comenzar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debería subirse al directorio del servidor.</p></body></html> + <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. Ask before syncing folders larger than @@ -5274,7 +5277,7 @@ El servidor respondió con el error: %2 Updated local virtual files metadata - Se han actualizado los metadatos para los archivos virtuales + Actualizados los metadatos de los archivos virtuales locales Updating end-to-end encryption metadata @@ -5300,7 +5303,7 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado - +updating local virtual files metadataActualización de los metadatos de los archivos virtuales locales ProxySettings @@ -5378,7 +5381,7 @@ El servidor respondió con el error: %2 Could not create debug archive in selected location! - ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. Error deleting the file @@ -5386,7 +5389,7 @@ El servidor respondió con el error: %2 Failed to create debug archive - Fallo al crear archivo de depuración + Error al crear el archivo de depuración It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5426,7 +5429,7 @@ El servidor respondió con el error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5579,7 +5582,7 @@ El servidor respondió con el error: %2 SesTrayHeader Open Nextcloud in browser - + Abrir HiDrive Next en el navegador Open local or team folders @@ -5587,7 +5590,7 @@ El servidor respondió con el error: %2 Website - + Sitio web @@ -5625,13 +5628,13 @@ El servidor respondió con el error: %2 Custom Permissions - + Permisos personalizados Enter a note for the recipient Ingrese una nota para el destinatario - + Enter the note to recipientIntroducir la nota al destinatario File drop (upload only) Entrega de archivos (solo carga) @@ -5653,7 +5656,7 @@ El servidor respondió con el error: %2 Share link copied! - ¡Enlace al recurso compartido copiado! + ¡Enlace compartido copiado! Unshare @@ -5801,7 +5804,7 @@ El servidor respondió con el error: %2 TrayFoldersMenuButton Files - + Archivos Open %1 in file explorer @@ -5836,7 +5839,7 @@ El servidor respondió con el error: %2 Add account - + Añadir cuenta Current account @@ -5860,15 +5863,15 @@ El servidor respondió con el error: %2 Pause sync for all - + Pausar sincronización para todos Resume sync for all - + Reanudar sincronización para todos Settings - + Configuración diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 083ca57c5077f..58ad1615c56b4 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -1,6 +1,7 @@ - +AgreeAceptarBackVolverNecessary dataDatos necesariosRequired to ensure that the software can be used as expectedNecesario para garantizar que el software puede utilizarse según lo previstoSave SettingsGuardar ajustesSend anonymous useEnviar uso anónimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOEsta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. ActivityItem In %1 @@ -37,11 +38,11 @@ - +BasicComboBoxClear status message menuBorrar el menú de mensajes de estado CallNotificationDialog Answer Talk call notification - Notificación de responder llamada + Aviso de llamada de Answer Talk Decline @@ -49,7 +50,7 @@ Decline Talk call notification - Rechazar notificación de llamada + Rechazar la notificación de llamadas de Talk Talk notification caller avatar @@ -243,11 +244,11 @@ - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. FileProviderFileDelegate Delete - Eliminar + Borrar @@ -264,7 +265,7 @@ Reset virtual files environment - + Signal file provider domainDominio del proveedor de archivos de firmas Virtual files settings Configuración de archivos virtuales @@ -275,7 +276,7 @@ %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - + Evict local copies...Desalojar las copias locales... Free up space … @@ -342,18 +343,18 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync Add Folder Sync - + Añadir sincronización de carpetas Step 3 of 3: Selektive Synchronisation - + Paso 3 de 3: Sincronización selectiva FolderWizardSourcePage &Choose - + &Elegir Add Folder Sync @@ -361,11 +362,11 @@ macOS may ignore or delay this request. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. Step 1 of 3: Select local folder - + Paso 1 de 3: Seleccionar carpeta local @@ -376,7 +377,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. Create folder @@ -388,7 +389,7 @@ macOS may ignore or delay this request. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. Refresh @@ -396,7 +397,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + Paso 2 de 3: Directorio en su %1 @@ -457,7 +458,9 @@ macOS may ignore or delay this request. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? An account was detected from a legacy desktop client. Should the account be imported? @@ -483,7 +486,7 @@ Should the account be imported? OCC::AccountSettings %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) de %2 en uso. Algunas carpetas, incluidas carpetas montadas en red o carpetas compartidas, pueden tener diferentes límites + %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. %1 as %2 @@ -631,9 +634,9 @@ Should the account be imported? Expand Memory - + Ampliar la memoria - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0067ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1043 Folder creation failed Falló la creación de la carpeta @@ -723,7 +726,7 @@ Should the account be imported? Storage space %1% occupied - + Espacio de almacenamiento %1% ocupado Storage space: … @@ -763,15 +766,15 @@ Should the account be imported? There are folders that were not synchronized because they are external storages: - + Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: There are folders that were not synchronized because they are too big or external storages: - + Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: There are folders that were not synchronized because they are too big: - + Hay carpetas que no se han sincronizado porque son demasiado grandes: This account supports end-to-end encryption, but it needs to be set up first. @@ -792,14 +795,14 @@ This action will abort any currently running synchronization. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su llave mnemotécnica de cifrado. -<b>Este proceso no es reversible. ¿Seguro que desea continuar?</b> + Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. +<b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). Unable to connect to %1. No se pudo conectar a %1. @@ -1217,7 +1220,7 @@ Would you like to do this now? The file could not be synced because it generates a case clash conflict with an existing file on this system. - No se puede sincronizar el archivo porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. + El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. Use invalid name @@ -1405,7 +1408,7 @@ Would you like to do this now? Settings - + Ajustes This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1470,7 +1473,7 @@ Would you like to do this now? Encrypted metadata setup error: initial signature from server is empty. - + Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. Server error: PROPFIND reply is not XML formatted! @@ -1735,7 +1738,7 @@ Esto podría ser un problema con su librería OpenSSL. Open Browser - + Abrir en el navegador Polling for authorization @@ -1854,7 +1857,7 @@ Esto podría ser un problema con su librería OpenSSL. A folder from an external storage has been added. - + Una carpeta de almacenamiento externo ha sido añadida. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1866,17 +1869,21 @@ Esto podría ser un problema con su librería OpenSSL. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Se ha eliminado un gran número de archivos del servidor. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - + Se ha eliminado un gran número de archivos de tu carpeta local '%1'. +Por favor, confirme si desea proceder con estos borrados. +Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. A new folder larger than %1 MB has been added: %2. - + Una carpeta mayor de %1 MB ha sido añadida: %2. Changes in synchronized folders could not be tracked reliably. @@ -1916,7 +1923,7 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Proceed with Deletion - + Proceder a la supresión Remove all files? @@ -1924,11 +1931,11 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l Restore Files from Server - + Restaurar archivos del servidor Restore Files to Server - + Restaurar archivos en el servidor Stop syncing @@ -1963,7 +1970,7 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l OCC::FolderCreationDialog %1 Create new folder - + %1 Crear nueva carpeta Could not create a folder! Check your write permissions. @@ -1994,11 +2001,11 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l (backup %1) - + (copia de seguridad %1) (backup) - + (copia de seguridad) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2118,7 +2125,7 @@ For advanced users: this issue might be related to multiple sync database files Synchronize any other local folder with your %1 - + Sincroniza cualquier otra carpeta local con tu %1 @@ -2283,7 +2290,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Seleccione Click to select a local folder to sync. @@ -2334,7 +2341,7 @@ For advanced users: this issue might be related to multiple sync database files Enter the name of the new folder to be created below "%1": - Ingrese el nombre de la nueva carpeta que se creará debajo de "%1": + Introduce el nombre de la nueva carpeta que se creará debajo de "%1": Failed to create the folder on %1. Please check manually. @@ -2385,7 +2392,7 @@ For advanced users: this issue might be related to multiple sync database files Use virtual files instead of downloading content immediately %1 - Usar archivos virtuales en lugar de descargar el contenido inmediatamente %1 + Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 Virtual files are not supported at the selected location @@ -2398,7 +2405,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - + &Analysis data collection for needs-based design&Recogida de datos de análisis para un diseño basado en las necesidades &Automatically check for updates Comprobar &actualizaciones automáticamente @@ -2431,7 +2438,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Ask for confirmation before synchronizing external storages - Perdir confirmaci´pón antes de sincronizar almacenamientos externos + Pide confirmación antes de sincronizar almacenamientos externos Ask for confirmation before synchronizing new folders larger than @@ -2439,7 +2446,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Automatically disable synchronisation of folders that overcome limit - Deshabilitar sincronización automáticamente para las carpetas que sobrepasen el límite + Desactivar automáticamente la sincronización de carpetas que superen el límite Cancel @@ -2463,7 +2470,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Data Protection - + Protección de datos Debug Archive Created @@ -2496,7 +2503,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Más información Move removed files to trash @@ -2512,11 +2519,11 @@ Downgrading versions is not possible immediately: changing from stable to enterp Open Source Software - + Software de código abierto Privacy Policy - + Política de privacidad Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2576,7 +2583,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Show sync folders in &Explorer's navigation pane - Mostrar las carpetas sincronizadas en el panel de navegación del &explorador + Mostrar carpetas de sincronización en el panel de navegación de &Explorer The channel determines which upgrades will be offered to install: @@ -2595,7 +2602,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Updates - + Actualizaciones Usage Documentation @@ -2730,7 +2737,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Add a new ignore pattern: - Añadir un nuevo patrón de exclusión: + Añadir un nuevo patrón de ignorar: Allow Deletion @@ -2748,13 +2755,13 @@ Downgrading versions is not possible immediately: changing from stable to enterp Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - Los archivos o carpetas que coincidan con un patrón no se sincronizarán. + Los archivos o carpetas que coincidan con este patrón no se sincronizarán. -Los elementos en los que se permite el borrado se eliminarán si impiden que un directorio se elimine. Esto es útil para los metadatos. +Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. Ignore Pattern - + Ignorar patrón Pattern @@ -3872,7 +3879,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Folder %1 cannot be renamed because of a local file or folder name clash! - ¡No se puede renombrar la carpeta %1 debido a un conflicto de nombre con un archivo o carpeta local! + La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. The file %1 is currently in use @@ -3995,7 +4002,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Upload of %1 exceeds the quota for the folder - La carga de %1 excede la cuota de la carpeta + La subida %1 excede el límite de tamaño de la carpeta @@ -4126,7 +4133,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu Success - + Éxito Warning @@ -4150,7 +4157,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu New account - + Nueva cuenta Settings @@ -4442,11 +4449,11 @@ El servidor respondió con el error: %2 This connection is NOT secure as it is not encrypted. - + Esta conexión NO ES SEGURA, pues no está cifrada. This connection is encrypted using %1 bit %2. - + Esta conexión está cifrada con %1 bit %2. @@ -4723,51 +4730,51 @@ El servidor respondió con el error: %2 Help-Link - + https://wl.hidrive.com/easy/0118 Help-Link_STRATO - + https://static.hidrive.com/next/1013 LegalNotice-Link - + https://wl.hidrive.com/easy/0014 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1023 Login_URL - + https://storage.ionos.es Login_URL_STRATO - + https://storage.ionos.es MoreInformation-Link - + https://wl.hidrive.com/easy/0017 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1013 OpenSource-Link - + https://wl.hidrive.com/easy/0016 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0015 Privacy-Link_STRATO - + https://static.hidrive.com/next/1003 @@ -4793,11 +4800,11 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - No se pudo finalizar el ítem. + Fallo al finalizar ítem. Failed to unlock encrypted folder. - No se pudo desbloquear la carpeta cifrada. + Fallo al desbloquear carpeta cifrada. Failed to update folder metadata. @@ -4808,7 +4815,7 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - No se pudo añadir o eliminar al usuario %1 para acceder a la carpeta %2 + No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 Could not fetch public key for user %1 @@ -4829,7 +4836,7 @@ El servidor respondió con el error: %2 OCC::User - + %1 notifications%1 notificaciones %n notification(s) @@ -5057,7 +5064,7 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> @@ -5119,7 +5126,7 @@ El servidor respondió con el error: %2 <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Si esta opción está seleccionada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marques esta opción si el contenido local debe ser cargado a la carpeta de los servidores.</p></body></html> + <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. Ask before syncing folders larger than @@ -5257,7 +5264,7 @@ El servidor respondió con el error: %2 Updated local virtual files metadata - Metadatos de los archivos virtuales locales actualizados + Actualizados los metadatos de los archivos virtuales locales Updating end-to-end encryption metadata @@ -5283,7 +5290,7 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado - +updating local virtual files metadataActualización de los metadatos de los archivos virtuales locales ProxySettings @@ -5361,7 +5368,7 @@ El servidor respondió con el error: %2 Could not create debug archive in selected location! - ¡No se pudo crear el archivo de depuración en la ubicación seleccionada! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. Error deleting the file @@ -5369,7 +5376,7 @@ El servidor respondió con el error: %2 Failed to create debug archive - No se pudo crear el archivo de depuración + Error al crear el archivo de depuración It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5409,7 +5416,7 @@ El servidor respondió con el error: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5562,7 +5569,7 @@ El servidor respondió con el error: %2 SesTrayHeader Open Nextcloud in browser - + Abrir HiDrive Next en el navegador Open local or team folders @@ -5570,7 +5577,7 @@ El servidor respondió con el error: %2 Website - + Sitio web @@ -5604,17 +5611,17 @@ El servidor respondió con el error: %2 Copy share link - Copiar enlace de uso compartido + Copiar enlace de recurso compartido Custom Permissions - + Permisos personalizados Enter a note for the recipient - + Enter the note to recipientIntroducir la nota al destinatario File drop (upload only) Soltar archivo (sólo carga) @@ -5636,7 +5643,7 @@ El servidor respondió con el error: %2 Share link copied! - ¡Enlace de uso compartido copiado! + ¡Enlace compartido copiado! Unshare @@ -5784,7 +5791,7 @@ El servidor respondió con el error: %2 TrayFoldersMenuButton Files - + Archivos Open %1 in file explorer @@ -5819,7 +5826,7 @@ El servidor respondió con el error: %2 Add account - + Añadir cuenta Current account @@ -5843,15 +5850,15 @@ El servidor respondió con el error: %2 Pause sync for all - Pausar sincronización para todos + Pausar sincronización para todos Resume sync for all - Reanudar sincronización para todos + Reanudar sincronización para todos Settings - + Configuración diff --git a/translations/client_fr.ts b/translations/client_fr.ts index 01070704eaa79..70eb91e9cd04a 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -1,6 +1,6 @@ - +AgreeAccepterBackRetourNecessary dataDonnées indispensablesRequired to ensure that the software can be used as expectedNécessaire pour s'assurer que le logiciel peut être utilisé comme prévuSave SettingsSauvegarder les paramètresSend anonymous useEnvoyer utilisation anonymeThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOCette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. ActivityItem In %1 @@ -37,7 +37,7 @@ Défiler vers le haut - +BasicComboBoxClear status message menuMenu d'effacement du message de statut CallNotificationDialog Answer Talk call notification @@ -136,7 +136,7 @@ Server version - Version serveur + Version du serveur @@ -218,7 +218,7 @@ FileDetailsPage Dismiss - + Fermer @@ -243,7 +243,7 @@ Supprimer les copies locales - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La synchronisation rapide va uniquement synchroniser les modifications des fichiers et des dossiers dans les dossiers qui ont été explorés. Ceci peut significativement augmenter la réactivité sur la configuration initiale des fichiers virtuelles. Cependant, cela va causer des téléchargements redondants de fichiers déplacés dans un dossier non exploré. FileProviderFileDelegate Delete @@ -264,7 +264,7 @@ Reset virtual files environment Réinitialiser l'environnement de fichiers virtuels - + Signal file provider domainIndiquer le domaine du fournisseur de fichiers Virtual files settings Paramètres des fichiers virtuels @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 Go sur %2 Go de fichiers distants synchronisés - + Evict local copies...Supprimer les copies locales Free up space … Libérer de l’espace… @@ -343,18 +343,18 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync Add Folder Sync - + Ajouter une synchronisation de dossiers Step 3 of 3: Selektive Synchronisation - + Étape 3 sur 3 : synchronisation sélective FolderWizardSourcePage &Choose - + &Choisir Add Folder Sync @@ -362,11 +362,11 @@ macOS may ignore or delay this request. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Sélectionnez sur votre disque dur un dossier qui doit être en permanence rattaché à votre %1. Tous les fichiers et sous-dossiers sont automatiquement importés et synchronisés. Step 1 of 3: Select local folder - + Étape 1 sur 3 : sélectionner un dossier local @@ -377,7 +377,7 @@ macOS may ignore or delay this request. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Les deux dossiers sont en permanence rattachés et leur contenu respectif est automatiquement synchronisé et importé. Create folder @@ -389,7 +389,7 @@ macOS may ignore or delay this request. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + À présent, sélectionnez ou créez dans votre %1 un dossier cible dans lequel le contenu doit être importé et synchronisé. Refresh @@ -397,7 +397,7 @@ macOS may ignore or delay this request. Step 2 of 3: Directory in your %1 - + Étape 2 sur 3 : répertoire dans votre %1 @@ -458,7 +458,9 @@ macOS may ignore or delay this request. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 comptes ont été détectés à partir d'un ancien client de bureau. +Doivent-ils être importés ? An account was detected from a legacy desktop client. Should the account be imported? Un compte a été détecté à partir d’un ancien client de synchronisation bureau. @@ -633,9 +635,9 @@ Le compte doit-il être importé ? Expand Memory - + Augmenter la mémoire - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0077ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1042 Folder creation failed Échec de la création du dossier @@ -725,7 +727,7 @@ Le compte doit-il être importé ? Storage space %1% occupied - + Espace de stockage %1% occupé Storage space: … @@ -766,15 +768,15 @@ Vous prenez vos propres risques. There are folders that were not synchronized because they are external storages: - + Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe : There are folders that were not synchronized because they are too big or external storages: - + Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe ou qu'ils sont de taille trop importante : There are folders that were not synchronized because they are too big: - + Certains dossiers n'ont pas été synchronisés parce qu'ils sont de taille trop importante : This account supports end-to-end encryption, but it needs to be set up first. @@ -793,14 +795,14 @@ Cette action entraînera l'interruption de toute synchronisation en cours.< This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - Cela va chiffrer votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé de chiffrement mnémonique. -<b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir le faire ?</b> + Cette opération cryptera votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé mnémonique de cryptage. +<b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir continuer ? To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour configurer la synchronisation de dossiers chiffrés sur vos autres appareils. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour ajouter d’autres appareils à votre compte (comme votre smartphone ou votre ordinateur portable). Unable to connect to %1. Impossible de se connecter à %1. @@ -1173,7 +1175,7 @@ Would you like to do this now? Existing file - Fichier existant + Dossier existant Filename contains illegal characters: %1 @@ -1217,7 +1219,7 @@ Would you like to do this now? The file could not be synced because it generates a case clash conflict with an existing file on this system. - Le fichier n'a pas pu être synchronisé parce qu'il génère un conflit de casse avec un fichier existant dans ce système. + Le fichier n'a pas pu être synchronisé car il génère un conflit de cas avec un fichier existant sur ce système. Use invalid name @@ -1405,7 +1407,7 @@ Would you like to do this now? Settings - Paramètres + Paramètres This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1466,11 +1468,11 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob Encrypted metadata setup error! - Erreur lors de la configuration des métadonnées chiffrées ! + Erreur de configuration des métadonnées chiffrées ! Encrypted metadata setup error: initial signature from server is empty. - Erreur de configuration des métadonnées chiffrées: la signature initiale du serveur est vide. + Erreur de configuration des métadonnées cryptées : la signature initiale du serveur est vide. Server error: PROPFIND reply is not XML formatted! @@ -1854,7 +1856,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. A folder from an external storage has been added. - + Un nouveau dossier localisé sur un stockage externe a été ajouté. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1866,21 +1868,21 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Un grand nombre de fichiers du serveur ont été supprimés. + Un grand nombre de fichiers ont été supprimés sur le serveur. Veuillez confirmer si vous souhaitez procéder à ces suppressions. -Vous pouvez également restaurer tous les fichiers supprimés en les téléversant depuis le dossier '%1' vers le serveur. +Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le dossier '%1' vers le serveur. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - Un grand nombre de fichiers de votre dossier local '%1' ont été supprimés. + Un grand nombre de fichiers de votre dossier local "%1" ont été supprimés. Veuillez confirmer si vous souhaitez procéder à ces suppressions. Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le serveur. A new folder larger than %1 MB has been added: %2. - + Un nouveau dossier de taille supérieure à %1 Mo a été ajouté : %2. Changes in synchronized folders could not be tracked reliably. @@ -1924,7 +1926,7 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les Remove all files? - Supprimer tous les fichiers ? + Supprimer tous les fichiers ? Restore Files from Server @@ -1967,7 +1969,7 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les OCC::FolderCreationDialog %1 Create new folder - + %1 Créer un nouveau dossier Could not create a folder! Check your write permissions. @@ -1998,11 +2000,11 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les (backup %1) - + (sauvegarde %1) (backup) - + (sauvegarde) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2125,7 +2127,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Synchronize any other local folder with your %1 - + Synchronisez n’importe quel autre dossier local avec votre %1 @@ -2290,7 +2292,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Choose - + Choisissez Click to select a local folder to sync. @@ -2392,7 +2394,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Use virtual files instead of downloading content immediately %1 - Utiliser les fichiers virtuels au lieu de télécharger le contenu immédiatement %1 + Utiliser les fichiers virtuels %1 Virtual files are not supported at the selected location @@ -2405,7 +2407,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::GeneralSettings - + &Analysis data collection for needs-based design&Collecte des données d’analyse pour une conception basée sur les besoins &Automatically check for updates &Vérifier automatiquement les mises à jour @@ -2443,15 +2445,15 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Ask for confirmation before synchronizing external storages - Demander confirmation avant de synchroniser des stockages externes + Confirmation avant de synchroniser des stockages externes Ask for confirmation before synchronizing new folders larger than - Demander confirmation avant de synchroniser les dossiers plus grands que + Demander la confirmation avant de synchroniser les dossiers plus grands que Automatically disable synchronisation of folders that overcome limit - Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite fixée + Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite Cancel @@ -2475,7 +2477,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Data Protection - + Protection des données Debug Archive Created @@ -2508,7 +2510,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d More Information - + Plus d’informations Move removed files to trash @@ -2524,11 +2526,11 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Open Source Software - + Logiciel libre Privacy Policy - + Politique de confidentialité Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2609,7 +2611,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Updates - + Mises à jour Usage Documentation @@ -2744,7 +2746,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Add a new ignore pattern: - Ajouter un nouveau modèle d'exclusion : + Ajouter un nouveau motif d'exclusion: Allow Deletion @@ -2762,12 +2764,13 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - Les fichiers ou dossiers correspondant à un modèle ne seront pas synchronisés. -Les éléments dont la suppression est autorisée seront supprimés s'ils empêchent la suppression d'un répertoire. Cette fonction est utile pour les métadonnées. + Les fichiers ou dossiers qui correspondent à ce modèle ne seront pas synchronisés. + +Les objets autorisés à être supprimés le seront s'ils empêchent la suppression d'un dossier. Ceci est utile pour les métadonnées. Ignore Pattern - + Ignorer le modèle Pattern @@ -3885,7 +3888,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Folder %1 cannot be renamed because of a local file or folder name clash! - Le dossier %1 n’a pu être renommé à cause d’un conflit local de nom de fichier ou de dossier ! + Le dossier %1 ne peut pas être renommé en raison d’un conflit de nom avec un fichier ou un dossier local ! The file %1 is currently in use @@ -4008,7 +4011,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Upload of %1 exceeds the quota for the folder - Le téléversement de %1 provoque un dépassement du quota du dossier + L'envoi de %1 amène un dépassement de quota pour le dossier @@ -4139,7 +4142,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' Success - + Réussite Warning @@ -4163,7 +4166,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' New account - + Nouveau compte Settings @@ -4455,11 +4458,11 @@ Le serveur a répondu avec l'erreur : %2 This connection is NOT secure as it is not encrypted. - + Cette connexion n'est PAS sécurisée car elle n'est pas chiffrée. This connection is encrypted using %1 bit %2. - + Cette connexion est chiffrée en utilisant %1 bit %2. @@ -4736,51 +4739,51 @@ Le serveur a répondu avec l'erreur : %2 Help-Link - + https://wl.hidrive.com/easy/0128 Help-Link_STRATO - + https://static.hidrive.com/next/1012 LegalNotice-Link - + https://wl.hidrive.com/easy/0024 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1022 Login_URL - + https://storage.ionos.fr Login_URL_STRATO - + https://storage.ionos.fr MoreInformation-Link - + https://wl.hidrive.com/easy/0027 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1012 OpenSource-Link - + https://wl.hidrive.com/easy/0026 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0025 Privacy-Link_STRATO - + https://static.hidrive.com/next/1002 @@ -4806,7 +4809,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - Impossible de finaliser l'item. + Échec de finalisation de l’élément. Failed to unlock encrypted folder. @@ -4821,7 +4824,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - Impossible d’ajouter ou de supprimer l’utilisateur %1 de l’accès au dossier %2 + Impossible de supprimer l’utilisateur %1 au dossier d’accès %2 ou de l’y ajouter Could not fetch public key for user %1 @@ -4842,7 +4845,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::User - + %1 notifications%1 notifications %n notification(s) %n notification @@ -5070,7 +5073,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Vous avez été déconnecté(e) de votre compte %1 à %2. Veuillez vous reconnecter.</b> @@ -5270,7 +5273,7 @@ Le serveur a répondu avec l'erreur : %2 Updated local virtual files metadata - Fichiers locaux virtuels de métadonnées mis à jour + Métadonnées des fichiers virtuels locaux mises à jour Updating end-to-end encryption metadata @@ -5296,7 +5299,7 @@ Le serveur a répondu avec l'erreur : %2 Virtual file created Fichier virtuel créé - +updating local virtual files metadataMise à jour des métadonnées des fichiers virtuels locaux ProxySettings @@ -5374,7 +5377,7 @@ Le serveur a répondu avec l'erreur : %2 Could not create debug archive in selected location! - Impossible de créer l'archive de débogage à l'emplacement indiqué ! + Impossible de créer une archive de débogage à l’emplacement sélectionné ! Error deleting the file @@ -5382,7 +5385,7 @@ Le serveur a répondu avec l'erreur : %2 Failed to create debug archive - Échec lors de la création de l'archive de débogage + Échec de création de l’archive de débogage It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5422,7 +5425,7 @@ Le serveur a répondu avec l'erreur : %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + La répertoire %1 ne peut pas faire partie de votre répertoire de synchronisation. Veuillez choisir un autre dossier. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5575,7 +5578,7 @@ Le serveur a répondu avec l'erreur : %2 SesTrayHeader Open Nextcloud in browser - + Ouvrir HiDrive Next dans le navigateur Open local or team folders @@ -5583,7 +5586,7 @@ Le serveur a répondu avec l'erreur : %2 Website - + Site Web @@ -5617,17 +5620,17 @@ Le serveur a répondu avec l'erreur : %2 Copy share link - Copier le lien de partage + Copier le lien Custom Permissions - + Autorisations personnalisées Enter a note for the recipient Saisir une note pour le destinataire - + Enter the note to recipientSaisir la remarque à l’attention du destinataire File drop (upload only) Dépôt de fichiers (téléversement seulement) @@ -5649,7 +5652,7 @@ Le serveur a répondu avec l'erreur : %2 Share link copied! - Lien de partage copié ! + Lien copié ! Unshare @@ -5797,7 +5800,7 @@ Le serveur a répondu avec l'erreur : %2 TrayFoldersMenuButton Files - + Fichiers Open %1 in file explorer @@ -5856,11 +5859,11 @@ Le serveur a répondu avec l'erreur : %2 Pause sync for all - + Mettre en pause la synchronisation pour tous Resume sync for all - + Reprendre la synchronisation pour tous Settings diff --git a/translations/client_it.ts b/translations/client_it.ts index b3c2a5a8a12ab..0d0a533d3d0eb 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -1,6 +1,6 @@ - +AgreeConsentiBackIndietroNecessary dataDati necessariRequired to ensure that the software can be used as expectedNecessario per garantire che il software possa essere utilizzato come previsto.Save SettingsSalva le impostazioniSend anonymous useInvia l'uso anonimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOQuesta applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. ActivityItem In %1 @@ -37,7 +37,7 @@ Scorri verso l'alto - +BasicComboBoxClear status message menu Cancella messaggio di stato CallNotificationDialog Answer Talk call notification @@ -243,7 +243,7 @@ Rimuovi copie locali - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronizzazione veloce sincronizzerà cambiamenti solo sui file e cartelle che sono stati esplorati. Questo migliorarerà sensibilmente la responsività, specie al primo avvio coi file virtuali. Per contro, causerà lo scaricamento ripetuto di file spostati verso una cartella inesplorata. FileProviderFileDelegate Delete @@ -264,7 +264,7 @@ Reset virtual files environment Reimposta l'ambiente dei file virtuali - + Signal file provider domainDominio del fornitore del file di segnale Virtual files settings Impostazioni dei file virtuali @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 GB di %2 GB file remoti sincronizzati - + Evict local copies...Evita copie locali... Free up space … Liberare spazio … @@ -343,18 +343,18 @@ macOS potrebbe ignorare o ritardare questa richiesta. FolderWizardSelectiveSync Add Folder Sync - + Aggiungi cartella di sincronizzazione Step 3 of 3: Selektive Synchronisation - + Fase 3 di 3: sincronizzazione selettiva FolderWizardSourcePage &Choose - + S&cegli Add Folder Sync @@ -362,11 +362,11 @@ macOS potrebbe ignorare o ritardare questa richiesta. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selezionare una cartella sul disco rigido che deve essere collegata in modo permanente al %1. Tutti i file e le sottocartelle vengono caricati e sincronizzati automaticamente. Step 1 of 3: Select local folder - + Passo 1 di 3: selezionare la cartella locale @@ -377,7 +377,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Le due cartelle sono collegate in modo permanente e i rispettivi contenuti vengono sincronizzati e aggiornati automaticamente. Create folder @@ -389,7 +389,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Selezionare o creare una cartella di destinazione nel proprio %1 in cui caricare e sincronizzare il contenuto. Refresh @@ -397,7 +397,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Step 2 of 3: Directory in your %1 - + Fase 2 di 3: directory nel vostro %1 @@ -458,7 +458,9 @@ macOS potrebbe ignorare o ritardare questa richiesta. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 account trovati da una versione precedente del client desktop. + Importare gli account? An account was detected from a legacy desktop client. Should the account be imported? È stato rilevato un account da un client desktop legacy. @@ -633,9 +635,9 @@ L'account deve essere importato? Expand Memory - + Upgrade Storage - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0087ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 Folder creation failed Creazione della cartella non riuscita @@ -725,7 +727,7 @@ L'account deve essere importato? Storage space %1% occupied - + Spazio di Storage %1% occupato Storage space: … @@ -765,15 +767,15 @@ L'account deve essere importato? There are folders that were not synchronized because they are external storages: - + Ci sono nuove cartelle che non sono state sincronizzate poiché sono archiviazioni esterne: There are folders that were not synchronized because they are too big or external storages: - + Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi o archiviazioni esterne: There are folders that were not synchronized because they are too big: - + Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi: This account supports end-to-end encryption, but it needs to be set up first. @@ -795,13 +797,13 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Verrà cifrata la cartella e tutti i file al suo interno. Questi file non saranno più accessibili senza la tua chiave mnemonica di crittografia. -<b>Questo processo è irreversibile. Vuoi davvero procedere?</b> + <b>Questo processo è irreversibile. Vuoi davvero procedere?</b> To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Per proteggere la tua Identità Crittografica, la criptiamo con un codice mnemonico di 12 parole del dizionario. Annotalo e conservalo in un luogo sicuro. Ti servirà per configurare la sincronizzazione delle cartelle crittografate sugli altri tuoi dispositivi. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Per proteggere la tua identità crittografica, la cifriamo con un codice mnemonico di 12 parole di dizionario. Annotale e tienile al sicuro. Saranno necessarie per aggiungere altri dispositivi al tuo account (come il tuo smartphone o il portatile). Unable to connect to %1. Connessione non riuscita a %1. @@ -1408,7 +1410,7 @@ Vuoi farlo ora? Settings - Impostazioni + Impostazioni This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1857,7 +1859,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. A folder from an external storage has been added. - + Una nuova cartella da un'archiviazione esterna è stata aggiunta. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1870,20 +1872,20 @@ Questo può essere un problema delle le tue librerie OpenSSL. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. Un gran numero di file nel server è stato eliminato. -Conferma se vuoi procedere con queste eliminazioni. -In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. + Conferma se vuoi procedere con queste eliminazioni. + In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. Un gran numero di file nella cartella locale '%1' sono stati eliminati. -Si prega di confermare se si desidera procedere con queste eliminazioni. -In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. + Si prega di confermare se si desidera procedere con queste eliminazioni. + In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. A new folder larger than %1 MB has been added: %2. - + Una nuova cartella più grande di %1 MB è stata aggiunta: %2. Changes in synchronized folders could not be tracked reliably. @@ -1970,7 +1972,7 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi OCC::FolderCreationDialog %1 Create new folder - + %1 Crea una nuova cartella Could not create a folder! Check your write permissions. @@ -2001,11 +2003,11 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi (backup %1) - + (copia di sicurezza %1) (backup) - + (copia di sicurezza) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2129,7 +2131,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Synchronize any other local folder with your %1 - + Sincronizzare qualsiasi altra cartella locale con la %1 @@ -2294,7 +2296,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Choose - + Scegliere Click to select a local folder to sync. @@ -2409,7 +2411,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::GeneralSettings - + &Analysis data collection for needs-based designAnalisi della raccolta dei dati per la progettazione basata sui usability &Automatically check for updates Verific&a automaticamente la presenza di aggiornamenti. @@ -2479,7 +2481,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Data Protection - + disposizioni in materia di protezione dei dati Debug Archive Created @@ -2512,7 +2514,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile More Information - + Ulteriori informazioni Move removed files to trash @@ -2528,11 +2530,11 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Open Source Software - + Software open source Privacy Policy - + Informativa sulla privacy Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2613,7 +2615,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Updates - + Aggiornamenti Usage Documentation @@ -2768,11 +2770,11 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. I file e le cartelle che verificano un modello non saranno sincronizzati. -Gli elementi per i quali è consentita l'eliminazione saranno eliminati se impediscono la rimozione di una cartella. Utile per i metadati. + Gli elementi per i quali è consentita l'eliminazione saranno eliminati se impediscono la rimozione di una cartella. Utile per i metadati. Ignore Pattern - + Modello di esclusione Pattern @@ -4136,7 +4138,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Success - + successo Warning @@ -4160,7 +4162,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss New account - + Nuovo account Settings @@ -4452,11 +4454,11 @@ Il server ha risposto con errore: %2 This connection is NOT secure as it is not encrypted. - + Questa connessione NON è sicura poiché non è cifrata. This connection is encrypted using %1 bit %2. - + Questa connessione è cifrata utilizzando %1 bit %2. @@ -4733,51 +4735,51 @@ Il server ha risposto con errore: %2 Help-Link - + https://wl.hidrive.com/easy/0138 Help-Link_STRATO - + https://static.hidrive.com/next/1016 LegalNotice-Link - + https://wl.hidrive.com/easy/0034 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1026 Login_URL - + https://storage.ionos.it Login_URL_STRATO - + https://storage.ionos.it MoreInformation-Link - + https://wl.hidrive.com/easy/0037 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1016 OpenSource-Link - + https://wl.hidrive.com/easy/0036 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0035 Privacy-Link_STRATO - + https://static.hidrive.com/next/1004 @@ -4839,7 +4841,7 @@ Il server ha risposto con errore: %2 OCC::User - + %1 notifications%1 Notifiche %n notification(s) %n notifica @@ -5067,7 +5069,7 @@ Il server ha risposto con errore: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Sei stato disconnesso dal tuo utente %1 su %2. Accedi nuovamente.</b> @@ -5293,7 +5295,7 @@ Il server ha risposto con errore: %2 Virtual file created File virtuale creato - +updating local virtual files metadataAggiornamento dei metadati dei file virtuali locali ProxySettings @@ -5419,7 +5421,7 @@ Il server ha risposto con errore: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + La directory %1 non può far parte della directory di sincronizzazione. Selezionare un'altra cartella. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5572,7 +5574,7 @@ Il server ha risposto con errore: %2 SesTrayHeader Open Nextcloud in browser - + Apri HiDrive Next nel browser Open local or team folders @@ -5580,7 +5582,7 @@ Il server ha risposto con errore: %2 Website - + Homepage @@ -5618,13 +5620,13 @@ Il server ha risposto con errore: %2 Custom Permissions - + Permessi definiti dall'utente Enter a note for the recipient Inserisci una nota per il destinatario - + Enter the note to recipientInserire una nota per il destinatario File drop (upload only) File drop (solo invio) @@ -5646,7 +5648,7 @@ Il server ha risposto con errore: %2 Share link copied! - Collegamento del collegamento di condivisione copiato! + Collegamento del link di condivisione copiato! Unshare @@ -5794,7 +5796,7 @@ Il server ha risposto con errore: %2 TrayFoldersMenuButton Files - + File Open %1 in file explorer @@ -5853,11 +5855,11 @@ Il server ha risposto con errore: %2 Pause sync for all - + Sospendi la sincronizzazione per tutti Resume sync for all - + Riprendi la sincronizzazione per tutti Settings diff --git a/translations/client_nl.ts b/translations/client_nl.ts index d83cdb716fb0f..cef5bb2745197 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -1,6 +1,6 @@ - +AgreeAkkoordBackTerugNecessary dataNoodzakelijke gegevensRequired to ensure that the software can be used as expectedVereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwachtSave SettingsInstellingen opslaanSend anonymous useAnoniem gebruik verzendenThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODeze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. ActivityItem In %1 @@ -37,11 +37,11 @@ Naar boven schuiven - +BasicComboBoxClear status message menuStatusbericht wissen CallNotificationDialog Answer Talk call notification - Beantwoord Talk oproepmelding + Answer Talk call notification Decline @@ -49,11 +49,11 @@ Decline Talk call notification - Wijs Talk oproepmelding af + Afwijzingsmelding voor gesprek Talk notification caller avatar - Talk notificatie beller avatar + Spraakmelding beller avatar @@ -136,7 +136,7 @@ Server version - Server versie + Serverversie @@ -243,11 +243,11 @@ Verwijder lokale kopieën - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. FileProviderFileDelegate Delete - Verwijder + Verwijderen @@ -264,7 +264,7 @@ Reset virtual files environment - + Signal file provider domainSignal file provider domain Virtual files settings Virtuele bestandsinstellingen @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 GB van %2 GB remote bestanden gesychroniseerd - + Evict local copies...Lokale kopieën verwijderen... Free up space … Maak ruimte ... @@ -343,18 +343,18 @@ macOS kan dit verzoek negeren of uitstellen. FolderWizardSelectiveSync Add Folder Sync - + Mapsynchronisatie toevoegen Step 3 of 3: Selektive Synchronisation - + Stap 3 van 3: Selektieve synchronisatie FolderWizardSourcePage &Choose - + &Kiezen Add Folder Sync @@ -362,11 +362,11 @@ macOS kan dit verzoek negeren of uitstellen. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecteer een map op je harde schijf die permanent verbonden moet zijn met je %1. Alle bestanden en submappen worden automatisch geüpload en gesynchroniseerd. Step 1 of 3: Select local folder - + Stap 1 van 3: Selecteer lokale map @@ -377,7 +377,7 @@ macOS kan dit verzoek negeren of uitstellen. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Beide mappen zijn permanent gekoppeld en de respectieve inhoud wordt automatisch gesynchroniseerd en bijgewerkt. Create folder @@ -389,7 +389,7 @@ macOS kan dit verzoek negeren of uitstellen. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Selecteer of maak nu een doelmap in uw %1 waar de inhoud moet worden geüpload en gesynchroniseerd. Refresh @@ -397,7 +397,7 @@ macOS kan dit verzoek negeren of uitstellen. Step 2 of 3: Directory in your %1 - + Stap 2 van 3: Directory in uw %1 @@ -458,7 +458,9 @@ macOS kan dit verzoek negeren of uitstellen. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?Er zijn %1 accounts gedetecteerd van een oudere desktopclient. +Moeten de accounts worden geïmporteerd? An account was detected from a legacy desktop client. Should the account be imported? @@ -632,9 +634,9 @@ Should the account be imported? Expand Memory - + Geheugen uitbreiden - + ExpandMemory-Linkhttps://wl.hidrive.com/easy/0097ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1045 Folder creation failed Map maken mislukt @@ -724,7 +726,7 @@ Should the account be imported? Storage space %1% occupied - + Opslagruimte %1% bezet Storage space: … @@ -764,15 +766,15 @@ Should the account be imported? There are folders that were not synchronized because they are external storages: - + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze op externe opslag staan: There are folders that were not synchronized because they are too big or external storages: - + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn of op externe opslag staan: There are folders that were not synchronized because they are too big: - + Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn: This account supports end-to-end encryption, but it needs to be set up first. @@ -793,14 +795,14 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> - Dit versleutelt je map en alle bestanden in de map. Deze bestanden zijn niet langer toegankelijk zonder je geheugensteunsleutel. -<b>Deze actie is onomkeerbaar. Weet je het zeker?</b> + Dit zal je map en alle bestanden erin versleutelen. Deze bestanden zullen niet langer toegankelijk zijn zonder je coderingssleutel. +<b>Dit proces is niet omkeerbaar. Weet u zeker dat u wilt doorgaan? To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). Unable to connect to %1. Kan niet verbinden met %1. @@ -1217,7 +1219,7 @@ Would you like to do this now? The file could not be synced because it generates a case clash conflict with an existing file on this system. - Dit bestand kon niet worden gesynchroniseerd omdat er een conflict is in hoofdlettergebruik. + The file could not be synced because it generates a case clash conflict with an existing file on this system. Use invalid name @@ -1405,7 +1407,7 @@ Would you like to do this now? Settings - Instellingen + Instellingen This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1466,11 +1468,11 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob Encrypted metadata setup error! - Fout bij instellen versleutelde metadata! + Encrypted metadata setup error! Encrypted metadata setup error: initial signature from server is empty. - + Fout bij opzetten versleutelde metagegevens: initiële handtekening van server is leeg. Server error: PROPFIND reply is not XML formatted! @@ -1735,7 +1737,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. Open Browser - + Browser openen Polling for authorization @@ -1854,7 +1856,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. A folder from an external storage has been added. - + Er is een map op externe opslag toegevoegd. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1866,17 +1868,21 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - + Een groot aantal bestanden op de server is verwijderd. +Bevestig alstublieft of u door wilt gaan met deze verwijderingen. +U kunt ook alle verwijderde bestanden terugzetten door vanuit de map '%1' te uploaden naar de server. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - + Een groot aantal bestanden in uw lokale map '%1' is verwijderd. +Bevestig alstublieft of u door wilt gaan met deze verwijderingen. +U kunt ook alle verwijderde bestanden herstellen door ze van de server te downloaden. A new folder larger than %1 MB has been added: %2. - + Er is een nieuwe map groter dan %1 MB toegevoegd: %2. Changes in synchronized folders could not be tracked reliably. @@ -1916,7 +1922,7 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Proceed with Deletion - + Doorgaan met verwijderen Remove all files? @@ -1924,11 +1930,11 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge Restore Files from Server - + Bestanden terugzetten van server Restore Files to Server - + Bestanden terugzetten naar server Stop syncing @@ -1963,7 +1969,7 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge OCC::FolderCreationDialog %1 Create new folder - + %1 Nieuwe map maken Could not create a folder! Check your write permissions. @@ -1994,11 +2000,11 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge (backup %1) - + (backup %1) (backup) - + (backup) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2118,7 +2124,7 @@ For advanced users: this issue might be related to multiple sync database files Synchronize any other local folder with your %1 - + Synchroniseer een andere lokale map met uw %1 @@ -2284,7 +2290,7 @@ For advanced users: this issue might be related to multiple sync database files Choose - + Kies Click to select a local folder to sync. @@ -2386,7 +2392,7 @@ For advanced users: this issue might be related to multiple sync database files Use virtual files instead of downloading content immediately %1 - Gebruik virtuele bestanden in plaats van de content direct te downloaden %1 + Gebruik virtuele bestanden in plaats van direct downloaden content%1 Virtual files are not supported at the selected location @@ -2399,7 +2405,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - + &Analysis data collection for needs-based design&Analyse van gegevensverzameling voor een op behoeften gebaseerd ontwerp &Automatically check for updates &Controleer automatisch op updates @@ -2436,11 +2442,11 @@ Downgrading versions is not possible immediately: changing from stable to enterp Ask for confirmation before synchronizing new folders larger than - Vraag bevestiging voordat mappen worden gesynchroniseerd groter dan + Ask for confirmation before synchronizing new folders larger than Automatically disable synchronisation of folders that overcome limit - Synchronisatie automatisch uitschakelen van mappen die de limiet overschrijden + Automatically disable synchronisation of folders that overcome limit Cancel @@ -2464,7 +2470,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Data Protection - + Gegevensbescherming Debug Archive Created @@ -2497,7 +2503,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp More Information - + Meer informatie Move removed files to trash @@ -2513,11 +2519,11 @@ Downgrading versions is not possible immediately: changing from stable to enterp Open Source Software - + Open source software Privacy Policy - + Privacybeleid Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2577,7 +2583,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Show sync folders in &Explorer's navigation pane - Toon synchronisatiemappen in &Verkennen navigatievenster + Show sync folders in &Explorer's navigation pane The channel determines which upgrades will be offered to install: @@ -2596,7 +2602,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Updates - + Updates Usage Documentation @@ -2749,13 +2755,13 @@ Downgrading versions is not possible immediately: changing from stable to enterp Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. - Bestanden of mappen die overeenkomen met een patroon zullen niet worden gesynchroniseerd. + Bestanden of mappen die overeenkomen met dit patroon worden niet gesynchroniseerd. -Onderdelen die gewist mogen worden, worden verwijderd als ze verhinderen dat een map verdwijnt. Dit is nuttig voor metadata. +Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhinderen dat een map verwijderd wordt. Dit is nuttig voor metadata. Ignore Pattern - + Patroon negeren Pattern @@ -3873,7 +3879,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Folder %1 cannot be renamed because of a local file or folder name clash! - Map %1 kan niet worden hernoemd wegens een lokaal map- of bestandsnaam conflict! + Map %1 kan niet hernoemd worden vanwege een lokale bestands- of mapnaamclash! The file %1 is currently in use @@ -4127,7 +4133,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen Success - + Succes Warning @@ -4151,7 +4157,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen New account - + Nieuw account Settings @@ -4443,11 +4449,11 @@ Server antwoordde met fout: %2 This connection is NOT secure as it is not encrypted. - + Deze verbinding is NIET veilig, omdat deze niet versleuteld is. This connection is encrypted using %1 bit %2. - + Deze verbinding is versleuteld via %1 bit %2. @@ -4724,51 +4730,51 @@ Server antwoordde met fout: %2 Help-Link - + https://wl.hidrive.com/easy/0108 Help-Link_STRATO - + https://static.hidrive.com/next/1015 LegalNotice-Link - + https://wl.hidrive.com/easy/0004 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1025 Login_URL - + https://storage.ionos.com Login_URL_STRATO - + https://storage.ionos.com MoreInformation-Link - + https://wl.hidrive.com/easy/0007 MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1015 OpenSource-Link - + https://wl.hidrive.com/easy/0006 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://wl.hidrive.com/easy/0005 Privacy-Link_STRATO - + https://static.hidrive.com/next/1005 @@ -4794,7 +4800,7 @@ Server antwoordde met fout: %2 OCC::UpdateE2eeFolderMetadataJob Failed to finalize item. - Kon item niet afronden. + Failed to finalize item. Failed to unlock encrypted folder. @@ -4809,7 +4815,7 @@ Server antwoordde met fout: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - Kon gebruiker %1 niet toevoegen of verwijderen om toegang te krijgen tot map %2 + Kan gebruiker %1 niet toevoegen of verwijderen voor toegang tot map %2 Could not fetch public key for user %1 @@ -4830,7 +4836,7 @@ Server antwoordde met fout: %2 OCC::User - + %1 notifications%1 kennisgevingen %n notification(s) %n melding @@ -5058,7 +5064,7 @@ Server antwoordde met fout: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>U bent afgemeld bij uw account %1 op %2. Log opnieuw in.</b> @@ -5258,7 +5264,7 @@ Server antwoordde met fout: %2 Updated local virtual files metadata - Lokale virtuele bestanden metadata geüploaded + Metagegevens van lokale virtuele bestanden bijgewerkt Updating end-to-end encryption metadata @@ -5284,7 +5290,7 @@ Server antwoordde met fout: %2 Virtual file created Virtueel bestand gecreëerd - +updating local virtual files metadataMetagegevens van lokale virtuele bestanden bijwerken ProxySettings @@ -5362,7 +5368,7 @@ Server antwoordde met fout: %2 Could not create debug archive in selected location! - Kon foutopsporingsarchief niet aanmaken op de geselecteerde locatie! + Kon geen debug-archief aanmaken op geselecteerde locatie! Error deleting the file @@ -5370,7 +5376,7 @@ Server antwoordde met fout: %2 Failed to create debug archive - Kon foutopsporingsarchief niet aanmaken + Debug-archief is niet aangemaakt It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5410,7 +5416,7 @@ Server antwoordde met fout: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + De map %1 kan geen deel uitmaken van je synchronisatiemap. Kies een andere map. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5563,7 +5569,7 @@ Server antwoordde met fout: %2 SesTrayHeader Open Nextcloud in browser - + HiDrive Next in browser openen Open local or team folders @@ -5571,7 +5577,7 @@ Server antwoordde met fout: %2 Website - + Website @@ -5605,17 +5611,17 @@ Server antwoordde met fout: %2 Copy share link - Kopiëren deellink + Copy share link Custom Permissions - + Aangepaste machtigingen Enter a note for the recipient - + Enter the note to recipientVoer de notitie aan de ontvanger in File drop (upload only) Bestands-drop (alleen uploaden) @@ -5637,7 +5643,7 @@ Server antwoordde met fout: %2 Share link copied! - Deellink gekopieerd! + Share link copied! Unshare @@ -5785,7 +5791,7 @@ Server antwoordde met fout: %2 TrayFoldersMenuButton Files - + Bestanden Open %1 in file explorer @@ -5844,11 +5850,11 @@ Server antwoordde met fout: %2 Pause sync for all - + Synchronisatie pauzeren voor alles Resume sync for all - + Synchronisatie hervatten voor alles Settings diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 0f660d5398fd5..3dfc2d6c83216 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -1,6 +1,6 @@ - +AgreeHåller medBackTillbakaNecessary dataNödvändiga uppgifterRequired to ensure that the software can be used as expectedKrävs för att säkerställa att programvaran kan användas som förväntatSave SettingsSpara inställningarSend anonymous useSkicka anonym användningThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODenna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. ActivityItem In %1 @@ -37,11 +37,11 @@ Bläddra till toppen - +BasicComboBoxClear status message menuMeny för att ta bort statusmeddelande CallNotificationDialog Answer Talk call notification - Svara på samtalsavisering från Talk + Meddelande om samtal vid Answer Talk Decline @@ -49,11 +49,11 @@ Decline Talk call notification - Avvisa samtalsavisering från Talk + Avvisa meddelande om samtal Talk notification caller avatar - Avatar för samtalsavisering + Avatar för samtalsnotis för uppringare @@ -93,7 +93,7 @@ Quit sync client - Avsluta + Avsluta synkroniseringsklienten Recently changed @@ -243,7 +243,7 @@ Ta bort lokala kopior - +FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Snabbsynkronisering synkroniserar endast ändringar i filer och mappar inom mappar som har utforskats. Detta kan avsevärt öka svarstiden vid den första konfigurationen av virtuella filer. Det kommer dock att orsaka överflödiga nedladdningar av filer som flyttas till en outforskad mapp. FileProviderFileDelegate Delete @@ -264,7 +264,7 @@ Reset virtual files environment Återställ miljön för virtuella filer - + Signal file provider domainDomän för leverantör av signalfil Virtual files settings Inställningar virtuella filer @@ -275,7 +275,7 @@ %1 GB of %2 GB remote files synced %1 GB av %2 GB filer synkroniserade - + Evict local copies...Utesluta lokala kopior... Free up space … Frigör utrymme … @@ -343,18 +343,18 @@ macOS kan ignorera eller fördröja denna begäran. FolderWizardSelectiveSync Add Folder Sync - + Lägg till mappsynkronisering Step 3 of 3: Selektive Synchronisation - + Steg 3 av 3: Selektiv synkronisering FolderWizardSourcePage &Choose - + &Välj Add Folder Sync @@ -362,11 +362,11 @@ macOS kan ignorera eller fördröja denna begäran. Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Välj en mapp på din hårddisk som ska vara permanent ansluten till din %1. Alla filer och undermappar laddas upp och synkroniseras automatiskt. Step 1 of 3: Select local folder - + Steg 1 av 3: Välj lokal mapp @@ -377,7 +377,7 @@ macOS kan ignorera eller fördröja denna begäran. Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + De båda mapparna är permanent länkade och respektive innehåll synkroniseras och uppdateras automatiskt. Create folder @@ -389,7 +389,7 @@ macOS kan ignorera eller fördröja denna begäran. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Välj eller skapa nu en målmapp i din %1 där innehållet ska laddas upp och synkroniseras. Refresh @@ -397,7 +397,7 @@ macOS kan ignorera eller fördröja denna begäran. Step 2 of 3: Directory in your %1 - + Steg 2 av 3: Katalog i din %1 @@ -458,7 +458,9 @@ macOS kan ignorera eller fördröja denna begäran. OCC::AccountManager - + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported?%1 konton upptäcktes från en äldre stationär klient. +Bör kontona importeras? An account was detected from a legacy desktop client. Should the account be imported? Ett konto upptäcktes från en äldre skrivbordsklient. @@ -485,7 +487,7 @@ Ska kontot importeras? OCC::AccountSettings %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. - %1 (%3%) av %2 används. Vissa mappar, inklusive nätverks- eller delade mappar, kan ha andra begränsningar. + %1 (%3%) av %2 används. Vissa mappar, inklusive nätverksmonterade eller delade mappar, kan ha andra gränser. %1 as %2 @@ -633,9 +635,9 @@ Ska kontot importeras? Expand Memory - + Expandera minnet - + ExpandMemory-Linkhttps://static.hidrive.com/next/1045ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1044 Folder creation failed Kunde inte skapa mappen @@ -725,7 +727,7 @@ Ska kontot importeras? Storage space %1% occupied - + Förvaringsutrymme %1% upptaget Storage space: … @@ -765,15 +767,15 @@ Ska kontot importeras? There are folders that were not synchronized because they are external storages: - + Det finns mappar som inte synkroniserades eftersom de är externa lagringsutrymmen: There are folders that were not synchronized because they are too big or external storages: - + Det finns mappar som inte synkroniserades eftersom de är för stora eller externa lagringsutrymmen: There are folders that were not synchronized because they are too big: - + Det finns mappar som inte synkroniserades eftersom de är för stora: This account supports end-to-end encryption, but it needs to be set up first. @@ -791,7 +793,9 @@ Den enda fördelen med att inaktivera stödet för virtuella filer är att funkt Den här åtgärden avbryter alla pågående synkroniseringar. - + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b>Detta kommer att kryptera din mapp och alla filer i den. Dessa filer kommer inte längre att vara åtkomliga utan din krypteringsnyckel. +<b>Den här processen är inte reversibel. Är du säker på att du vill fortsätta?</b> This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Detta kommer att kryptera din mapp och alla filer den innehåller. Dessa filer kommer inte längre att vara tillgängliga utan dina krypteringsord. @@ -801,7 +805,7 @@ Den här åtgärden avbryter alla pågående synkroniseringar. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. För att skydda din kryptografiska identitet krypterar vi den med en minnesfras bestående av 12 ord från en ordlista. Skriv ner den och förvara den säkert. Du kommer att behöva den för att konfigurera synkronisering av krypterade mappar på dina andra enheter. - + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).För att skydda din kryptografiska identitet krypterar vi den med en mnemonik bestående av 12 ordboksord. Anteckna dessa och förvara dem säkert. De kommer att behövas för att lägga till andra enheter till ditt konto (som din mobiltelefon eller bärbara dator). Unable to connect to %1. Kan inte ansluta till %1. @@ -1220,7 +1224,7 @@ Vill du konfigurera den nu? The file could not be synced because it generates a case clash conflict with an existing file on this system. - Filen kunde inte synkroniseras eftersom den skapar en versaliseringskrock med en befintlig fil på detta system. + Filen kunde inte synkroniseras eftersom den skapar en konflikt med en befintlig fil på det här systemet. Use invalid name @@ -1408,7 +1412,7 @@ Vill du konfigurera den nu? Settings - Inställningar + Inställningar This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. @@ -1469,11 +1473,11 @@ Vill du konfigurera den nu? OCC::DiscoverySingleDirectoryJob Encrypted metadata setup error! - Inställningsfel för krypterad metadata! + Fel i installationen av krypterade metadata! Encrypted metadata setup error: initial signature from server is empty. - Inställningsfel för krypterad metadata: initial signatur från servern är tom. + Fel vid inställning av krypterade metadata: den ursprungliga signaturen från servern är tom. Server error: PROPFIND reply is not XML formatted! @@ -1738,7 +1742,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. Open Browser - Öppna webbläsare + Öppna webbläsaren Polling for authorization @@ -1857,7 +1861,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. A folder from an external storage has been added. - + En mapp från ett externt lagringsutrymme har lagts till. A folder has surpassed the set folder size limit of %1MB: %2. @@ -1869,21 +1873,21 @@ Det kan vara problem med dina OpenSSL-bibliotek. A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. - Ett stort antal filer på servern har raderats. -Bekräfta om du vill fortsätta med dessa raderingar. -Alternativt kan du återställa alla raderade filer genom att ladda upp från '%1' mappen till servern. + En stor mängd filer har raderats på servern. +Vänligen bekräfta om du vill fortsätta med dessa lösningar. +Alternativt kan du återställa alla lösta filer, om de laddas upp från Ordner "%1" på servern. A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. - Ett stort antal filer i den lokala '%1' mappen har tagits bort. -Bekräfta om du vill fortsätta med dessa raderingar. -Alternativt kan du återställa alla raderade filer genom att ladda ner dem från servern. + En stor mängd filer i din lokala order "%1" blev raderade. +Vänligen bekräfta om du vill fortsätta med dessa lösningar. +Alternativt kan du återställa alla lösta filer, om du hämtar dem från servern. A new folder larger than %1 MB has been added: %2. - + En ny mapp som är större än %1 MB har lagts till: %2. Changes in synchronized folders could not be tracked reliably. @@ -1923,7 +1927,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Proceed with Deletion - Fortsätt med radering + Fortsätt med borttagningen Remove all files? @@ -1931,7 +1935,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome Restore Files from Server - Återställ filer från servern + Återställ filer från server Restore Files to Server @@ -1970,7 +1974,7 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome OCC::FolderCreationDialog %1 Create new folder - + %1 Skapa ny mapp Could not create a folder! Check your write permissions. @@ -2001,11 +2005,11 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome (backup %1) - + (säkerhetskopia %1) (backup) - + (backup) An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. @@ -2128,7 +2132,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Synchronize any other local folder with your %1 - + Synkronisera en annan lokal mapp med din %1 @@ -2293,7 +2297,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Choose - + Välj Click to select a local folder to sync. @@ -2344,7 +2348,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Enter the name of the new folder to be created below "%1": - Ange namn på den mapp som ska placeras under "%1". + Ange namnet på den nya mappen som ska skapas under "%1": Failed to create the folder on %1. Please check manually. @@ -2408,7 +2412,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::GeneralSettings - + &Analysis data collection for needs-based design&Analys av datainsamling för behovsbaserad design &Automatically check for updates &Automatisk kontroll av uppdateringar @@ -2446,15 +2450,15 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Ask for confirmation before synchronizing external storages - Fråga innan synkronisering av externa lagringsytor + Be om bekräftelse innan du synkroniserar externa lagringsenheter Ask for confirmation before synchronizing new folders larger than - Fråga innan du synkroniserar nya mappar större än + Be om bekräftelse innan du synkroniserar nya mappar som är större än Automatically disable synchronisation of folders that overcome limit - Inaktivera automatiskt synkronisering av mappar som överskrider gränsen + Automatisk inaktivering av synkronisering av mappar som överskrider gränsen Cancel @@ -2478,7 +2482,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Data Protection - + Dataskydd Debug Archive Created @@ -2511,7 +2515,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil More Information - + Mer information Move removed files to trash @@ -2527,11 +2531,11 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Open Source Software - + Programvara med öppen källkod Privacy Policy - + Integritetspolicy Redact information deemed sensitive before sharing! Debug archive created at %1 @@ -2591,7 +2595,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Show sync folders in &Explorer's navigation pane - Visa synkroniseringsmappar i &utforskarens navigeringsfönster + Visa synkroniseringsmappar i &Explorers navigeringsfönster The channel determines which upgrades will be offered to install: @@ -2612,7 +2616,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Updates - + Uppdateringar Usage Documentation @@ -2747,7 +2751,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Add a new ignore pattern: - Lägg till ett nytt ignorera mönster: + Lägg till ett nytt ignoreringsmönster: Allow Deletion @@ -2767,11 +2771,11 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. Filer eller mappar som matchar ett mönster kommer inte att synkroniseras. -Objekt där radering är tillåtet raderas om de förhindrar att en mapp tas bort. Detta är användbart för metadata. +Objekt där radering är tillåten raderas om de förhindrar att en katalog tas bort. Detta är användbart för metadata. Ignore Pattern - + Ignorera mönster Pattern @@ -3815,7 +3819,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateLocalMkdir Could not create folder %1 - Kunde inte skapa mappen %1 + Det gick inte att skapa mappen %1 Error updating metadata: %1 @@ -3889,7 +3893,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Folder %1 cannot be renamed because of a local file or folder name clash! - Mapp %1 kan inte byta namn på grund av en konflikt med ett lokalt fil- eller mappnamn! + Mappen %1 kan inte bytas namn på grund av en lokal namnkonflikt för en fil eller mapp! The file %1 is currently in use @@ -4012,7 +4016,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Upload of %1 exceeds the quota for the folder - Uppladdningen av %1 överstiger kvoten för mappen + Uppladdningen av %1 överskrider kvoten för mappen @@ -4143,7 +4147,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda Success - + Framgång Warning @@ -4167,7 +4171,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda New account - + Nytt konto Settings @@ -4459,11 +4463,11 @@ Servern svarade med fel: %2 This connection is NOT secure as it is not encrypted. - + Denna anslutning är INTE säker eftersom den inte är krypterad. This connection is encrypted using %1 bit %2. - + Denna anslutning är krypterad med %1 bit %2. @@ -4740,51 +4744,51 @@ Servern svarade med fel: %2 Help-Link - + https://static.hidrive.com/next/1014 Help-Link_STRATO - + https://static.hidrive.com/next/1014 LegalNotice-Link - + https://static.hidrive.com/next/1024 LegalNotice-Link_STRATO - + https://static.hidrive.com/next/1024 Login_URL - + https://storage.ionos.com Login_URL_STRATO - + https://storage.ionos.com MoreInformation-Link - + https://strato.se MoreInformation-Link_STRATO - + https://static.hidrive.com/next/1014 OpenSource-Link - + https://static.hidrive.com/next/1031 OpenSource-Link_STRATO - + https://static.hidrive.com/next/1031 Privacy-Link - + https://static.hidrive.com/next/1004 Privacy-Link_STRATO - + https://static.hidrive.com/next/1004 @@ -4814,7 +4818,7 @@ Servern svarade med fel: %2 Failed to unlock encrypted folder. - Kunde inte låsa upp krypterad mapp. + Lyckades inte låsa upp den krypterade mappen. Failed to update folder metadata. @@ -4825,7 +4829,7 @@ Servern svarade med fel: %2 OCC::UpdateE2eeFolderUsersMetadataJob Could not add or remove user %1 to access folder %2 - Kunde inte lägga till eller ta bort användare %1 för att komma åt mappen %2 + Det gick inte att lägga till eller ta bort användaren %1 i mappen %2 Could not fetch public key for user %1 @@ -4846,7 +4850,7 @@ Servern svarade med fel: %2 OCC::User - + %1 notifications%1 meddelanden %n notification(s) %n avisering @@ -5074,7 +5078,7 @@ Servern svarade med fel: %2 OCC::WebFlowCredentials <b>You have been logged out of your account %1 at %2. Please login again.</b> - + <b>Du har blivit utloggad från ditt konto %1 på %2. Vänligen logga in igen.</b> @@ -5136,7 +5140,7 @@ Servern svarade med fel: %2 <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> - <html><head/><body><p>Om denna ruta är kryssad så kommer befintligt innehåll i den lokala mappen tas bort så att en ren synkronisering från servern kan startas.</p><p>Kryssa inte i denna ruta om du vill ladda upp det lokala innehållet till serverns mapp.</p></body></html> + <html><head/><body><p>Om den här rutan är markerad kommer befintligt innehåll i den lokala mappen att raderas för att starta en ren synkronisering från servern.</p><p>Markera inte den här om det lokala innehållet ska laddas upp till servermappen.</p></body></html> Ask before syncing folders larger than @@ -5274,7 +5278,7 @@ Servern svarade med fel: %2 Updated local virtual files metadata - Uppdaterad metadata för lokala virtuella filer + Uppdaterade metadata för lokala virtuella filer Updating end-to-end encryption metadata @@ -5300,7 +5304,7 @@ Servern svarade med fel: %2 Virtual file created Virtuell fil skapad - +updating local virtual files metadataUppdatering av metadata för lokala virtuella filer ProxySettings @@ -5378,7 +5382,7 @@ Servern svarade med fel: %2 Could not create debug archive in selected location! - Kunde inte skapa felsökningsarkiv på den valda platsen! + Det gick inte att skapa ett debug-arkiv på den valda platsen! Error deleting the file @@ -5386,7 +5390,7 @@ Servern svarade med fel: %2 Failed to create debug archive - Kunde inte skapa felsökningsarkiv + Misslyckades med att skapa debug-arkiv It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. @@ -5426,7 +5430,7 @@ Servern svarade med fel: %2 The directory %1 cannot be part of your sync directory. Please choose another folder. - + Katalogen %1 kan inte vara en del av din synkroniseringskatalog. Vänligen välj en annan mapp. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. @@ -5579,7 +5583,7 @@ Servern svarade med fel: %2 SesTrayHeader Open Nextcloud in browser - + Öppna HiDrive Next i webbläsaren Open local or team folders @@ -5587,7 +5591,7 @@ Servern svarade med fel: %2 Website - + Webbplats @@ -5625,13 +5629,13 @@ Servern svarade med fel: %2 Custom Permissions - + Anpassade behörigheter Enter a note for the recipient Ange en notering till mottagaren - + Enter the note to recipientAnge anteckningen till mottagaren File drop (upload only) Filinkast (endast uppladdning) @@ -5653,7 +5657,7 @@ Servern svarade med fel: %2 Share link copied! - Delningslänken har kopierats! + Dela länk kopierad! Unshare @@ -5801,7 +5805,7 @@ Servern svarade med fel: %2 TrayFoldersMenuButton Files - + Filer Open %1 in file explorer @@ -5836,7 +5840,7 @@ Servern svarade med fel: %2 Add account - Lägg till konto + Lägg till konto Current account @@ -5860,11 +5864,11 @@ Servern svarade med fel: %2 Pause sync for all - Pausa synkronisering för alla + Pausa synkronisering för alla Resume sync for all - Återuppta synkronisering för alla + Synkronisering av CV för alla Settings From a650e9d03104beb8576a0108706e99e412b6713a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:14 +0200 Subject: [PATCH 147/148] Step 4 --- translations/client_de.ts | 183 ++++++++++++++++++++++------- translations/client_en.ts | 221 +++++++++++++++++++++++++---------- translations/client_en_GB.ts | 183 ++++++++++++++++++++++------- translations/client_es.ts | 188 ++++++++++++++++++++++------- translations/client_es_MX.ts | 192 ++++++++++++++++++++++-------- translations/client_fr.ts | 183 ++++++++++++++++++++++------- translations/client_it.ts | 183 ++++++++++++++++++++++------- translations/client_nl.ts | 189 ++++++++++++++++++++++-------- translations/client_sv.ts | 193 ++++++++++++++++++++++-------- 9 files changed, 1297 insertions(+), 418 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index fbb8dd797e831..ac131c73b9d0a 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -1,6 +1,49 @@ -AgreeZustimmenBackZurückNecessary dataErforderliche DatenRequired to ensure that the software can be used as expectedErforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann.Save SettingsEinstellungen speichernSend anonymous useAnonyme Nutzungsdaten sendenThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODiese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. + + + + Agree + Zustimmen + + + Back + Zurück + + + Necessary data + Erforderliche Daten + + + Required to ensure that the software can be used as expected + Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. + + + Save Settings + Einstellungen speichern + + + Send anonymous use + Anonyme Nutzungsdaten senden + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Nach unten blättern -BasicComboBoxClear status message menuStatusmeldungs-Menü löschen + + BasicComboBox + + Clear status message menu + Statusmeldungs-Menü löschen + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Lokale Kopien entfernen -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Bei der schnellen Synchronisierung werden nur Änderungen an Dateien und Ordnern innerhalb der Ordner synchronisiert, die bereits untersucht wurden. Dies kann die Reaktionsfähigkeit bei der Ersteinrichtung virtueller Dateien erheblich erhöhen. Allerdings führt dies zu redundanten Downloads von Dateien, die in einen noch nicht erfassten Ordner verschoben wurden. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Bei der schnellen Synchronisierung werden nur Änderungen an Dateien und Ordnern innerhalb der Ordner synchronisiert, die bereits untersucht wurden. Dies kann die Reaktionsfähigkeit bei der Ersteinrichtung virtueller Dateien erheblich erhöhen. Allerdings führt dies zu redundanten Downloads von Dateien, die in einen noch nicht erfassten Ordner verschoben wurden. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment Virtuelle Dateienumgebung zurücksetzen - Signal file provider domainDomain des Signaldateianbieters + + Signal file provider domain + Domain des Signaldateianbieters + + Virtual files settings Einstellungen für virtuelle Dateien @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 GB von %2 GB der entfernten Dateien synchronisiert - Evict local copies...Lokale Kopien entfernen... + + Evict local copies... + Lokale Kopien entfernen... + + Free up space … Speicherplatz freigeben … @@ -358,7 +423,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. Add Folder Sync - + Ordner Sync hinzufügen Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. FolderWizardTargetPage Add Folder Sync - + Ordner Sync hinzufügen Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS kann diese Anforderung ignorieren oder verzögern. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 Konten wurden von einem älteren Desktop-Client erkannt. - Sollen die Konten importiert werden? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 Konten wurden von einem älteren Desktop-Client erkannt. + Sollen die Konten importiert werden? + + An account was detected from a legacy desktop client. Should the account be imported? Ein Konto wurde von einem älteren Desktop-Client erkannt. @@ -637,7 +706,15 @@ Soll das Konto importiert werden? Expand Memory Speicher erweitern - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0097ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1041 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0097 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1041 + + Folder creation failed Anlegen des Ordners fehlgeschlagen @@ -803,7 +880,11 @@ Diese Aktion bricht jede derzeit laufende Synchronisierung ab. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze aus zwölf Wörtern aus dem Wörterbuch. Bitte notieren Sie sich diese und bewahren Sie sie sicher auf. Sie benötigen sie, um die Synchronisierung verschlüsselter Ordner auf Ihren anderen Geräten einzurichten. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze von 12 Wörterbuchwörtern. Bitte notieren Sie sich diese und bewahren Sie sie auf. Sie werden benötigt, um Ihrem Konto weitere Geräte hinzuzufügen (z. B. Ihr Mobiltelefon oder Laptop). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze von 12 Wörterbuchwörtern. Bitte notieren Sie sich diese und bewahren Sie sie auf. Sie werden benötigt, um Ihrem Konto weitere Geräte hinzuzufügen (z. B. Ihr Mobiltelefon oder Laptop). + + Unable to connect to %1. Verbindung zu %1 kann nicht hergestellt werden. @@ -1402,7 +1483,7 @@ Möchten Sie dies jetzt tun? OCC::DataProtectionPage Agree - + Zustimmen Form @@ -1414,11 +1495,11 @@ Möchten Sie dies jetzt tun? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. @@ -1433,27 +1514,27 @@ Möchten Sie dies jetzt tun? Necessary data - + Erforderliche Daten Required to ensure that the software can be used as expected - + Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. Save Settings - + Einstellungen speichern Send anonymous use - + Anonyme Nutzungsdaten senden This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. @@ -2122,7 +2203,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderStatusDelegate Add Folder Sync - + Ordner Sync hinzufügen File @@ -2291,7 +2372,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizardLocalPath Add Folder Sync - + Ordner Sync hinzufügen Choose @@ -2307,7 +2388,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Wählen Sie einen Ordner auf Ihrer Festplatte, der dauerhaft mit Ihrem %1 verbunden sein soll. Alle Dateien und Unterordner werden automatisch hochgeladen und synchronisiert. Select the source folder @@ -2315,14 +2396,14 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Step 1 of 3: Select local folder - + Schritt 1 von 3: Lokalen Ordner auswählen OCC::FolderWizardRemotePath Add Folder Sync - + Ordner Sync hinzufügen Authentication failed accessing %1 @@ -2330,7 +2411,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Beide Ordner sind dauerhaft miteinander verknüpft und die jeweiligen Inhalte werden automatisch synchronisiert und aktualisiert. Choose this to sync the entire account @@ -2366,7 +2447,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Bitte wählen oder erstellen Sie nun einen Zielordner in Ihrem %1, in den der Inhalt hochgeladen und synchronisiert werden soll. Refresh @@ -2374,7 +2455,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Step 2 of 3: Directory in your %1 - + Schritt 2 von 3: Verzeichnis in Ihrem %1 You are already syncing the subfolder %1 at %2. @@ -2389,11 +2470,11 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass Add Folder Sync - + Ordner Sync hinzufügen Step 3 of 3: Selektive Synchronisation - + Schritt 3 von 3: Selektive Synchronisierung Use virtual files instead of downloading content immediately %1 @@ -2410,7 +2491,11 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::GeneralSettings - &Analysis data collection for needs-based design&Analyse der Datenerhebung für bedarfsgerechte Gestaltung + + &Analysis data collection for needs-based design + &Analyse der Datenerhebung für bedarfsgerechte Gestaltung + + &Automatically check for updates &Automatisch auf Aktualisierungen prüfen @@ -2521,7 +2606,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Necessary data - + Erforderliche Daten Notify when synchronised folders grow larger than specified limit @@ -2541,7 +2626,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Required to ensure that the software can be used as expected - + Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. Restore &Default @@ -2553,7 +2638,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Send anonymous use - + Anonyme Nutzungsdaten senden Server notifications that require attention. @@ -2605,7 +2690,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. Update channel @@ -4733,11 +4818,11 @@ Server antwortete mit Fehler: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0097 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1041 Help-Link @@ -4847,7 +4932,11 @@ Server antwortete mit Fehler: %2 OCC::User - %1 notifications%1 Benachrichtigungen + + %1 notifications + %1 Benachrichtigungen + + %n notification(s) %n Benachrichtigung @@ -5301,7 +5390,11 @@ Server antwortete mit Fehler: %2 Virtual file created Virtuelle Datei erstellt -updating local virtual files metadataAktualisierung der Metadaten lokaler virtueller Dateien + + updating local virtual files metadata + Aktualisierung der Metadaten lokaler virtueller Dateien + + ProxySettings @@ -5632,7 +5725,11 @@ Server antwortete mit Fehler: %2 Enter a note for the recipient Eine Notiz für den Empfänger eingeben - Enter the note to recipientGeben Sie eine Notiz an den Empfänger ein + + Enter the note to recipient + Geben Sie eine Notiz an den Empfänger ein + + File drop (upload only) Dateien ablegen (nur Hochladen) @@ -5899,7 +5996,7 @@ Server antwortete mit Fehler: %2 Open Nextcloud in browser - + HiDrive Next im Browser öffnen Open local or team folders @@ -5907,7 +6004,7 @@ Server antwortete mit Fehler: %2 Website - + Website diff --git a/translations/client_en.ts b/translations/client_en.ts index 63a9abedac307..3577d38916099 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -1,6 +1,49 @@ -AgreeAgreeBackBackNecessary dataNecessary dataRequired to ensure that the software can be used as expectedRequired to ensure that the software can be used as expectedSave SettingsSave SettingsSend anonymous useSend anonymous useThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.This helps us to optimize the software and to better identify system crashes and unexpected errors.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + + Agree + Agree + + + Back + Back + + + Necessary data + Necessary data + + + Required to ensure that the software can be used as expected + Required to ensure that the software can be used as expected + + + Save Settings + Save Settings + + + Send anonymous use + Send anonymous use + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ -BasicComboBoxClear status message menuDelete status message menu + + BasicComboBox + + Clear status message menu + Delete status message menu + + + CallNotificationDialog Answer Talk call notification @@ -101,7 +151,7 @@ Settings - + Settings Sync paused @@ -175,15 +225,15 @@ Pause sync for all - + Pause sync for all Resume sync for all - + Resume sync for all Settings - + Settings @@ -243,7 +293,14 @@ -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment - Signal file provider domainSignal file provider domain + + Signal file provider domain + Signal file provider domain + + Virtual files settings @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced - Evict local copies...Evict local copies... + + Evict local copies... + Evict local copies... + + Free up space … @@ -357,7 +422,7 @@ macOS may ignore or delay this request. Add Folder Sync - + Add Folder Sync Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -372,7 +437,7 @@ macOS may ignore or delay this request. FolderWizardTargetPage Add Folder Sync - + Add Folder Sync Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -457,9 +522,13 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 accounts were detected from a legacy desktop client. -Should the accounts be imported? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + + An account was detected from a legacy desktop client. Should the account be imported? @@ -635,7 +704,15 @@ Should the account be imported? Expand Memory Expand Memory - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0057ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0057 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1046 + + Folder creation failed @@ -797,7 +874,11 @@ This action will abort any currently running synchronization. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + Unable to connect to %1. @@ -1307,7 +1388,7 @@ Would you like to do this now? Local version - + Local version Open local version @@ -1319,7 +1400,7 @@ Would you like to do this now? Server version - + Server version Sync Conflict @@ -1391,7 +1472,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Agree Form @@ -1403,18 +1484,18 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. OCC::DataProtectionSettingsPage Back - + Back Form @@ -1422,27 +1503,27 @@ Would you like to do this now? Necessary data - + Necessary data Required to ensure that the software can be used as expected - + Required to ensure that the software can be used as expected Save Settings - + Save Settings Send anonymous use - + Send anonymous use This helps us to optimize the software and to better identify system crashes and unexpected errors. - + This helps us to optimize the software and to better identify system crashes and unexpected errors. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. @@ -2102,7 +2183,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate Add Folder Sync - + Add Folder Sync File @@ -2271,7 +2352,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath Add Folder Sync - + Add Folder Sync Choose @@ -2287,7 +2368,7 @@ For advanced users: this issue might be related to multiple sync database files Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized. Select the source folder @@ -2295,14 +2376,14 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + Step 1 of 3: Select local folder OCC::FolderWizardRemotePath Add Folder Sync - + Add Folder Sync Authentication failed accessing %1 @@ -2310,7 +2391,7 @@ For advanced users: this issue might be related to multiple sync database files Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Choose this to sync the entire account @@ -2322,7 +2403,7 @@ For advanced users: this issue might be related to multiple sync database files Create folder - + Create folder Enter the name of the new folder to be created below "%1": @@ -2346,7 +2427,7 @@ For advanced users: this issue might be related to multiple sync database files Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Refresh @@ -2354,7 +2435,7 @@ For advanced users: this issue might be related to multiple sync database files Step 2 of 3: Directory in your %1 - + Step 2 of 3: Directory in your %1 You are already syncing the subfolder %1 at %2. @@ -2369,11 +2450,11 @@ For advanced users: this issue might be related to multiple sync database files Add Folder Sync - + Add Folder Sync Step 3 of 3: Selektive Synchronisation - + Step 3 of 3: Selective Synchronisation Use virtual files instead of downloading content immediately %1 @@ -2390,7 +2471,11 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design&Analysis data collection for needs-based design + + &Analysis data collection for needs-based design + &Analysis data collection for needs-based design + + &Automatically check for updates @@ -2496,7 +2581,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Necessary data - + Necessary data Notify when synchronised folders grow larger than specified limit @@ -2516,7 +2601,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Required to ensure that the software can be used as expected - + Required to ensure that the software can be used as expected Restore &Default @@ -2528,7 +2613,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Send anonymous use - + Send anonymous use Server notifications that require attention. @@ -2579,7 +2664,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp This helps us to optimize the software and to better identify system crashes and unexpected errors. - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Update channel @@ -3454,7 +3539,7 @@ Note that using any logging command line options will override this setting. Back Next button text in new account wizard - + Back Cancel @@ -3940,7 +4025,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Failed to unlock encrypted folder. - + Failed to unlock encrypted folder. Failed to upload encrypted file. @@ -4135,7 +4220,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss Settings - + Settings @@ -4230,7 +4315,7 @@ Server replied with error: %2 Delete - + Delete Delete local changes @@ -4563,7 +4648,7 @@ Server replied with error: %2 All synced! - + All synced! Checking folder changes @@ -4639,7 +4724,7 @@ Server replied with error: %2 Pause sync for all - + Pause sync for all Resume sync @@ -4647,11 +4732,11 @@ Server replied with error: %2 Resume sync for all - + Resume sync for all Settings - + Settings @@ -4666,7 +4751,7 @@ Server replied with error: %2 Open Browser - + Open Browser Polling @@ -4694,11 +4779,11 @@ Server replied with error: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0057 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1046 Help-Link @@ -4808,7 +4893,11 @@ Server replied with error: %2 OCC::User - %1 notifications%1 notifications + + %1 notifications + %1 notifications + + %n notification(s) %n notification @@ -5262,7 +5351,11 @@ Server replied with error: %2 Virtual file created -updating local virtual files metadataUpdating local virtual files metadata + + updating local virtual files metadata + Updating local virtual files metadata + + ProxySettings @@ -5279,7 +5372,7 @@ Server replied with error: %2 No proxy - + No proxy Note: proxy settings have no effects for accounts on localhost @@ -5593,7 +5686,11 @@ Server replied with error: %2 Enter a note for the recipient - Enter the note to recipientEnter the note to recipient + + Enter the note to recipient + Enter the note to recipient + + File drop (upload only) @@ -5830,7 +5927,7 @@ Server replied with error: %2 Settings - + Settings @@ -5860,7 +5957,7 @@ Server replied with error: %2 Open Nextcloud in browser - + Open HiDrive Next in browser Open local or team folders @@ -5868,7 +5965,7 @@ Server replied with error: %2 Website - + Website diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index ff6cac9f034a4..c9b381f7bd59f 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -1,6 +1,49 @@ -AgreeAgreeBackBackNecessary dataNecessary dataRequired to ensure that the software can be used as expectedRequired to ensure that the software can be used as expectedSave SettingsSave SettingsSend anonymous useSend anonymous useThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.This helps us to optimize the software and to better identify system crashes and unexpected errors.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + + Agree + Agree + + + Back + Back + + + Necessary data + Necessary data + + + Required to ensure that the software can be used as expected + Required to ensure that the software can be used as expected + + + Save Settings + Save Settings + + + Send anonymous use + Send anonymous use + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + This helps us to optimize the software and to better identify system crashes and unexpected errors. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Scroll to top -BasicComboBoxClear status message menuDelete status message menu + + BasicComboBox + + Clear status message menu + Delete status message menu + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Remove local copies -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment Reset virtual files environment - Signal file provider domainSignal file provider domain + + Signal file provider domain + Signal file provider domain + + Virtual files settings Virtual files settings @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 GB of %2 GB remote files synced - Evict local copies...Evict local copies... + + Evict local copies... + Evict local copies... + + Free up space … Free up space … @@ -358,7 +423,7 @@ macOS may ignore or delay this request. Add Folder Sync - + Add Folder Sync Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS may ignore or delay this request. FolderWizardTargetPage Add Folder Sync - + Add Folder Sync Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 accounts were detected from a legacy desktop client. -Should the accounts be imported? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + + An account was detected from a legacy desktop client. Should the account be imported? An account was detected from a legacy desktop client. @@ -637,7 +706,15 @@ Should the account be imported? Expand Memory Expand Memory - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0057ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0057 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1046 + + Folder creation failed Folder creation failed @@ -803,7 +880,11 @@ This action will abort any currently running synchronization. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + Unable to connect to %1. Unable to connect to %1. @@ -1402,7 +1483,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Agree Form @@ -1414,11 +1495,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. @@ -1433,27 +1514,27 @@ Would you like to do this now? Necessary data - + Necessary data Required to ensure that the software can be used as expected - + Required to ensure that the software can be used as expected Save Settings - + Save Settings Send anonymous use - + Send anonymous use This helps us to optimize the software and to better identify system crashes and unexpected errors. - + This helps us to optimize the software and to better identify system crashes and unexpected errors. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. @@ -2122,7 +2203,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate Add Folder Sync - + Add Folder Sync File @@ -2291,7 +2372,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath Add Folder Sync - + Add Folder Sync Choose @@ -2307,7 +2388,7 @@ For advanced users: this issue might be related to multiple sync database files Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Select the source folder @@ -2315,14 +2396,14 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + Step 1 of 3: Select local folder OCC::FolderWizardRemotePath Add Folder Sync - + Add Folder Sync Authentication failed accessing %1 @@ -2330,7 +2411,7 @@ For advanced users: this issue might be related to multiple sync database files Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Choose this to sync the entire account @@ -2366,7 +2447,7 @@ For advanced users: this issue might be related to multiple sync database files Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Refresh @@ -2374,7 +2455,7 @@ For advanced users: this issue might be related to multiple sync database files Step 2 of 3: Directory in your %1 - + Step 2 of 3: Directory in your %1 You are already syncing the subfolder %1 at %2. @@ -2389,11 +2470,11 @@ For advanced users: this issue might be related to multiple sync database files Add Folder Sync - + Add Folder Sync Step 3 of 3: Selektive Synchronisation - + Step 3 of 3: Selective Synchronisation Use virtual files instead of downloading content immediately %1 @@ -2410,7 +2491,11 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design&Analysis data collection for needs-based design + + &Analysis data collection for needs-based design + &Analysis data collection for needs-based design + + &Automatically check for updates &Automatically check for updates @@ -2521,7 +2606,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Necessary data - + Necessary data Notify when synchronised folders grow larger than specified limit @@ -2541,7 +2626,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Required to ensure that the software can be used as expected - + Required to ensure that the software can be used as expected Restore &Default @@ -2553,7 +2638,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Send anonymous use - + Send anonymous use Server notifications that require attention. @@ -2606,7 +2691,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp This helps us to optimize the software and to better identify system crashes and unexpected errors. - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Update channel @@ -4734,11 +4819,11 @@ Server replied with error: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0057 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1046 Help-Link @@ -4848,7 +4933,11 @@ Server replied with error: %2 OCC::User - %1 notifications%1 notifications + + %1 notifications + %1 notifications + + %n notification(s) %n notification @@ -5302,7 +5391,11 @@ Server replied with error: %2 Virtual file created Virtual file created -updating local virtual files metadataUpdating local virtual files metadata + + updating local virtual files metadata + Updating local virtual files metadata + + ProxySettings @@ -5633,7 +5726,11 @@ Server replied with error: %2 Enter a note for the recipient Enter a note for the recipient - Enter the note to recipientEnter the note to recipient + + Enter the note to recipient + Enter the note to recipient + + File drop (upload only) File drop (upload only) @@ -5900,7 +5997,7 @@ Server replied with error: %2 Open Nextcloud in browser - + Open HiDrive Next in browser Open local or team folders @@ -5908,7 +6005,7 @@ Server replied with error: %2 Website - + Website diff --git a/translations/client_es.ts b/translations/client_es.ts index 8f7caf527a208..dc2c353edb8d7 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -1,7 +1,50 @@ -AgreeAceptarBackVolverNecessary dataDatos necesariosRequired to ensure that the software can be used as expectedNecesario para garantizar que el software puede utilizarse según lo previstoSave SettingsGuardar ajustesSend anonymous useEnviar uso anónimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOEsta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + + Agree + Aceptar + + + Back + Volver + + + Necessary data + Datos necesarios + + + Required to ensure that the software can be used as expected + Necesario para garantizar que el software puede utilizarse según lo previsto + + + Save Settings + Guardar ajustes + + + Send anonymous use + Enviar uso anónimo + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + ActivityItem In %1 @@ -38,7 +81,14 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans Desplazarse hasta la parte superior -BasicComboBoxClear status message menuBorrar el menú de mensajes de estado + + BasicComboBox + + Clear status message menu + Borrar el menú de mensajes de estado + + + CallNotificationDialog Answer Talk call notification @@ -244,7 +294,14 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans Quitar copias locales -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + + FileProviderFileDelegate Delete @@ -265,7 +322,11 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans Reset virtual files environment Reiniciar el ambiente de archivos virtuales - Signal file provider domainDominio del proveedor de archivos de firmas + + Signal file provider domain + Dominio del proveedor de archivos de firmas + + Virtual files settings Configuración de archivos virtuales @@ -276,7 +337,11 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - Evict local copies...Desalojar las copias locales... + + Evict local copies... + Desalojar las copias locales... + + Free up space … Liberar espacio … @@ -329,7 +394,7 @@ macOS podría ignorar o demorar esta solicitud. Copy Link - + Copiar enlace Logo @@ -359,7 +424,7 @@ macOS podría ignorar o demorar esta solicitud. Add Folder Sync - + Añadir sincronización de carpetas Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -374,7 +439,7 @@ macOS podría ignorar o demorar esta solicitud. FolderWizardTargetPage Add Folder Sync - + Añadir sincronización de carpetas Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -459,9 +524,13 @@ macOS podría ignorar o demorar esta solicitud. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 cuentas se detectaron con un cliente de escritorio antiguo. -¿Deben estas cuentas ser importadas? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? + + An account was detected from a legacy desktop client. Should the account be imported? Se detectó una cuenta desde un cliente de escritorio antiguo. @@ -638,7 +707,15 @@ Should the account be imported? Expand Memory Ampliar la memoria - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0067ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1043 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0067 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1043 + + Folder creation failed Ha fallado la creación de la carpeta @@ -804,7 +881,11 @@ Además, esta acción interrumpirá cualquier sincronización en curso.To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Para proteger su Identidad Criptográfica, ciframos la misma con un mnemonico de 12 palabras de diccionario. Por favor, anótelo y consérvelo a salvo. Lo necesitará para configurar la sincronización de carpetas cifradas en sus otros dispositivos. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + Unable to connect to %1. No es posible conectarse con %1. @@ -1403,7 +1484,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Aceptar Form @@ -1415,11 +1496,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. @@ -1434,27 +1515,28 @@ Would you like to do this now? Necessary data - + Datos necesarios Required to ensure that the software can be used as expected - + Necesario para garantizar que el software puede utilizarse según lo previsto Save Settings - + Guardar ajustes Send anonymous use - + Enviar uso anónimo This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. @@ -2123,7 +2205,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderStatusDelegate Add Folder Sync - + Añadir sincronización de carpetas File @@ -2292,7 +2374,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizardLocalPath Add Folder Sync - + Añadir sincronización de carpetas Choose @@ -2308,7 +2390,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. Select the source folder @@ -2316,14 +2398,14 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Step 1 of 3: Select local folder - + Paso 1 de 3: Seleccionar carpeta local OCC::FolderWizardRemotePath Add Folder Sync - + Añadir sincronización de carpetas Authentication failed accessing %1 @@ -2331,7 +2413,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. Choose this to sync the entire account @@ -2367,7 +2449,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. Refresh @@ -2375,7 +2457,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Step 2 of 3: Directory in your %1 - + Paso 2 de 3: Directorio en su %1 You are already syncing the subfolder %1 at %2. @@ -2390,11 +2472,11 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch Add Folder Sync - + Añadir sincronización de carpetas Step 3 of 3: Selektive Synchronisation - + Paso 3 de 3: Sincronización selectiva Use virtual files instead of downloading content immediately %1 @@ -2411,7 +2493,11 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::GeneralSettings - &Analysis data collection for needs-based design&Recogida de datos de análisis para un diseño basado en las necesidades + + &Analysis data collection for needs-based design + &Recogida de datos de análisis para un diseño basado en las necesidades + + &Automatically check for updates Comprobar &actualizaciones automáticamente @@ -2522,7 +2608,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Necessary data - + Datos necesarios Notify when synchronised folders grow larger than specified limit @@ -2542,7 +2628,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Required to ensure that the software can be used as expected - + Necesario para garantizar que el software puede utilizarse según lo previsto Restore &Default @@ -2554,7 +2640,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable Send anonymous use - + Enviar uso anónimo Server notifications that require attention. @@ -2607,7 +2693,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. Update channel @@ -4735,11 +4821,11 @@ El servidor respondió con el error: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0067 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1043 Help-Link @@ -4849,7 +4935,11 @@ El servidor respondió con el error: %2 OCC::User - %1 notifications%1 notificaciones + + %1 notifications + %1 notificaciones + + %n notification(s) %n notificación @@ -5303,7 +5393,11 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado -updating local virtual files metadataActualización de los metadatos de los archivos virtuales locales + + updating local virtual files metadata + Actualización de los metadatos de los archivos virtuales locales + + ProxySettings @@ -5634,7 +5728,11 @@ El servidor respondió con el error: %2 Enter a note for the recipient Ingrese una nota para el destinatario - Enter the note to recipientIntroducir la nota al destinatario + + Enter the note to recipient + Introducir la nota al destinatario + + File drop (upload only) Entrega de archivos (solo carga) @@ -5901,7 +5999,7 @@ El servidor respondió con el error: %2 Open Nextcloud in browser - + Abrir HiDrive Next en el navegador Open local or team folders @@ -5909,7 +6007,7 @@ El servidor respondió con el error: %2 Website - + Sitio web diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 58ad1615c56b4..108d74cfbb108 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -1,7 +1,50 @@ -AgreeAceptarBackVolverNecessary dataDatos necesariosRequired to ensure that the software can be used as expectedNecesario para garantizar que el software puede utilizarse según lo previstoSave SettingsGuardar ajustesSend anonymous useEnviar uso anónimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOEsta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + + Agree + Aceptar + + + Back + Volver + + + Necessary data + Datos necesarios + + + Required to ensure that the software can be used as expected + Necesario para garantizar que el software puede utilizarse según lo previsto + + + Save Settings + Guardar ajustes + + + Send anonymous use + Enviar uso anónimo + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + ActivityItem In %1 @@ -38,7 +81,14 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans -BasicComboBoxClear status message menuBorrar el menú de mensajes de estado + + BasicComboBox + + Clear status message menu + Borrar el menú de mensajes de estado + + + CallNotificationDialog Answer Talk call notification @@ -244,7 +294,14 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. + + + FileProviderFileDelegate Delete @@ -265,7 +322,11 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans Reset virtual files environment - Signal file provider domainDominio del proveedor de archivos de firmas + + Signal file provider domain + Dominio del proveedor de archivos de firmas + + Virtual files settings Configuración de archivos virtuales @@ -276,7 +337,11 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - Evict local copies...Desalojar las copias locales... + + Evict local copies... + Desalojar las copias locales... + + Free up space … @@ -358,7 +423,7 @@ macOS may ignore or delay this request. Add Folder Sync - + Añadir sincronización de carpetas Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS may ignore or delay this request. FolderWizardTargetPage Add Folder Sync - + Añadir sincronización de carpetas Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 cuentas se detectaron con un cliente de escritorio antiguo. -¿Deben estas cuentas ser importadas? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 cuentas se detectaron con un cliente de escritorio antiguo. +¿Deben estas cuentas ser importadas? + + An account was detected from a legacy desktop client. Should the account be imported? @@ -636,7 +705,15 @@ Should the account be imported? Expand Memory Ampliar la memoria - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0067ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1043 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0067 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1043 + + Folder creation failed Falló la creación de la carpeta @@ -802,7 +879,11 @@ This action will abort any currently running synchronization. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). + + Unable to connect to %1. No se pudo conectar a %1. @@ -1400,7 +1481,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Aceptar Form @@ -1412,18 +1493,18 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. OCC::DataProtectionSettingsPage Back - + Volver Form @@ -1431,27 +1512,28 @@ Would you like to do this now? Necessary data - + Datos necesarios Required to ensure that the software can be used as expected - + Necesario para garantizar que el software puede utilizarse según lo previsto Save Settings - + Guardar ajustes Send anonymous use - + Enviar uso anónimo This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. @@ -2117,7 +2199,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate Add Folder Sync - + Añadir sincronización de carpetas File @@ -2286,7 +2368,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath Add Folder Sync - + Añadir sincronización de carpetas Choose @@ -2302,7 +2384,7 @@ For advanced users: this issue might be related to multiple sync database files Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. Select the source folder @@ -2310,14 +2392,14 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + Paso 1 de 3: Seleccionar carpeta local OCC::FolderWizardRemotePath Add Folder Sync - + Añadir sincronización de carpetas Authentication failed accessing %1 @@ -2325,7 +2407,7 @@ For advanced users: this issue might be related to multiple sync database files Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. Choose this to sync the entire account @@ -2361,7 +2443,7 @@ For advanced users: this issue might be related to multiple sync database files Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. Refresh @@ -2369,7 +2451,7 @@ For advanced users: this issue might be related to multiple sync database files Step 2 of 3: Directory in your %1 - + Paso 2 de 3: Directorio en su %1 You are already syncing the subfolder %1 at %2. @@ -2384,11 +2466,11 @@ For advanced users: this issue might be related to multiple sync database files Add Folder Sync - + Añadir sincronización de carpetas Step 3 of 3: Selektive Synchronisation - + Paso 3 de 3: Sincronización selectiva Use virtual files instead of downloading content immediately %1 @@ -2405,7 +2487,11 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design&Recogida de datos de análisis para un diseño basado en las necesidades + + &Analysis data collection for needs-based design + &Recogida de datos de análisis para un diseño basado en las necesidades + + &Automatically check for updates Comprobar &actualizaciones automáticamente @@ -2511,7 +2597,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Necessary data - + Datos necesarios Notify when synchronised folders grow larger than specified limit @@ -2531,7 +2617,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Required to ensure that the software can be used as expected - + Necesario para garantizar que el software puede utilizarse según lo previsto Restore &Default @@ -2543,7 +2629,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Send anonymous use - + Enviar uso anónimo Server notifications that require attention. @@ -2594,7 +2680,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. Update channel @@ -3474,7 +3560,7 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co Back Next button text in new account wizard - + Volver Cancel @@ -4694,7 +4780,7 @@ El servidor respondió con el error: %2 Open Browser - + Abrir en el navegador Polling @@ -4722,11 +4808,11 @@ El servidor respondió con el error: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0067 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1043 Help-Link @@ -4836,7 +4922,11 @@ El servidor respondió con el error: %2 OCC::User - %1 notifications%1 notificaciones + + %1 notifications + %1 notificaciones + + %n notification(s) @@ -5290,7 +5380,11 @@ El servidor respondió con el error: %2 Virtual file created Archivo virtual creado -updating local virtual files metadataActualización de los metadatos de los archivos virtuales locales + + updating local virtual files metadata + Actualización de los metadatos de los archivos virtuales locales + + ProxySettings @@ -5621,7 +5715,11 @@ El servidor respondió con el error: %2 Enter a note for the recipient - Enter the note to recipientIntroducir la nota al destinatario + + Enter the note to recipient + Introducir la nota al destinatario + + File drop (upload only) Soltar archivo (sólo carga) @@ -5888,7 +5986,7 @@ El servidor respondió con el error: %2 Open Nextcloud in browser - + Abrir HiDrive Next en el navegador Open local or team folders @@ -5896,7 +5994,7 @@ El servidor respondió con el error: %2 Website - + Sitio web diff --git a/translations/client_fr.ts b/translations/client_fr.ts index 70eb91e9cd04a..67ce129abc684 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -1,6 +1,49 @@ -AgreeAccepterBackRetourNecessary dataDonnées indispensablesRequired to ensure that the software can be used as expectedNécessaire pour s'assurer que le logiciel peut être utilisé comme prévuSave SettingsSauvegarder les paramètresSend anonymous useEnvoyer utilisation anonymeThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOCette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. + + + + Agree + Accepter + + + Back + Retour + + + Necessary data + Données indispensables + + + Required to ensure that the software can be used as expected + Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu + + + Save Settings + Sauvegarder les paramètres + + + Send anonymous use + Envoyer utilisation anonyme + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Défiler vers le haut -BasicComboBoxClear status message menuMenu d'effacement du message de statut + + BasicComboBox + + Clear status message menu + Menu d'effacement du message de statut + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Supprimer les copies locales -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La synchronisation rapide va uniquement synchroniser les modifications des fichiers et des dossiers dans les dossiers qui ont été explorés. Ceci peut significativement augmenter la réactivité sur la configuration initiale des fichiers virtuelles. Cependant, cela va causer des téléchargements redondants de fichiers déplacés dans un dossier non exploré. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La synchronisation rapide va uniquement synchroniser les modifications des fichiers et des dossiers dans les dossiers qui ont été explorés. Ceci peut significativement augmenter la réactivité sur la configuration initiale des fichiers virtuelles. Cependant, cela va causer des téléchargements redondants de fichiers déplacés dans un dossier non exploré. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment Réinitialiser l'environnement de fichiers virtuels - Signal file provider domainIndiquer le domaine du fournisseur de fichiers + + Signal file provider domain + Indiquer le domaine du fournisseur de fichiers + + Virtual files settings Paramètres des fichiers virtuels @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 Go sur %2 Go de fichiers distants synchronisés - Evict local copies...Supprimer les copies locales + + Evict local copies... + Supprimer les copies locales + + Free up space … Libérer de l’espace… @@ -358,7 +423,7 @@ macOS may ignore or delay this request. Add Folder Sync - + Ajouter une synchronisation de dossiers Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS may ignore or delay this request. FolderWizardTargetPage Add Folder Sync - + Ajouter une synchronisation de dossiers Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 comptes ont été détectés à partir d'un ancien client de bureau. -Doivent-ils être importés ? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 comptes ont été détectés à partir d'un ancien client de bureau. +Doivent-ils être importés ? + + An account was detected from a legacy desktop client. Should the account be imported? Un compte a été détecté à partir d’un ancien client de synchronisation bureau. @@ -637,7 +706,15 @@ Le compte doit-il être importé ? Expand Memory Augmenter la mémoire - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0077ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1042 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0077 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1042 + + Folder creation failed Échec de la création du dossier @@ -802,7 +879,11 @@ Cette action entraînera l'interruption de toute synchronisation en cours.< To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour configurer la synchronisation de dossiers chiffrés sur vos autres appareils. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour ajouter d’autres appareils à votre compte (comme votre smartphone ou votre ordinateur portable). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour ajouter d’autres appareils à votre compte (comme votre smartphone ou votre ordinateur portable). + + Unable to connect to %1. Impossible de se connecter à %1. @@ -1399,7 +1480,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Accepter Form @@ -1411,11 +1492,11 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. @@ -1430,27 +1511,27 @@ Would you like to do this now? Necessary data - + Données indispensables Required to ensure that the software can be used as expected - + Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu Save Settings - + Sauvegarder les paramètres Send anonymous use - + Envoyer utilisation anonyme This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. @@ -2119,7 +2200,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderStatusDelegate Add Folder Sync - + Ajouter une synchronisation de dossiers File @@ -2288,7 +2369,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizardLocalPath Add Folder Sync - + Ajouter une synchronisation de dossiers Choose @@ -2304,7 +2385,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Sélectionnez sur votre disque dur un dossier qui doit être en permanence rattaché à votre %1. Tous les fichiers et sous-dossiers sont automatiquement importés et synchronisés. Select the source folder @@ -2312,14 +2393,14 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Step 1 of 3: Select local folder - + Étape 1 sur 3 : sélectionner un dossier local OCC::FolderWizardRemotePath Add Folder Sync - + Ajouter une synchronisation de dossiers Authentication failed accessing %1 @@ -2327,7 +2408,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Les deux dossiers sont en permanence rattachés et leur contenu respectif est automatiquement synchronisé et importé. Choose this to sync the entire account @@ -2363,7 +2444,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + À présent, sélectionnez ou créez dans votre %1 un dossier cible dans lequel le contenu doit être importé et synchronisé. Refresh @@ -2371,7 +2452,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Step 2 of 3: Directory in your %1 - + Étape 2 sur 3 : répertoire dans votre %1 You are already syncing the subfolder %1 at %2. @@ -2386,11 +2467,11 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi Add Folder Sync - + Ajouter une synchronisation de dossiers Step 3 of 3: Selektive Synchronisation - + Étape 3 sur 3 : synchronisation sélective Use virtual files instead of downloading content immediately %1 @@ -2407,7 +2488,11 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::GeneralSettings - &Analysis data collection for needs-based design&Collecte des données d’analyse pour une conception basée sur les besoins + + &Analysis data collection for needs-based design + &Collecte des données d’analyse pour une conception basée sur les besoins + + &Automatically check for updates &Vérifier automatiquement les mises à jour @@ -2518,7 +2603,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Necessary data - + Données indispensables Notify when synchronised folders grow larger than specified limit @@ -2538,7 +2623,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Required to ensure that the software can be used as expected - + Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu Restore &Default @@ -2550,7 +2635,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d Send anonymous use - + Envoyer utilisation anonyme Server notifications that require attention. @@ -2603,7 +2688,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. Update channel @@ -4731,11 +4816,11 @@ Le serveur a répondu avec l'erreur : %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0077 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1042 Help-Link @@ -4845,7 +4930,11 @@ Le serveur a répondu avec l'erreur : %2 OCC::User - %1 notifications%1 notifications + + %1 notifications + %1 notifications + + %n notification(s) %n notification @@ -5299,7 +5388,11 @@ Le serveur a répondu avec l'erreur : %2 Virtual file created Fichier virtuel créé -updating local virtual files metadataMise à jour des métadonnées des fichiers virtuels locaux + + updating local virtual files metadata + Mise à jour des métadonnées des fichiers virtuels locaux + + ProxySettings @@ -5630,7 +5723,11 @@ Le serveur a répondu avec l'erreur : %2 Enter a note for the recipient Saisir une note pour le destinataire - Enter the note to recipientSaisir la remarque à l’attention du destinataire + + Enter the note to recipient + Saisir la remarque à l’attention du destinataire + + File drop (upload only) Dépôt de fichiers (téléversement seulement) @@ -5897,7 +5994,7 @@ Le serveur a répondu avec l'erreur : %2 Open Nextcloud in browser - + Ouvrir HiDrive Next dans le navigateur Open local or team folders @@ -5905,7 +6002,7 @@ Le serveur a répondu avec l'erreur : %2 Website - + Site Web diff --git a/translations/client_it.ts b/translations/client_it.ts index 0d0a533d3d0eb..76a82e7abd63f 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -1,6 +1,49 @@ -AgreeConsentiBackIndietroNecessary dataDati necessariRequired to ensure that the software can be used as expectedNecessario per garantire che il software possa essere utilizzato come previsto.Save SettingsSalva le impostazioniSend anonymous useInvia l'uso anonimoThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATOQuesta applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. + + + + Agree + Consenti + + + Back + Indietro + + + Necessary data + Dati necessari + + + Required to ensure that the software can be used as expected + Necessario per garantire che il software possa essere utilizzato come previsto. + + + Save Settings + Salva le impostazioni + + + Send anonymous use + Invia l'uso anonimo + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Scorri verso l'alto -BasicComboBoxClear status message menu Cancella messaggio di stato + + BasicComboBox + + Clear status message menu + Cancella messaggio di stato + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Rimuovi copie locali -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.La sincronizzazione veloce sincronizzerà cambiamenti solo sui file e cartelle che sono stati esplorati. Questo migliorarerà sensibilmente la responsività, specie al primo avvio coi file virtuali. Per contro, causerà lo scaricamento ripetuto di file spostati verso una cartella inesplorata. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + La sincronizzazione veloce sincronizzerà cambiamenti solo sui file e cartelle che sono stati esplorati. Questo migliorarerà sensibilmente la responsività, specie al primo avvio coi file virtuali. Per contro, causerà lo scaricamento ripetuto di file spostati verso una cartella inesplorata. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment Reimposta l'ambiente dei file virtuali - Signal file provider domainDominio del fornitore del file di segnale + + Signal file provider domain + Dominio del fornitore del file di segnale + + Virtual files settings Impostazioni dei file virtuali @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 GB di %2 GB file remoti sincronizzati - Evict local copies...Evita copie locali... + + Evict local copies... + Evita copie locali... + + Free up space … Liberare spazio … @@ -358,7 +423,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. Add Folder Sync - + Aggiungi cartella di sincronizzazione Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. FolderWizardTargetPage Add Folder Sync - + Aggiungi cartella di sincronizzazione Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS potrebbe ignorare o ritardare questa richiesta. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 account trovati da una versione precedente del client desktop. - Importare gli account? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 account trovati da una versione precedente del client desktop. + Importare gli account? + + An account was detected from a legacy desktop client. Should the account be imported? È stato rilevato un account da un client desktop legacy. @@ -637,7 +706,15 @@ L'account deve essere importato? Expand Memory Upgrade Storage - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0087ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1046 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0087 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1046 + + Folder creation failed Creazione della cartella non riuscita @@ -803,7 +880,11 @@ Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Per proteggere la tua Identità Crittografica, la criptiamo con un codice mnemonico di 12 parole del dizionario. Annotalo e conservalo in un luogo sicuro. Ti servirà per configurare la sincronizzazione delle cartelle crittografate sugli altri tuoi dispositivi. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).Per proteggere la tua identità crittografica, la cifriamo con un codice mnemonico di 12 parole di dizionario. Annotale e tienile al sicuro. Saranno necessarie per aggiungere altri dispositivi al tuo account (come il tuo smartphone o il portatile). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + Per proteggere la tua identità crittografica, la cifriamo con un codice mnemonico di 12 parole di dizionario. Annotale e tienile al sicuro. Saranno necessarie per aggiungere altri dispositivi al tuo account (come il tuo smartphone o il portatile). + + Unable to connect to %1. Connessione non riuscita a %1. @@ -1402,7 +1483,7 @@ Vuoi farlo ora? OCC::DataProtectionPage Agree - + Consenti Form @@ -1414,11 +1495,11 @@ Vuoi farlo ora? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. @@ -1433,27 +1514,27 @@ Vuoi farlo ora? Necessary data - + Dati necessari Required to ensure that the software can be used as expected - + Necessario per garantire che il software possa essere utilizzato come previsto. Save Settings - + Salva le impostazioni Send anonymous use - + Invia l'uso anonimo This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. @@ -2123,7 +2204,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderStatusDelegate Add Folder Sync - + Aggiungi cartella di sincronizzazione File @@ -2292,7 +2373,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizardLocalPath Add Folder Sync - + Aggiungi cartella di sincronizzazione Choose @@ -2308,7 +2389,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selezionare una cartella sul disco rigido che deve essere collegata in modo permanente al %1. Tutti i file e le sottocartelle vengono caricati e sincronizzati automaticamente. Select the source folder @@ -2316,14 +2397,14 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Step 1 of 3: Select local folder - + Passo 1 di 3: selezionare la cartella locale OCC::FolderWizardRemotePath Add Folder Sync - + Aggiungi cartella di sincronizzazione Authentication failed accessing %1 @@ -2331,7 +2412,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Le due cartelle sono collegate in modo permanente e i rispettivi contenuti vengono sincronizzati e aggiornati automaticamente. Choose this to sync the entire account @@ -2367,7 +2448,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Selezionare o creare una cartella di destinazione nel proprio %1 in cui caricare e sincronizzare il contenuto. Refresh @@ -2375,7 +2456,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Step 2 of 3: Directory in your %1 - + Fase 2 di 3: directory nel vostro %1 You are already syncing the subfolder %1 at %2. @@ -2390,11 +2471,11 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Add Folder Sync - + Aggiungi cartella di sincronizzazione Step 3 of 3: Selektive Synchronisation - + Fase 3 di 3: sincronizzazione selettiva Use virtual files instead of downloading content immediately %1 @@ -2411,7 +2492,11 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::GeneralSettings - &Analysis data collection for needs-based designAnalisi della raccolta dei dati per la progettazione basata sui usability + + &Analysis data collection for needs-based design + Analisi della raccolta dei dati per la progettazione basata sui usability + + &Automatically check for updates Verific&a automaticamente la presenza di aggiornamenti. @@ -2522,7 +2607,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Necessary data - + Dati necessari Notify when synchronised folders grow larger than specified limit @@ -2542,7 +2627,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Required to ensure that the software can be used as expected - + Necessario per garantire che il software possa essere utilizzato come previsto. Restore &Default @@ -2554,7 +2639,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile Send anonymous use - + Invia l'uso anonimo Server notifications that require attention. @@ -2607,7 +2692,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. Update channel @@ -4727,11 +4812,11 @@ Il server ha risposto con errore: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0087 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1046 Help-Link @@ -4841,7 +4926,11 @@ Il server ha risposto con errore: %2 OCC::User - %1 notifications%1 Notifiche + + %1 notifications + %1 Notifiche + + %n notification(s) %n notifica @@ -5295,7 +5384,11 @@ Il server ha risposto con errore: %2 Virtual file created File virtuale creato -updating local virtual files metadataAggiornamento dei metadati dei file virtuali locali + + updating local virtual files metadata + Aggiornamento dei metadati dei file virtuali locali + + ProxySettings @@ -5626,7 +5719,11 @@ Il server ha risposto con errore: %2 Enter a note for the recipient Inserisci una nota per il destinatario - Enter the note to recipientInserire una nota per il destinatario + + Enter the note to recipient + Inserire una nota per il destinatario + + File drop (upload only) File drop (solo invio) @@ -5893,7 +5990,7 @@ Il server ha risposto con errore: %2 Open Nextcloud in browser - + Apri HiDrive Next nel browser Open local or team folders @@ -5901,7 +5998,7 @@ Il server ha risposto con errore: %2 Website - + Homepage diff --git a/translations/client_nl.ts b/translations/client_nl.ts index cef5bb2745197..2b764f62d2dfe 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -1,6 +1,49 @@ -AgreeAkkoordBackTerugNecessary dataNoodzakelijke gegevensRequired to ensure that the software can be used as expectedVereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwachtSave SettingsInstellingen opslaanSend anonymous useAnoniem gebruik verzendenThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODeze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. + + + + Agree + Akkoord + + + Back + Terug + + + Necessary data + Noodzakelijke gegevens + + + Required to ensure that the software can be used as expected + Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht + + + Save Settings + Instellingen opslaan + + + Send anonymous use + Anoniem gebruik verzenden + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Naar boven schuiven -BasicComboBoxClear status message menuStatusbericht wissen + + BasicComboBox + + Clear status message menu + Statusbericht wissen + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Verwijder lokale kopieën -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment - Signal file provider domainSignal file provider domain + + Signal file provider domain + Signal file provider domain + + Virtual files settings Virtuele bestandsinstellingen @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 GB van %2 GB remote bestanden gesychroniseerd - Evict local copies...Lokale kopieën verwijderen... + + Evict local copies... + Lokale kopieën verwijderen... + + Free up space … Maak ruimte ... @@ -358,7 +423,7 @@ macOS kan dit verzoek negeren of uitstellen. Add Folder Sync - + Mapsynchronisatie toevoegen Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS kan dit verzoek negeren of uitstellen. FolderWizardTargetPage Add Folder Sync - + Mapsynchronisatie toevoegen Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS kan dit verzoek negeren of uitstellen. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?Er zijn %1 accounts gedetecteerd van een oudere desktopclient. -Moeten de accounts worden geïmporteerd? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + Er zijn %1 accounts gedetecteerd van een oudere desktopclient. +Moeten de accounts worden geïmporteerd? + + An account was detected from a legacy desktop client. Should the account be imported? @@ -636,7 +705,15 @@ Should the account be imported? Expand Memory Geheugen uitbreiden - ExpandMemory-Linkhttps://wl.hidrive.com/easy/0097ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1045 + + ExpandMemory-Link + https://wl.hidrive.com/easy/0097 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1045 + + Folder creation failed Map maken mislukt @@ -802,7 +879,11 @@ Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken.To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + + Unable to connect to %1. Kan niet verbinden met %1. @@ -1399,7 +1480,7 @@ Would you like to do this now? OCC::DataProtectionPage Agree - + Akkoord Form @@ -1411,18 +1492,18 @@ Would you like to do this now? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. OCC::DataProtectionSettingsPage Back - + Terug Form @@ -1430,27 +1511,27 @@ Would you like to do this now? Necessary data - + Noodzakelijke gegevens Required to ensure that the software can be used as expected - + Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht Save Settings - + Instellingen opslaan Send anonymous use - + Anoniem gebruik verzenden This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. @@ -2116,7 +2197,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate Add Folder Sync - + Mapsynchronisatie toevoegen File @@ -2286,7 +2367,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath Add Folder Sync - + Mapsynchronisatie toevoegen Choose @@ -2302,7 +2383,7 @@ For advanced users: this issue might be related to multiple sync database files Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Selecteer een map op je harde schijf die permanent verbonden moet zijn met je %1. Alle bestanden en submappen worden automatisch geüpload en gesynchroniseerd. Select the source folder @@ -2310,14 +2391,14 @@ For advanced users: this issue might be related to multiple sync database files Step 1 of 3: Select local folder - + Stap 1 van 3: Selecteer lokale map OCC::FolderWizardRemotePath Add Folder Sync - + Mapsynchronisatie toevoegen Authentication failed accessing %1 @@ -2325,7 +2406,7 @@ For advanced users: this issue might be related to multiple sync database files Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + Beide mappen zijn permanent gekoppeld en de respectieve inhoud wordt automatisch gesynchroniseerd en bijgewerkt. Choose this to sync the entire account @@ -2361,7 +2442,7 @@ For advanced users: this issue might be related to multiple sync database files Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Selecteer of maak nu een doelmap in uw %1 waar de inhoud moet worden geüpload en gesynchroniseerd. Refresh @@ -2369,7 +2450,7 @@ For advanced users: this issue might be related to multiple sync database files Step 2 of 3: Directory in your %1 - + Stap 2 van 3: Directory in uw %1 You are already syncing the subfolder %1 at %2. @@ -2384,11 +2465,11 @@ For advanced users: this issue might be related to multiple sync database files Add Folder Sync - + Mapsynchronisatie toevoegen Step 3 of 3: Selektive Synchronisation - + Stap 3 van 3: Selektieve synchronisatie Use virtual files instead of downloading content immediately %1 @@ -2405,7 +2486,11 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design&Analyse van gegevensverzameling voor een op behoeften gebaseerd ontwerp + + &Analysis data collection for needs-based design + &Analyse van gegevensverzameling voor een op behoeften gebaseerd ontwerp + + &Automatically check for updates &Controleer automatisch op updates @@ -2511,7 +2596,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Necessary data - + Noodzakelijke gegevens Notify when synchronised folders grow larger than specified limit @@ -2531,7 +2616,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Required to ensure that the software can be used as expected - + Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht Restore &Default @@ -2543,7 +2628,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp Send anonymous use - + Anoniem gebruik verzenden Server notifications that require attention. @@ -2594,7 +2679,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. Update channel @@ -3474,7 +3559,7 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove Back Next button text in new account wizard - + Terug Cancel @@ -4694,7 +4779,7 @@ Server antwoordde met fout: %2 Open Browser - + Browser openen Polling @@ -4722,11 +4807,11 @@ Server antwoordde met fout: %2 ExpandMemory-Link - + https://wl.hidrive.com/easy/0097 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1045 Help-Link @@ -4836,7 +4921,11 @@ Server antwoordde met fout: %2 OCC::User - %1 notifications%1 kennisgevingen + + %1 notifications + %1 kennisgevingen + + %n notification(s) %n melding @@ -5290,7 +5379,11 @@ Server antwoordde met fout: %2 Virtual file created Virtueel bestand gecreëerd -updating local virtual files metadataMetagegevens van lokale virtuele bestanden bijwerken + + updating local virtual files metadata + Metagegevens van lokale virtuele bestanden bijwerken + + ProxySettings @@ -5621,7 +5714,11 @@ Server antwoordde met fout: %2 Enter a note for the recipient - Enter the note to recipientVoer de notitie aan de ontvanger in + + Enter the note to recipient + Voer de notitie aan de ontvanger in + + File drop (upload only) Bestands-drop (alleen uploaden) @@ -5888,7 +5985,7 @@ Server antwoordde met fout: %2 Open Nextcloud in browser - + HiDrive Next in browser openen Open local or team folders @@ -5896,7 +5993,7 @@ Server antwoordde met fout: %2 Website - + Website diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 3dfc2d6c83216..3915ad40977f5 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -1,6 +1,49 @@ -AgreeHåller medBackTillbakaNecessary dataNödvändiga uppgifterRequired to ensure that the software can be used as expectedKrävs för att säkerställa att programvaran kan användas som förväntatSave SettingsSpara inställningarSend anonymous useSkicka anonym användningThis application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>.Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>.This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATODenna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>.This helps us to optimize the software and to better identify system crashes and unexpected errors.Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel.We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection.Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. + + + + Agree + Håller med + + + Back + Tillbaka + + + Necessary data + Nödvändiga uppgifter + + + Required to ensure that the software can be used as expected + Krävs för att säkerställa att programvaran kan användas som förväntat + + + Save Settings + Spara inställningar + + + Send anonymous use + Skicka anonym användning + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. + + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. + + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. + + + ActivityItem In %1 @@ -37,7 +80,14 @@ Bläddra till toppen -BasicComboBoxClear status message menuMeny för att ta bort statusmeddelande + + BasicComboBox + + Clear status message menu + Meny för att ta bort statusmeddelande + + + CallNotificationDialog Answer Talk call notification @@ -243,7 +293,14 @@ Ta bort lokala kopior -FileProviderFastEnumerationSettingsFast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder.Snabbsynkronisering synkroniserar endast ändringar i filer och mappar inom mappar som har utforskats. Detta kan avsevärt öka svarstiden vid den första konfigurationen av virtuella filer. Det kommer dock att orsaka överflödiga nedladdningar av filer som flyttas till en outforskad mapp. + + FileProviderFastEnumerationSettings + + Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. + Snabbsynkronisering synkroniserar endast ändringar i filer och mappar inom mappar som har utforskats. Detta kan avsevärt öka svarstiden vid den första konfigurationen av virtuella filer. Det kommer dock att orsaka överflödiga nedladdningar av filer som flyttas till en outforskad mapp. + + + FileProviderFileDelegate Delete @@ -264,7 +321,11 @@ Reset virtual files environment Återställ miljön för virtuella filer - Signal file provider domainDomän för leverantör av signalfil + + Signal file provider domain + Domän för leverantör av signalfil + + Virtual files settings Inställningar virtuella filer @@ -275,7 +336,11 @@ %1 GB of %2 GB remote files synced %1 GB av %2 GB filer synkroniserade - Evict local copies...Utesluta lokala kopior... + + Evict local copies... + Utesluta lokala kopior... + + Free up space … Frigör utrymme … @@ -358,7 +423,7 @@ macOS kan ignorera eller fördröja denna begäran. Add Folder Sync - + Lägg till mappsynkronisering Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized @@ -373,7 +438,7 @@ macOS kan ignorera eller fördröja denna begäran. FolderWizardTargetPage Add Folder Sync - + Lägg till mappsynkronisering Both folders are permanently linked and the respective contents are automatically synchronized and updated. @@ -458,9 +523,13 @@ macOS kan ignorera eller fördröja denna begäran. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported?%1 konton upptäcktes från en äldre stationär klient. -Bör kontona importeras? + + %1 accounts were detected from a legacy desktop client. +Should the accounts be imported? + %1 konton upptäcktes från en äldre stationär klient. +Bör kontona importeras? + + An account was detected from a legacy desktop client. Should the account be imported? Ett konto upptäcktes från en äldre skrivbordsklient. @@ -637,7 +706,15 @@ Ska kontot importeras? Expand Memory Expandera minnet - ExpandMemory-Linkhttps://static.hidrive.com/next/1045ExpandMemory-Link_STRATOhttps://static.hidrive.com/next/1044 + + ExpandMemory-Link + https://static.hidrive.com/next/1045 + + + ExpandMemory-Link_STRATO + https://static.hidrive.com/next/1044 + + Folder creation failed Kunde inte skapa mappen @@ -793,9 +870,13 @@ Den enda fördelen med att inaktivera stödet för virtuella filer är att funkt Den här åtgärden avbryter alla pågående synkroniseringar. - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b>Detta kommer att kryptera din mapp och alla filer i den. Dessa filer kommer inte längre att vara åtkomliga utan din krypteringsnyckel. -<b>Den här processen är inte reversibel. Är du säker på att du vill fortsätta?</b> + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. +<b>This process is not reversible. Are you sure you want to proceed?</b> + Detta kommer att kryptera din mapp och alla filer i den. Dessa filer kommer inte längre att vara åtkomliga utan din krypteringsnyckel. +<b>Den här processen är inte reversibel. Är du säker på att du vill fortsätta?</b> + + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Detta kommer att kryptera din mapp och alla filer den innehåller. Dessa filer kommer inte längre att vara tillgängliga utan dina krypteringsord. @@ -805,7 +886,11 @@ Den här åtgärden avbryter alla pågående synkroniseringar. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. För att skydda din kryptografiska identitet krypterar vi den med en minnesfras bestående av 12 ord från en ordlista. Skriv ner den och förvara den säkert. Du kommer att behöva den för att konfigurera synkronisering av krypterade mappar på dina andra enheter. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop).För att skydda din kryptografiska identitet krypterar vi den med en mnemonik bestående av 12 ordboksord. Anteckna dessa och förvara dem säkert. De kommer att behövas för att lägga till andra enheter till ditt konto (som din mobiltelefon eller bärbara dator). + + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). + För att skydda din kryptografiska identitet krypterar vi den med en mnemonik bestående av 12 ordboksord. Anteckna dessa och förvara dem säkert. De kommer att behövas för att lägga till andra enheter till ditt konto (som din mobiltelefon eller bärbara dator). + + Unable to connect to %1. Kan inte ansluta till %1. @@ -1404,7 +1489,7 @@ Vill du konfigurera den nu? OCC::DataProtectionPage Agree - + Håller med Form @@ -1416,11 +1501,11 @@ Vill du konfigurera den nu? This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. @@ -1435,27 +1520,27 @@ Vill du konfigurera den nu? Necessary data - + Nödvändiga uppgifter Required to ensure that the software can be used as expected - + Krävs för att säkerställa att programvaran kan användas som förväntat Save Settings - + Spara inställningar Send anonymous use - + Skicka anonym användning This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - + Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. @@ -2124,7 +2209,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderStatusDelegate Add Folder Sync - + Lägg till mappsynkronisering File @@ -2293,7 +2378,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizardLocalPath Add Folder Sync - + Lägg till mappsynkronisering Choose @@ -2309,7 +2394,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized - + Välj en mapp på din hårddisk som ska vara permanent ansluten till din %1. Alla filer och undermappar laddas upp och synkroniseras automatiskt. Select the source folder @@ -2317,14 +2402,14 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Step 1 of 3: Select local folder - + Steg 1 av 3: Välj lokal mapp OCC::FolderWizardRemotePath Add Folder Sync - + Lägg till mappsynkronisering Authentication failed accessing %1 @@ -2332,7 +2417,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Both folders are permanently linked and the respective contents are automatically synchronized and updated. - + De båda mapparna är permanent länkade och respektive innehåll synkroniseras och uppdateras automatiskt. Choose this to sync the entire account @@ -2368,7 +2453,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. - + Välj eller skapa nu en målmapp i din %1 där innehållet ska laddas upp och synkroniseras. Refresh @@ -2376,7 +2461,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Step 2 of 3: Directory in your %1 - + Steg 2 av 3: Katalog i din %1 You are already syncing the subfolder %1 at %2. @@ -2391,11 +2476,11 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn Add Folder Sync - + Lägg till mappsynkronisering Step 3 of 3: Selektive Synchronisation - + Steg 3 av 3: Selektiv synkronisering Use virtual files instead of downloading content immediately %1 @@ -2412,7 +2497,11 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::GeneralSettings - &Analysis data collection for needs-based design&Analys av datainsamling för behovsbaserad design + + &Analysis data collection for needs-based design + &Analys av datainsamling för behovsbaserad design + + &Automatically check for updates &Automatisk kontroll av uppdateringar @@ -2523,7 +2612,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Necessary data - + Nödvändiga uppgifter Notify when synchronised folders grow larger than specified limit @@ -2543,7 +2632,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Required to ensure that the software can be used as expected - + Krävs för att säkerställa att programvaran kan användas som förväntat Restore &Default @@ -2555,7 +2644,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil Send anonymous use - + Skicka anonym användning Server notifications that require attention. @@ -2608,7 +2697,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil This helps us to optimize the software and to better identify system crashes and unexpected errors. - + Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. Update channel @@ -4736,11 +4825,11 @@ Servern svarade med fel: %2 ExpandMemory-Link - + https://static.hidrive.com/next/1045 ExpandMemory-Link_STRATO - + https://static.hidrive.com/next/1044 Help-Link @@ -4850,7 +4939,11 @@ Servern svarade med fel: %2 OCC::User - %1 notifications%1 meddelanden + + %1 notifications + %1 meddelanden + + %n notification(s) %n avisering @@ -5304,7 +5397,11 @@ Servern svarade med fel: %2 Virtual file created Virtuell fil skapad -updating local virtual files metadataUppdatering av metadata för lokala virtuella filer + + updating local virtual files metadata + Uppdatering av metadata för lokala virtuella filer + + ProxySettings @@ -5635,7 +5732,11 @@ Servern svarade med fel: %2 Enter a note for the recipient Ange en notering till mottagaren - Enter the note to recipientAnge anteckningen till mottagaren + + Enter the note to recipient + Ange anteckningen till mottagaren + + File drop (upload only) Filinkast (endast uppladdning) @@ -5902,7 +6003,7 @@ Servern svarade med fel: %2 Open Nextcloud in browser - + Öppna HiDrive Next i webbläsaren Open local or team folders @@ -5910,7 +6011,7 @@ Servern svarade med fel: %2 Website - + Webbplats From 90dfc4fa1c8d3b21a40b0453477fd105b2953629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20H=C3=A4tty?= Date: Thu, 21 May 2026 16:19:17 +0200 Subject: [PATCH 148/148] Step 5 --- translations/client_de.ts | 2308 ++++++++++++++++++++++++++------- translations/client_en.ts | 2218 ++++++++++++++++++++++++++------ translations/client_en_GB.ts | 2308 ++++++++++++++++++++++++++------- translations/client_es.ts | 2313 ++++++++++++++++++++++++++------- translations/client_es_MX.ts | 2289 ++++++++++++++++++++++++++------- translations/client_fr.ts | 2310 ++++++++++++++++++++++++++------- translations/client_it.ts | 2308 ++++++++++++++++++++++++++------- translations/client_nl.ts | 2286 ++++++++++++++++++++++++++------- translations/client_sv.ts | 2316 +++++++++++++++++++++++++++------- 9 files changed, 16624 insertions(+), 4032 deletions(-) diff --git a/translations/client_de.ts b/translations/client_de.ts index ac131c73b9d0a..9090c7987f46f 100644 --- a/translations/client_de.ts +++ b/translations/client_de.ts @@ -1,55 +1,14 @@ - - - - Agree - Zustimmen - - - Back - Zurück - - - Necessary data - Erforderliche Daten - - - Required to ensure that the software can be used as expected - Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. - - - Save Settings - Einstellungen speichern - - - Send anonymous use - Anonyme Nutzungsdaten senden - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. - - ActivityItem + In %1 In %1 + Open %1 locally %1 lokal öffnen @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Ablehnen + Open file details Dateidetails öffnen @@ -68,40 +29,40 @@ ActivityList + Activity list Aktivitätenliste + No activities yet Noch keine Aktivitäten vorhanden + Scroll to top Nach unten blättern - - BasicComboBox - - Clear status message menu - Statusmeldungs-Menü löschen - - CallNotificationDialog + Answer Talk call notification Benachrichtigung zu Talk-Anruf beantworten + Decline Ablehnen + Decline Talk call notification Benachrichtigung zu Talk-Anruf ablehnen + Talk notification caller avatar Avatar zu Benachrichtigung über Talk-Anrufer @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Nach Änderungen suchen in "%1" + Help Hilfe + Log out Abmelden + + No recently changed files Keine kürzlich geänderten Dateien + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. %1 Desktop öffnen + Open in browser Im Browser öffnen + Pause synchronization Synchronisierung pausieren + Quit sync client Sync-Client beenden + Recently changed Zuletzt geändert + Settings Einstellungen + Sync paused Synchronisierung pausiert + Syncing Synchronisiere + Syncing %1 Synchronisiere %1 + Syncing %1 (%2 left) Synchronisiere %1 (%2 übrig) + Syncing %1 of %2 Synchronisiere %1 von %2 + Syncing %1 of %2 (%3 left) Synchronisiere %1 von %2 (%3 übrig) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Lokale Version + Server version Serverversion @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Konto-Umschalter und Einstellungsmenü + Add account Konto hinzufügen + Add new account Neues Konto hinzufügen + Current account Aktuelles Konto + Current account avatar Avatar des aktuellen Kontos + Current account status is do not disturb Aktueller Kontostatus ist "Nicht stören" + Current account status is online Aktueller Kontostatus ist "Online" + Exit Beenden + + Pause sync for all Synchronisierung für alle pausieren + + Resume sync for all Synchronisierung für alle fortsetzen + Settings Einstellungen @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Datei wird für die lokale Bearbeitung geöffnet @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis Keine aktuellen Emojis @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Erkennen der auf Ihrem USB-Token gespeicherten Zertifikate @@ -260,6 +257,7 @@ ErrorBox + Error Fehler @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss Ablehnen @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 Dateidetails von %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Lokale Kopien + Reload Neu laden + Remove local copies Lokale Kopien entfernen - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - Bei der schnellen Synchronisierung werden nur Änderungen an Dateien und Ordnern innerhalb der Ordner synchronisiert, die bereits untersucht wurden. Dies kann die Reaktionsfähigkeit bei der Ersteinrichtung virtueller Dateien erheblich erhöhen. Allerdings führt dies zu redundanten Downloads von Dateien, die in einen noch nicht erfassten Ordner verschoben wurden. - - FileProviderFileDelegate + Delete Löschen @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Virtuelle Dateien aktivieren + General settings Allgemeine Einstellungen + Reset virtual files environment Virtuelle Dateienumgebung zurücksetzen - Signal file provider domain - Domain des Signaldateianbieters - - + Virtual files settings Einstellungen für virtuelle Dateien @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB von %2 GB der entfernten Dateien synchronisiert - Evict local copies... - Lokale Kopien entfernen... - - + Free up space … Speicherplatz freigeben … + Local storage use Nutzung des lokalen Speichers @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! Alles synchronisiert! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Eine Synchronisierung der Änderungen für die VFS-Umgebung anfordern. macOS kann diese Anforderung ignorieren oder verzögern. + Request sync Synchronisierung anfordern + Syncing Synchronisiere @@ -373,10 +373,12 @@ macOS kann diese Anforderung ignorieren oder verzögern. FileSystem + Could not remove folder "%1" Der Ordner "%1" konnte nicht entfernt werden + Error removing "%1": %2 Fehler beim Entfernen von "%1": %2 @@ -384,22 +386,28 @@ macOS kann diese Anforderung ignorieren oder verzögern. Flow2AuthWidget + + An error occurred while connecting. Please try again. Es ist ein Fehler beim Herstellen der Verbindung aufgetreten. Bitte erneut versuchen. + Browser Authentication Browser-Authentifizierung + Copy Link Link kopieren + Logo Logo + Switch to your browser to connect your account Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden @@ -407,10 +415,12 @@ macOS kann diese Anforderung ignorieren oder verzögern. FolderWizardSelectiveSync + Add Folder Sync Ordner Sync hinzufügen + Step 3 of 3: Selektive Synchronisation Schritt 3 von 3: Selektive Synchronisierung @@ -418,18 +428,22 @@ macOS kann diese Anforderung ignorieren oder verzögern. FolderWizardSourcePage + &Choose &Wählen + Add Folder Sync Ordner Sync hinzufügen + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Wählen Sie einen Ordner auf Ihrer Festplatte, der dauerhaft mit Ihrem %1 verbunden sein soll. Alle Dateien und Unterordner werden automatisch hochgeladen und synchronisiert. + Step 1 of 3: Select local folder Schritt 1 von 3: Lokalen Ordner auswählen @@ -437,30 +451,37 @@ macOS kann diese Anforderung ignorieren oder verzögern. FolderWizardTargetPage + Add Folder Sync Ordner Sync hinzufügen + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Beide Ordner sind dauerhaft miteinander verknüpft und die jeweiligen Inhalte werden automatisch synchronisiert und aktualisiert. + Create folder Ordner erstellen + Folders Ordner + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Bitte wählen oder erstellen Sie nun einen Zielordner in Ihrem %1, in den der Inhalt hochgeladen und synchronisiert werden soll. + Refresh Aktualisieren + Step 2 of 3: Directory in your %1 Schritt 2 von 3: Verzeichnis in Ihrem %1 @@ -468,14 +489,17 @@ macOS kann diese Anforderung ignorieren oder verzögern. MainWindow + Main content Hauptinhalt + New activities Neue Aktivitäten + Unified search results list Einheitliche Suchergebnisliste @@ -483,6 +507,7 @@ macOS kann diese Anforderung ignorieren oder verzögern. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Erstellt aus der Git-Revision <a href="%1">%2</a> auf %3, %4 unter Verwendung von Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS kann diese Anforderung ignorieren oder verzögern. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, wenn das Problem weiterhin besteht. + The server enforces strict transport security and does not accept untrusted certificates. Der Server erzwingt strenge Transportsicherheit und akzeptiert nur vertrauenswürdige Zertifikate. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Der Server brauchte zu lange, um zu antworten. Bitte die Verbindung überprüfen und die Synchronisation erneut versuchen. Wenn es dann immer noch nicht funktioniert, bitte die Serveradministration kontaktieren. @@ -505,18 +533,22 @@ macOS kann diese Anforderung ignorieren oder verzögern. OCC::Account + File %1 is already locked by %2. Datei %1 ist bereits von %2 gesperrt. + Lock operation on %1 failed with error %2 Das Sperren von %1 ist mit Fehler %2 fehlgeschlagen + Public Share Link Öffentlicher Freigabe-Link + Unlock operation on %1 failed with error %2 Das Entsperren von %1 ist mit Fehler %2 fehlgeschlagen @@ -524,30 +556,30 @@ macOS kann diese Anforderung ignorieren oder verzögern. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 Konten wurden von einem älteren Desktop-Client erkannt. - Sollen die Konten importiert werden? - - + An account was detected from a legacy desktop client. Should the account be imported? Ein Konto wurde von einem älteren Desktop-Client erkannt. Soll das Konto importiert werden? + Could not import accounts from legacy client configuration. Konten von älterer Client-Konfiguration konnten nicht importiert werden. + Import Importieren + + Legacy import Import früherer Konfiguration + Skip Überspringen @@ -555,310 +587,333 @@ Soll das Konto importiert werden? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) von %2 Serverkapazität verwendet. Einige Ordner, einschließlich über das Netzwerk verbundene oder geteilte Ordner, können unterschiedliche Beschränkungen aufweisen. + %1 as %2 %1 als %2 + %1 in use %1 belegt + %1 of %2 in use %1 von %2 belegt + (experimental) (experimentell) + <p>Could not create local folder <i>%1</i>.</p> <p>Konnte lokalen Ordner <i>%1</i> nicht anle‏gen.‎</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Möchten Sie den Ordner <i>%1</i> nicht mehr synchronisieren?</p><p><b>Anmerkung:</b> Dies wird <b>keine</b> Dateien löschen.</p> - Apply - Anwenden - - - Apply manual changes - Manuelle Änderungen anwenden - - + + Availability Verfügbarkeit - Cancel - Abbrechen - - + Choose what to sync Zu synchronisierende Elemente auswählen + Confirm Folder Sync Connection Removal Bestätigen Sie die Löschung der Ordner-Synchronisierung + Connected to %1. Verbunden mit %1. - Connected with <server> as <user> - Verbunden mit <server> als <user> - - + Connecting to %1 … Verbinde zu %1 … - Connection settings - Verbindungseinstellungen - - + Could not encrypt folder because the folder does not exist anymore Der Ordner konnte nicht verschlüsselt werden, da er nicht mehr existiert + + Create new folder Neuen Ordner erstellen + Currently there is no storage usage information available. Derzeit sind keine Speichernutzungsinformationen verfügbar. + Disable support Unterstützung deaktivieren + Disable virtual file support … Unterstützung für virtuelle Dateien deaktivieren + Disable virtual file support? Unterstützung für virtuelle Dateien deaktivieren? + Display mnemonic Gedächtnisstütze anzeigen + + Do not encrypt folder Ordner nicht verschlüsseln + Do you want to forget the end-to-end encryption settings for %1 on this device? Soll die Ende-zu-Ende-Verschlüsselungseinstellungen für %1 auf diesem Gerät vergessen werden? + + Edit Ignored Files Ignorierte Dateien bearbeiten + Enable virtual file support %1 … Unterstützung für virtuelle Dateien aktivieren %1 … + Encrypt Verschlüsseln + + Encrypt folder Ordner verschlüsseln + Encryption failed Verschlüsselung fehlgeschlagen + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. Die Verschlüsselung ist eingerichtet. Nicht vergessen, einen Ordner zu <b>verschlüsseln</b>, um alle neu hinzugefügten Dateien Ende-zu-Ende zu verschlüsseln. + End-to-end Encryption Ende-zu-Ende-Verschlüsselung + End-to-end Encryption with Virtual Files Ende-zu-Ende-Verschlüsselung mit virtuellen Dateien + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. Die Ende-zu-Ende-Verschlüsselung wurde für dieses Konto mit einem anderen Gerät initialisiert. <br>Geben Sie den eindeutigen Mnemonic ein, um die verschlüsselten Ordner auch auf diesem Gerät zu synchronisieren. + End-to-end encryption has not been initialized on this account. Für dieses Konto wurde keine Ende-zu-Ende-Verschlüsselung initialisiert. + End-to-end encryption mnemonic Gedächtnisstütze für die Ende-zu-Ende-Verschlüsselung - Expand Memory - Speicher erweitern - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0097 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1041 - - + Folder creation failed Anlegen des Ordners fehlgeschlagen + Force sync now Synchronisierung jetzt erzwingen + Forget encryption setup Verschlüsselungseinrichtung vergessen + Forget the end-to-end encryption on this device Die Ende-zu-Ende-Verschlüsselung auf diesem Gerät vergessen + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Wenn die Ende-zu-Ende-Verschlüsselung vergessen wird, werden die vertraulichen Daten und alle verschlüsselten Dateien von diesem Gerät entfernt. Die verschlüsselten Dateien verbleiben jedoch auf dem Server und allen Ihren anderen Geräten, sofern eingerichtet. + Migrate certificate to a new one Zertifikat auf ein neues migrieren + No %1 connection configured. Keine %1-Verbindung konfiguriert. + No account configured. Kein Konto konfiguriert. + + Open folder Ordner öffnen + Pause sync Synchronisierung pausieren + Please wait for the folder to sync before trying to encrypt it. Bitte warten Sie, bis der Ordner synchronisiert ist, bevor Sie versuchen, ihn zu verschlüsseln. + Remove Folder Sync Connection Ordner-Synchronisierung entfernen + Remove folder sync connection Ordner-Synchronisierung entfernen + Restart sync Synchronisierung neustarten + Resume sync Synchronisierung fortsetzen + Server %1 is currently being redirected, or your connection is behind a captive portal. Server %1 wird derzeit umgeleitet oder Ihre Verbindung befindet sich hinter einem Captive-Portal. + Server %1 is currently in maintenance mode. Server %1 befindet sich im Wartungsmodus. + Server %1 is temporarily unavailable. Server %1 ist derzeit nicht verfügbar. + Server configuration error: %1 at %2. Konfigurationsfehler des Servers: %1 auf %2. + Set up encryption Verschlüsselung einrichten + Signed out from %1. Abgemeldet von %1. - Standard file sync - Standard Dateisynchronisierung - - + Storage space %1% occupied Speicherplatz %1% belegt - Storage space: … - Speicherplatz: … - - + Sync Running Synchronisierung läuft - Synchronize all - Alles synchronisieren - - - Synchronize none - Nichts synchronisieren - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully Der Ordner weist ein geringfügiges Synchronisierungsproblem auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully Der Ordner weist einen Synchronisierungsfehler auf. Die Verschlüsselung dieses Ordners ist möglich, sobald er synchronisiert wurde + The server version %1 is unsupported! Proceed at your own risk. Die Serverversion %1 wird nicht unterstützt! Fortfahren auf eigenes Risiko. + The syncing operation is running.<br/>Do you want to terminate it? Die Synchronisierung läuft gerade.<br/>Soll diese beendet werden? + There are folders that have grown in size beyond %1MB: %2 Es gibt Ordner, deren Größe über %1 MB hinaus gewachsen ist: %2 + There are folders that were not synchronized because they are external storages: Es gibt Ordner, die nicht synchronisiert werden konnten, da sie externe Speicher sind: + There are folders that were not synchronized because they are too big or external storages: Es gibt Ordner, die nicht synchronisiert werden konnten, da sie zu groß oder externe Speicher sind: + There are folders that were not synchronized because they are too big: Einige Ordner konnten nicht synchronisiert werden, da sie zu groß sind: + This account supports end-to-end encryption, but it needs to be set up first. Dieses Konto unterstützt die Ende-zu-Ende-Verschlüsselung, diese muss aber zuerst eingerichtet werden. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -871,67 +926,129 @@ Der einzige Vorteil der Deaktivierung der Unterstützung für virtuelle Dateien Diese Aktion bricht jede derzeit laufende Synchronisierung ab. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Dadurch werden Ihr Ordner und alle darin enthaltenen Dateien verschlüsselt. Auf diese Dateien kann ohne Ihren mnemonischen Verschlüsselungsschlüssel nicht mehr zugegriffen werden. <b>Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze aus zwölf Wörtern aus dem Wörterbuch. Bitte notieren Sie sich diese und bewahren Sie sie sicher auf. Sie benötigen sie, um die Synchronisierung verschlüsselter Ordner auf Ihren anderen Geräten einzurichten. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - Um Ihre kryptografische Identität zu schützen, verschlüsseln wir sie mit einer Gedächtnisstütze von 12 Wörterbuchwörtern. Bitte notieren Sie sich diese und bewahren Sie sie auf. Sie werden benötigt, um Ihrem Konto weitere Geräte hinzuzufügen (z. B. Ihr Mobiltelefon oder Laptop). - - + Unable to connect to %1. Verbindung zu %1 kann nicht hergestellt werden. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Nicht markierte Ordner werden von Ihrem lokalen Dateisystem <b>entfernt</b> und werden auch nicht mehr auf diesem Rechner synchronisiert - - - Virtual file sync - Virtuelle Dateisynchronisierung - - + Warning Warnung + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. Sie können einen Ordner nicht mit Inhalten verschlüsseln, bitte Dateien entfernen. Warten Sie auf die neue Synchronisierung und verschlüsseln Sie sie dann. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? Dieser Ordner kann nicht verschlüsselt werden, da die Ende-zu-Ende-Verschlüsselung auf diesem Gerät noch nicht eingerichtet ist. Möchten Sie dies jetzt tun? + You need to accept the terms of service at %1. Die Nutzungsbedingungen unter %1 müssen bestätigt werden. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Sie scheinen die Funktion "Virtuelle Dateien" für diesen Ordner aktiviert zu haben. Im Moment ist es nicht möglich, virtuelle Dateien, die Ende-zu-Ende-verschlüsselt sind, implizit herunterzuladen. Um die beste Erfahrung mit virtuellen Dateien und Ende-zu-Ende-Verschlüsselung zu machen, stellen Sie sicher, dass der verschlüsselte Ordner mit "Immer lokal verfügbar machen" markiert ist. - + + + Apply + Anwenden + + + + Apply manual changes + Manuelle Änderungen anwenden + + + + + + Cancel + Abbrechen + + + + Connected with <server> as <user> + Verbunden mit <server> als <user> + + + + Connection settings + Verbindungseinstellungen + + + + Expand Memory + Speicher erweitern + + + + Standard file sync + Standard Dateisynchronisierung + + + + + Storage space: … + Speicherplatz: … + + + + Synchronize all + Alles synchronisieren + + + + Synchronize none + Nichts synchronisieren + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Nicht markierte Ordner werden von Ihrem lokalen Dateisystem <b>entfernt</b> und werden auch nicht mehr auf diesem Rechner synchronisiert + + + + Virtual file sync + Virtuelle Dateisynchronisierung + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Zugriff durch Server verboten. Um zu überprüfen, ob Sie über den richtigen Zugriff verfügen, <a href="%1">klicken Sie hier</a>, um mit Ihrem Browser auf den Dienst zuzugreifen. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. Die genehmigte Anfrage an den Server wurde an "%1" umgeleitet. Die URL ist fehlerhaft, der Server ist falsch konfiguriert. + There was an invalid response to an authenticated WebDAV request Es gab eine ungültige Antwort auf eine authentifizierte WebDAV-Anfrage @@ -939,46 +1056,57 @@ Möchten Sie dies jetzt tun? OCC::AccountState + Asking Credentials Zugangsdaten werden abgefragt + Configuration error Konfigurationsfehler + Connected Verbunden + Disconnected Getrennt + Maintenance mode Wartungsmodus + Need the user to accept the terms of service Der Benutzer muss die Nutzungsbedingungen akzeptieren + Network error Netzwerkfehler + Redirect detected Umleitung erkannt + Service unavailable Dienst nicht verfügbar + Signed out Abgemeldet + Unknown account state Unbekannter Konto-Zustand @@ -986,14 +1114,17 @@ Möchten Sie dies jetzt tun? OCC::ActivityListModel + Fetching activities … Aktivitäten abrufen… + For more activities please open the Activity app. Um weitere Aktivitäten anzusehen, bitte die Activity-App öffnen. + Network error occurred: client will retry syncing. Netzwerkfehler aufgetreten: Client startet die Synchronisation neu @@ -1001,34 +1132,42 @@ Möchten Sie dies jetzt tun? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Zertifikatsdateien (*.p12 *.pfx) + + + + Select a certificate + Zertifikat auswählen + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Ein verschlüsseltes pkcs12-Bundle wird dringend empfohlen, da eine Kopie in der Konfigurationsdatei gespeichert wird. + Browse … Durchsuchen … + Certificate & Key (pkcs12): Zertifikat & Schlüssel (pkcs12): - Certificate files (*.p12 *.pfx) - Zertifikatsdateien (*.p12 *.pfx) - - + Certificate password: Zertifikatspasswort: + SSL client certificate authentication SSL-Client-Zertifikat-Authentifizierung - Select a certificate - Zertifikat auswählen - - + This server probably requires a SSL client certificate. Der Server benötigt vermutlich ein SSL-Client-Zertifikat @@ -1036,32 +1175,39 @@ Möchten Sie dies jetzt tun? OCC::Application + %1 accounts number of accounts imported %1 Konten + %1 folders number of folders imported %1 Ordner + 1 account 1 Konto + 1 folder 1 Ordner + Continue Fortsetzen + Error accessing the configuration file Fehler beim Zugriff auf die Konfigurationsdatei + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1069,35 +1215,43 @@ Möchten Sie dies jetzt tun? %3 + Legacy import Import früherer Konfiguration + Quit Beenden + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Einige Einstellungen wurden in %1-Versionen dieses Clients konfiguriert und verwenden Funktionen, die in dieser Version nicht verfügbar sind.<br><br>Fortfahren bedeutet <b>%2 dieser Einstellungen</b>.<br><br>Die aktuelle Konfigurationsdatei wurde bereits auf <i>%3</i> gesichert. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Beim Zugriff auf die Konfigurationsdatei unter %1 ist ein Fehler aufgetreten. Stellen Sie sicher, dass Ihr Systemkonto auf die Datei zugreifen kann. + deleting Lösche + ignoring Ignoriere + newer newer software version Neuer + older older software version Älter @@ -1106,18 +1260,22 @@ Möchten Sie dies jetzt tun? OCC::AuthenticationDialog + &Password: &Passwort: + &Username: &Benutzername: + Authentication Required Authentifizierung erforderlich + Enter username and password for "%1" at %2. Benutzername und Passwort für "%1" auf %2 eingeben. @@ -1125,10 +1283,12 @@ Möchten Sie dies jetzt tun? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 Der verschlüsselte Ordner %2 konnte nicht entsperrt werden". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Falscher HTTP-Code vom Server zurückgegeben. Erwartet wird 204, jedoch "%1 %2" erhalten. @@ -1136,18 +1296,22 @@ Möchten Sie dies jetzt tun? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + File %1 can not be downloaded because of a local file name clash! Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden! + The file %1 is currently in use Die Datei %1 ist derzeit in Gebrauch + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Metadaten der neuen Datei %1 konnten nicht aktualisiert werden. @@ -1156,50 +1320,63 @@ Möchten Sie dies jetzt tun? OCC::BulkPropagatorJob + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Die Datei %1 kann nicht hochgeladen werden, da eine andere Datei mit demselben Namen, nur unterschiedlicher Groß-/Kleinschreibung, existiert + File %1 has invalid modification time. Do not upload to the server. Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. + File %1 has invalid modified time. Do not upload to the server. Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. + File Removed (start upload) %1 Datei entfernt (starte das Hochladen) %1 + File contains leading or trailing spaces and couldn't be renamed Dateiname enthält Leerzeichen am Anfang oder am Ende und konnte nicht umbenannt werden + + Local file changed during sync. Lokale Datei wurde während der Synchronisierung geändert. + Local file changed during syncing. It will be resumed. Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wieder aufgenommen. + Network error: %1 Netzwerkfehler: %1 + Restoration failed: %1 Wiederherstellung fehlgeschlagen: %1 + The file %1 is currently in use Die Datei %1 wird aktuell verwendet + The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. @@ -1207,30 +1384,37 @@ Möchten Sie dies jetzt tun? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Die Datei kann nicht umbenannt werden, da eine Datei mit demselben Namen bereits auf dem Server existiert. Bitte einen anderen Namen wählen. + Could not rename file. Please make sure you are connected to the server. Datei konnte nicht umbenannt werden. Bitte stellen Sie sicher, dass Sie mit dem Server verbunden sind. + Failed to fetch permissions with error %1 Berechtigungen konnten nicht abgerufen werden. Fehler: %1 + Filename contains leading and trailing spaces. Dateiname enthält Leerzeichen am Anfang und am Ende. + Filename contains leading spaces. Dateiname enthält Leerzeichen am Anfang. + Filename contains trailing spaces. Dateiname enthält Leerzeichen am Ende. + You don't have the permission to rename this file. Please ask the author of the file to rename it. Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich zum Umbenennen der Datei an deren Ersteller. @@ -1238,86 +1422,111 @@ Möchten Sie dies jetzt tun? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 unterstützt keine gleichen Dateinamen mit Unterschieden nur in der Groß- und Kleinschreibung. + + Filename contains illegal characters: %1 + Dateiname enthält unzulässige Zeichen: %1 + + + + Filename contains leading and trailing spaces. + Dateiname enthält Leerzeichen am Anfang und am Ende. + + + + Filename contains leading spaces. + Dateiname enthält Leerzeichen am Anfang. + + + + Filename contains trailing spaces. + Dateiname enthält Leerzeichen am Ende. + + + + Rename file + Datei umbenennen + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + Die Datei "%1" konnte aufgrund eines Konflikts (Groß- / Kleinschreibung) mit einer vorhandenen Datei auf diesem System nicht synchronisiert werden. + + + + Use invalid name + Ungültigen Namen verwenden + + + + 0 byte 0 Byte + Case Clash Conflict Konflikt mit der Groß- und Kleinschreibung + Case clashing file Datei mit dem Problem der Groß- und Kleinschreibung + Error Fehler + Existing file Vorhandene Datei - Filename contains illegal characters: %1 - Dateiname enthält unzulässige Zeichen: %1 - - - Filename contains leading and trailing spaces. - Dateiname enthält Leerzeichen am Anfang und am Ende. - - - Filename contains leading spaces. - Dateiname enthält Leerzeichen am Anfang. - - - Filename contains trailing spaces. - Dateiname enthält Leerzeichen am Ende. - - + New filename Neuer Dateiname + + Open clashing file Datei mit dem Problem der Groß- und Kleinschreibung öffnen + + Open existing file Existierende Datei öffnen + Please enter a new name for the clashing file: Bitte einen neuen Namen für die Datei mit dem Problem der Groß- und Kleinschreibung eingeben: - Rename file - Datei umbenennen - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - Die Datei "%1" konnte aufgrund eines Konflikts (Groß- / Kleinschreibung) mit einer vorhandenen Datei auf diesem System nicht synchronisiert werden. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. Die Datei konnte nicht synchronisiert werden, da diese einen Konflikt bezüglich Groß- und Kleinschreibung mit einer vorhandenen Datei auf diesem System erzeugt. - Use invalid name - Ungültigen Namen verwenden - - + file A Datei A + file B Datei B + + today Heute @@ -1325,6 +1534,7 @@ Möchten Sie dies jetzt tun? OCC::CleanupPollsJob + Error writing metadata to the database Fehler beim Schreiben der Metadaten in die Datenbank @@ -1332,27 +1542,33 @@ Möchten Sie dies jetzt tun? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: PIN des USB-Token-Zertifikats eingeben: + Enter E2E passphrase E2E-Passphrase eingeben + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" PIN-Code eingeben + Invalid PIN. Login failed Ungültige PIN. Anmeldung fehlgeschlagen + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Die Anmeldung am Token ist nach Eingabe der Benutzer-PIN fehlgeschlagen. Sie kann ungültig oder falsch sein. Bitte erneut versuchen! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Geben Sie Ihre Passphrase für Ende-zu-Ende-Verschlüsselung ein:<br><br>Benutzername: %2<br>Konto: %3<br> @@ -1360,66 +1576,87 @@ Möchten Sie dies jetzt tun? OCC::ConflictDialog - 0 byte - 0 Byte - - - <a href="%1">Open local version</a> - <a href="%1">Lokale Version öffnen</a> - - - <a href="%1">Open server version</a> - <a href="%1">Serverversion öffnen</a> - - - Click to open the file - Klicken, um die Datei zu öffnen - - - Conflicting versions of %1. - Konflikt-Versionen von %1. - - + Keep both versions Beide Versionen behalten + Keep local version Lokale Version behalten + + Keep selected version Ausgewählte Version behalten + Keep server version Serverversion behalten - Local version - Lokale Version - - + Open local version Lokale Version öffnen + Open server version Serverversion öffnen + + + 0 byte + 0 Byte + + + + <a href="%1">Open local version</a> + <a href="%1">Lokale Version öffnen</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Serverversion öffnen</a> + + + + + Click to open the file + Klicken, um die Datei zu öffnen + + + + + Conflicting versions of %1. + Konflikt-Versionen von %1. + + + + Local version + Lokale Version + + + Server version Serverversion + Sync Conflict Synchronisations-Konflikt + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Welche Version der Datei soll behalten werden?<br/>Wenn Sie beide Versionen wählen, wird der lokalen Datei eine Zahl am Ende des Dateinamens angefügt. + + today Heute @@ -1427,22 +1664,29 @@ Möchten Sie dies jetzt tun? OCC::ConflictSolver + Confirm deletion Löschen bestätigen + Do you want to delete the directory <i>%1</i> and all its contents permanently? Soll der Ordner <i>%1</i> und dessen Inhalte dauerhaft gelöscht werden? + Do you want to delete the file <i>%1</i> permanently? Soll die Datei <i>%1</i> dauerhaft gelöscht werden? + + Error Fehler + + Moving file failed: %1 @@ -1454,27 +1698,33 @@ Möchten Sie dies jetzt tun? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Authentifizierungsfehler: Benutzername oder Passwort ist falsch. + No %1 account configured The placeholder will be the application name. Please keep it Kein %1-Konto eingerichtet + Please update to the latest server and restart the client. Aktualisieren Sie auf die neueste Serverversion und starten Sie den Client neu. + The configured server for this client is too old Der konfigurierte Server ist für diesen Client zu alt + The provided credentials are not correct Die zur Verfügung gestellten Anmeldeinformationen sind nicht korrekt + Timeout Zeitüberschreitung @@ -1482,68 +1732,83 @@ Möchten Sie dies jetzt tun? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. + + + Agree Zustimmen + Form Formular + Settings Einstellungen - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://wl.hidrive.com/easy/0045'>Datenschutzrichtlinie</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Diese Anwendung verwendet Tracking-Technologien. Wenn Sie auf Zustimmen klicken, akzeptieren Sie die Verarbeitung Ihrer anonymisierten Daten. Sie können Ihre Auswahl jederzeit über die Einstellungen anpassen. <br/> <br/>Informationen zur Datenverarbeitung und mehr finden Sie in unserer <a href='https://static.hidrive.com/next/1001'>Datenschutzrichtlinie</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. + + + Back Zurück + Form Formular + Necessary data Erforderliche Daten + Required to ensure that the software can be used as expected Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. + Save Settings Einstellungen speichern + Send anonymous use Anonyme Nutzungsdaten senden + This helps us to optimize the software and to better identify system crashes and unexpected errors. Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Wir sammeln anonymisierte Daten, um unsere App zu optimieren. Dazu nutzen wir Softwarelösungen von verschiedenen Partnern. Wir möchten Ihnen volle Transparenz und Wahlfreiheit bezüglich der Erhebung und Verarbeitung Ihrer anonymisierten Nutzung geben. Sie können Ihre Einstellungen jederzeit unter dem Menüpunkt Datenschutz ändern. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Fehler beim Abbrechen des Löschens von %1 + Error while canceling deletion of a file Fehler beim Abbrechen des Löschens einer Datei @@ -1551,18 +1816,23 @@ Möchten Sie dies jetzt tun? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Einrichtungsfehler für verschlüsselte Metadaten! + Encrypted metadata setup error: initial signature from server is empty. Fehler bei der Einrichtung der verschlüsselten Metadaten: Die ursprüngliche Signatur vom Server ist leer. + Server error: PROPFIND reply is not XML formatted! Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Der Server hat eine unerwartete Antwort zurückgegeben, die nicht gelesen werden konnte. Bitte die Serveradministration kontaktieren." @@ -1570,22 +1840,27 @@ Möchten Sie dies jetzt tun? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Verzeichnis auf dem Client nicht zugreifbar, Berechtigung verweigert + Directory not found: %1 Ordner nicht gefunden: %1 + Error while opening directory %1 Fehler beim Öffnen des Ordners %1 + Error while reading directory %1 Fehler beim Lesen des Ordners %1 + Filename encoding is not valid Dateinamenkodierung ist ungültig @@ -1593,62 +1868,93 @@ Möchten Sie dies jetzt tun? OCC::EditLocallyJob + + + An error occurred during data retrieval. Es ist ein Fehler beim Datenabruf aufgetreten. + + An error occurred during setup. Es ist ein Fehler während der Einrichtung aufgetreten. + + An error occurred trying to synchronise the file to edit locally. Es ist ein Fehler beim Versuch, die Datei zu synchronisieren, um sie lokal zu bearbeiten, aufgetreten. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Datei zur lokalen Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass sie nicht durch die selektive Synchronisierung ausgeschlossen wird. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Datei zur lokalen Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist und lokal synchronisiert wird. + Could not find a remote file info for local editing. Make sure its path is valid. Remote-Dateiinformationen für die lokale Bearbeitung konnten nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist. + Could not open %1 %1 konnte nicht geöffnet werden + + + + + + + + Could not start editing locally. Lokale Bearbeitung konnte nicht gestartet werden. + File %1 already locked. Datei %1 bereits gesperrt. + File %1 could not be locked. Datei %1 konnte nicht gesperrt werden. + File %1 now locked. Datei %1 ist jetzt gesperrt. + Invalid local file path. Ungültiger lokaler Dateipfad. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Die Sperre dauert noch %1 Minuten. Sie können diese Datei auch manuell entsperren, sobald Sie mit der Bearbeitung fertig sind. + Please try again. Bitte erneut versuchen. + Server error: PROPFIND reply is not XML formatted! Serverantwort: PROPFIND-Antwort ist nicht im XML-Format! @@ -1656,10 +1962,12 @@ Möchten Sie dies jetzt tun? OCC::EditLocallyManager + Could not validate the request to open a file from server. Die Anforderung zum Öffnen einer Datei vom Server konnte nicht validiert werden. + Please try again. Bitte erneut versuchen. @@ -1667,26 +1975,34 @@ Möchten Sie dies jetzt tun? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Es ist ein Fehler beim Versuch, die Anfrage zur lokalen Bearbeitung zu überprüfen, aufgetreten. + Could not find an account for local editing. Es konnte kein Konto für die lokale Bearbeitung gefunden werden. + Could not start editing locally. Lokale Bearbeitung konnte nicht gestartet werden. + Invalid file path was provided. Ungültiger Dateipfad wurde angegeben. + Invalid token received. Ungültiges Token empfangen. + + + Please try again. Bitte erneut versuchen. @@ -1694,22 +2010,34 @@ Möchten Sie dies jetzt tun? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Fehler beim Abrufen der verschlüsselten Ordner-ID. + + + + + + Error fetching metadata. Fehler beim Abrufen der Metadaten. + + + Error locking folder. Fehler beim Sperren des Ordners. + Error parsing or decrypting metadata. Fehler beim Lesen oder Entschlüsseln von Metadaten. + Failed to upload metadata Metadaten konnten nicht hochgeladen werden @@ -1717,6 +2045,7 @@ Möchten Sie dies jetzt tun? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Die Metadaten für die Verschlüsselung konnten nicht generiert werden. Entsperren des Ordners. @@ -1726,6 +2055,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1734,6 +2064,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 hour(s) ago hours elapsed since file last modified @@ -1742,6 +2073,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 minute(s) ago minutes elapsed since file last modified @@ -1750,6 +2082,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 month(s) ago months elapsed since file last modified @@ -1758,6 +2091,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 second(s) ago seconds elapsed since file last modified @@ -1766,6 +2100,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 year(s) ago years elapsed since file last modified @@ -1774,6 +2109,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1785,22 +2121,28 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. Beim Versuch, auf den Server zuzugreifen, ist ein unerwarteter Fehler aufgetreten. Bitte später erneut versuchen, oder an die Serveradministration wenden, falls das das Problem weiterhin besteht. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. Die zurückgegebene Server-URL beginnt nicht mit HTTPS, obwohl die Anmelde-URL mit HTTPS beginnt. Die Anmeldung ist nicht möglich, da dies ein Sicherheitsproblem darstellen könnte. Bitte wenden Sie sich an Ihre Administration. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Der Server hat nicht mit den erwarteten Daten geantwortet. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Der Server ist vorübergehend nicht verfügbar, da er sich im Wartungsmodus befindet. Bitte erneut versuchen, sobald die Wartung abgeschlossen ist. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Die Serverantwort konnte nicht analysiert werden.. Bitte später erneut versuchen eine Verbindung herzustellen, oder an die Serveradministration wenden, falls das Problem weiterhin besteht. @@ -1808,38 +2150,48 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. OCC::Flow2AuthWidget + Copy Link Link kopieren + + Error Fehler + Link copied to clipboard. Link in die Zwischenablage kopiert. + Open Browser Im Browser öffnen + Polling for authorization Abruf der Autorisierung + Starting authorization Starte Autorisierung + Switch to your browser to connect your account Wechseln Sie zu Ihrem Browser, um Ihr Konto zu verbinden + Unable to open the Browser, please copy the link to your Browser. Der Browser kann nicht geöffnet werden. Bitte kopieren Sie den Link in Ihren Browser. + Waiting for authorization Warte auf Autorisierung @@ -1847,6 +2199,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. OCC::Folder + %1 and %n other file(s) are currently locked. %1 und %n andere Datei sind aktuell gesperrt. @@ -1854,6 +2207,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 und %n weitere Datei konnten aufgrund von Fehlern nicht synchronisiert werden. Schauen Sie in das Protokoll für Details. @@ -1861,6 +2215,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 and %n other file(s) have been added. %1 und %n andere Datei wurden hinzugefügt. @@ -1868,6 +2223,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 and %n other file(s) have been removed. %1 und %n andere Datei wurden gelöscht. @@ -1875,6 +2231,7 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 and %n other file(s) have been updated. %1 und %n andere Datei wurde aktualisiert. @@ -1882,14 +2239,17 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 could not be synced due to an error. See the log for details. %1 konnte aufgrund eines Fehlers nicht synchronisiert werden. Details finden Sie im Protokoll. + %1 has a sync conflict. Please check the conflict file! Es gab einen Konflikt bei der Synchronisierung von %1. Bitte prüfen Sie die Konfliktdatei! + %1 has and %n other file(s) have sync conflicts. %1 und %n andere Datei haben Konflikte beim Abgleichen. @@ -1897,11 +2257,13 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 has been added. %1 names a file. %1 wurde hinzugefügt. + %1 has been moved to %2 and %n other file(s) have been moved. %1 wurde in %2 verschoben und %n andere Datei wurde verschoben. @@ -1909,15 +2271,18 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 has been moved to %2. %1 wurde in %2 verschoben. + %1 has been removed. %1 names a file. %1 wurde entfernt. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 wurde in %2 umbenannt und %n andere Datei wurde umbenannt. @@ -1925,30 +2290,36 @@ Dies kann ein Problem mit Ihren OpenSSL-Bibliotheken sein. + %1 has been renamed to %2. %1 and %2 name files. %1 wurde in %2 umbenannt. + %1 has been updated. %1 names a file. %1 wurde aktualisiert. + %1 is currently locked. %1 ist aktuell gesperrt. + A folder from an external storage has been added. Ein Ordner von einem externen Speicher wurde hinzugefügt. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Ein Ordner hat die festgelegte Ordnergrößenbeschränkung von %1 MB überschritten: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1957,6 +2328,7 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1965,10 +2337,12 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + A new folder larger than %1 MB has been added: %2. Ein neuer Ordner größer als %1 MB wurde hinzugefügt: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1981,70 +2355,87 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe %1 + Could not read system exclude file Systemeigene Ausschlussdatei kann nicht gelesen werden + Keep syncing Weiterhin synchronisieren + Please choose a different location. %1 isn't a readable folder. Bitte wählen Sie einen anderen Speicherort. %1 ist kein lesbarer Ordner. + Please choose a different location. %1 isn't a valid folder. Bitte wählen Sie einen anderen Speicherort. %1 ist kein gültiger Ordner. + Please choose a different location. The folder %1 doesn't exist. Bitte wählen Sie einen anderen Speicherort. Der Ordner %1 ist nicht vorhanden. + Please go in the settings to select it if you wish to download it. Bitte wechseln Sie zu den Einstellungen, falls Sie den Ordner herunterladen möchten. + Proceed with Deletion Mit der Löschung fortfahren + Remove all files? Alle Dateien entfernen? + Restore Files from Server Dateien vom Server wiederherstellen + Restore Files to Server Dateien auf dem Server wiederherstellen + Stop syncing Synchronisation stoppen + Sync Activity Synchronisierungsaktivität + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Die Datei % 1 wurde erstellt, jedoch bereits zuvor von der Synchronisierung ausgeschlossen. Sie wird nicht synchronisiert werden. + The folder %1 has surpassed the set folder size limit of %2MB. Der Ordner %1 hat die festgelegte Größenbeschränkung von %2 MB überschritten. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. Der Ordner %1 wurde erstellt, wurde jedoch zuvor von der Synchronisierung ausgeschlossen. Die darin enthaltenen Daten werden nicht synchronisiert. + Virtual file download failed with code "%1", status "%2" and error message "%3" Der Download der virtuellen Datei ist mit dem Code "%1", dem Status "%2" und der Fehlermeldung "%3" fehlgeschlagen. + Would you like to stop syncing this folder? Soll die Synchronisierung dieses Ordners gestoppt werden? @@ -2052,26 +2443,32 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe OCC::FolderCreationDialog + %1 Create new folder %1 Neuen Ordner erstellen + Could not create a folder! Check your write permissions. Ordner konnte nicht erstellt werden! Prüfen Sie die Schreibberechtigungen. + + Error + Fehler + + + Create new folder Neuen Ordner erstellen + Enter folder name Ordnernamen eingeben - Error - Fehler - - + Folder already exists Ordner existiert bereits @@ -2079,108 +2476,136 @@ Dies bedeutet, dass der Synchronisierungs-Client lokale Änderungen möglicherwe OCC::FolderMan + %1 (Sync is paused) %1 (Synchronisierung ist pausiert) + (backup %1) (Sicherung %1) + (backup) (Sicherung) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Ein altes Synchronisierungsprotokoll "%1" wurde gefunden, konnte jedoch nicht entfernt werden. Bitte stellen Sie sicher, dass keine Anwendung es verwendet. + Could not reset folder state Konnte Ordner-Zustand nicht zurücksetzen + Last sync was successful. Die letzte Synchronisierung war erfolgreich. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Bitte wählen Sie einen anderen Speicherort. %1 wird bereits als Synchronisierungsordner für %2 verwendet. + + Please choose a different location. %1 is already being used as a sync folder. Bitte wählen Sie einen anderen Speicherort. %1 wird bereits als Synchronisationsordner verwendet. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Bitte wählen Sie einen anderen Speicherort. %1 ist bereits in einem Ordner enthalten, der als Synchronisierungsordner verwendet wird. + Please choose a different location. The path %1 doesn't exist. Bitte wählen Sie einen anderen Speicherort. Der Pfad %1 existiert nicht. + Please choose a different location. The path %1 isn't a folder. Bitte wählen Sie einen anderen Speicherort. Der Pfad %1 ist kein Ordner. + Please choose a different location. The selected folder isn't valid. Bitte wählen Sie einen anderen Speicherort. Der ausgewählte Ordner ist ungültig. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Bitte wählen Sie einen anderen Speicherort. Sie haben nicht genügend Berechtigungen, um in %1 zu schreiben. + Preparing for sync. Synchronisierung wird vorbereitet. + Setup error. Einrichtungsfehler. + Sync finished with unresolved conflicts. Synchronisierung mit ungelösten Konflikten beendet. + Sync is paused. Synchronisierung ist pausiert. + Sync is running. Synchronisierung läuft. + Sync request was cancelled. Synchronisierungsanfrage wurde abgebrochen. + Syncing %1 Synchronisiere %1 + Syncing %1 (%2 left) Synchronisiere %1 (%2 übrig) + Syncing %1 (A few seconds left) Synchronisiere %1 (ein paar Sekunden übrig) + Syncing %1 of %2 Synchronisiere %1 von %2 + Syncing %1 of %2 (%3 left) Synchronisiere %1 von %2 (%3 übrig) + Syncing %1 of %2 (A few seconds left) Synchronisiere %1 von %2 (ein paar Sekunden übrig) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2191,10 +2616,12 @@ So beheben Sie dieses Problem: Entfernen Sie %1 von einem der Konten und erstell Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass sich mehrere Synchronisierungsdatenbankdateien in einem Ordner befinden. Suchen Sie in %1 nach veralteten und nicht verwendeten .sync_*.db-Dateien und entfernen Sie diese. + Undefined state. Undefinierter Zustand. + Waiting to start syncing. Wartet auf Beginn der Synchronisierung. @@ -2202,14 +2629,17 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderStatusDelegate + Add Folder Sync Ordner Sync hinzufügen + File Datei + Synchronize any other local folder with your %1 Synchronisieren Sie jeden anderen lokalen Ordner mit Ihrem %1 @@ -2217,113 +2647,141 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 von %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 of %2, Datei %3 von %4 + %5 left, %1 of %2, file %3 of %4 %5 übrig, %1 von %2, Datei %3 von %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Noch ein paar Sekunden, %1 von %2, Datei %3 von %4 + About to start syncing Die Synchronisierung beginnt + Checking for changes in local "%1" Nach Änderungen in lokalem "%1" suchen + Checking for changes in remote "%1" Nach Änderungen in entfernten "%1" suchen + Click this button to add a folder to synchronize. Wählen Sie diese Schaltfläche, um einen zu synchronisierenden Ordner hinzuzufügen. + Could not decrypt! Konnte nicht entschlüsseln! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) %1/s herunterladen + Error while loading the list of folders from the server. Fehler beim Empfang der Ordnerliste vom Server. + Fetching folder list from server … Rufe Ordnerliste vom Server ab … + File %1 of %2 Datei %1 von %2 + Preparing to sync … Synchronisierung wird vorbereitet … + Signed out Abgemeldet + Synchronizing files in local folder Dateien im lokalen Ordner synchronisieren + Synchronizing virtual files in local folder Virtuelle Dateien im lokalen Ordner synchronisieren + Syncing local and remote changes Synchronisieren von lokalen und Remote-Änderungen + There are unresolved conflicts. Click for details. Es existieren ungelöste Konflikte. Für Details klicken. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) %1/s hochladen + Virtual file support is enabled. Unterstützung für virtuelle Dateien ist aktiviert. + Waiting for %n other folder(s) … Warte auf %n anderen Ordner … @@ -2331,14 +2789,17 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass + You need to be connected to add a folder Sie müssen verbunden sein, um einen Ordner hinzuzufügen + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2346,6 +2807,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWatcher + The watcher did not receive a test notification. Der Beobachter hat keine Testbenachrichtigung erhalten. @@ -2353,6 +2815,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Dieses Problem tritt zumeist auf, wenn die Inotify-Zähler voll sind. Details finden Sie im FAQ. @@ -2360,10 +2823,12 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizard + Add Folder Sync Connection Ordner-Synchronisierung hinzufügen + Add Sync Connection Synchronisierung hinzufügen @@ -2371,30 +2836,37 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizardLocalPath + Add Folder Sync Ordner Sync hinzufügen + Choose Wählen Sie + Click to select a local folder to sync. Hier klicken, um einen lokalen Ordner zum Synchronisieren auszuwählen. + Enter the path to the local folder. Pfad zum lokalen Ordner eingeben + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Wählen Sie einen Ordner auf Ihrer Festplatte, der dauerhaft mit Ihrem %1 verbunden sein soll. Alle Dateien und Unterordner werden automatisch hochgeladen und synchronisiert. + Select the source folder Quellordner auswählen + Step 1 of 3: Select local folder Schritt 1 von 3: Lokalen Ordner auswählen @@ -2402,62 +2874,78 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizardRemotePath + Add Folder Sync Ordner Sync hinzufügen + Authentication failed accessing %1 Beim Zugriff auf %1 ist die Authentifizierung fehlgeschlagen + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Beide Ordner sind dauerhaft miteinander verknüpft und die jeweiligen Inhalte werden automatisch synchronisiert und aktualisiert. + Choose this to sync the entire account Wählen Sie dies, um das gesamte Konto zu synchronisieren + Create Remote Folder Entfernten Ordner erstellen + Create folder Ordner erstellen + Enter the name of the new folder to be created below "%1": Geben Sie den Namen des neuen, unter "%1" zu erstellenden Ordners ein: + Failed to create the folder on %1. Please check manually. Der Ordner konnte nicht auf %1 erstellt werden. Bitte prüfen Sie dies manuell. + Failed to list a folder. Error: %1 Ordner konnte nicht gelistet werden. Fehler: %1 + Folder was successfully created on %1. Ordner auf %1 erstellt. + + Please choose a different location. %1 is already being synced to %2. Bitte wählen Sie einen anderen Speicherort. %1 wird bereits mit %2 synchronisiert. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Bitte wählen oder erstellen Sie nun einen Zielordner in Ihrem %1, in den der Inhalt hochgeladen und synchronisiert werden soll. + Refresh Aktualisieren + Step 2 of 3: Directory in your %1 Schritt 2 von 3: Verzeichnis in Ihrem %1 + You are already syncing the subfolder %1 at %2. Sie synchronisieren bereits den Unterordner %1 bei %2. @@ -2465,26 +2953,36 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::FolderWizardSelectiveSync + + + (experimental) (experimentell) + Add Folder Sync Ordner Sync hinzufügen + Step 3 of 3: Selektive Synchronisation Schritt 3 von 3: Selektive Synchronisierung + + + Use virtual files instead of downloading content immediately %1 Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 + Virtual files are not supported at the selected location Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. @@ -2492,22 +2990,7 @@ Für fortgeschrittene Benutzer: Dieses Problem kann damit zusammenhängen, dass OCC::GeneralSettings - &Analysis data collection for needs-based design - &Analyse der Datenerhebung für bedarfsgerechte Gestaltung - - - &Automatically check for updates - &Automatisch auf Aktualisierungen prüfen - - - &Launch on System Startup - Beim &Systemstart starten - - - &Restart && Update - &Neustarten && aktualisieren - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2519,6 +3002,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2528,211 +3012,282 @@ Downgrading versions is not possible immediately: changing from stable to enterp Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf Stabil bedeutet, dass man auf die neue stabile Version warten muss. + + Cancel + Abbrechen + + + + Change update channel + Update-Kanal ändern + + + + Changing update channel? + Update-Kanal ändern? + + + + Debug Archive Created + Debug-Archiv erstellt + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + Informationen, die als vertraulich gelten, vor der Weitergabe redigieren! Debug-Archiv erstellt unter %1 + + + + Restore to &%1 + Wiederherstellen auf &%1 + + + + Server notifications that require attention. + Server-Benachrichtigungen, die Aufmerksamkeit erfordern. + + + + Show call notification dialogs. + Dialog zu Anrufbenachrichtigungen anzeigen + + + + Show chat notification dialogs. + Dialog zu Chat-Benachrichtigungen anzeigen + + + + Show notification when quota usage exceeds 80%. + Benachrichtigung anzeigen, wenn die Kontingentauslastung 80% übersteigt. + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + Der Kanal bestimmt, welche Aktualisierungen zur Installation angeboten werden: +- Stabil: enthält getestete Versionen, die als zuverlässig gelten + + + + You cannot disable autostart because system-wide autostart is enabled. + Sie können den Autostart nicht deaktivieren, da der systemweite Autostart aktiviert ist. + + + + Zip Archives + Zip-Archive + + + + daily + Täglich + + + + enterprise + Unternehmensversion + + + + &Automatically check for updates + &Automatisch auf Aktualisierungen prüfen + + + + &Launch on System Startup + Beim &Systemstart starten + + + + &Restart && Update + &Neustarten && aktualisieren + + + Advanced Erweitert + Ask for confirmation before synchronizing external storages Bestätigung erfragen, bevor externe Speicher synchronisiert werden + Ask for confirmation before synchronizing new folders larger than Um eine Bestätigung bitten, bevor Sie neue Ordner synchronisieren, die größer sind als + Automatically disable synchronisation of folders that overcome limit Automatisch die Synchronisierung von Ordnern beenden, die das Limit überschreiten - Cancel - Abbrechen - - - Change update channel - Update-Kanal ändern - - - Changing update channel? - Update-Kanal ändern? - - + + Check Now Jetzt prüfen + + Create Debug Archive Debug-Archiv erstellen + Data Protection Datenschutzbestimmungen - Debug Archive Created - Debug-Archiv erstellt - - + Desktop client x.x.x Desktop-Client x.x.x + Edit &Ignored Files I&gnorierte Dateien bearbeiten + For System Tray Für das Systembenachrichtungsfeld + General Settings Allgemeine Einstellungen + + Legal Notice Impressum + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Mehr Informationen + Move removed files to trash Entfernte Dateien in den Papierkorb verschieben + Necessary data Erforderliche Daten + Notify when synchronised folders grow larger than specified limit Benachrichtigen, wenn synchronisierte Ordner größer werden als das angegebene Limit + Open Source Software Open-Source-Software + Privacy Policy Datenschutzerklärung - Redact information deemed sensitive before sharing! Debug archive created at %1 - Informationen, die als vertraulich gelten, vor der Weitergabe redigieren! Debug-Archiv erstellt unter %1 - - + Required to ensure that the software can be used as expected Erforderlich, um sicherzustellen, dass die Software wie erwartet verwendet werden kann. + Restore &Default &Standard wiederherstellen - Restore to &%1 - Wiederherstellen auf &%1 - - + Send anonymous use Anonyme Nutzungsdaten senden - Server notifications that require attention. - Server-Benachrichtigungen, die Aufmerksamkeit erfordern. - - + Server poll interval Serverabrufintervall + Show &Quota Warning Notifications Benachrichtigung für &Kontingentwarnung anzeigen + Show Call Notifications Anrufbenachrichtigungen anzeigen + Show Chat Notifications Chat-Benachrichtigungen anzeigen + Show Server &Notifications Server&benachrichtigungen anzeigen - Show call notification dialogs. - Dialog zu Anrufbenachrichtigungen anzeigen - - - Show chat notification dialogs. - Dialog zu Chat-Benachrichtigungen anzeigen - - - Show notification when quota usage exceeds 80%. - Benachrichtigung anzeigen, wenn die Kontingentauslastung 80% übersteigt. - - + Show sync folders in &Explorer's navigation pane Synchronisierungsordner im Navigationsbereich des &Explorers anzeigen - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - Der Kanal bestimmt, welche Aktualisierungen zur Installation angeboten werden: -- Stabil: enthält getestete Versionen, die als zuverlässig gelten - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Dies hilft uns, die Software zu optimieren und Systemabstürze und unerwartete Fehler besser zu erkennen. + Update channel Update-Kanal + Updates Aktualisierungen + Usage Documentation Bedienungsanleitung + Use &Monochrome Icons &Monochrome Symbole verwenden - You cannot disable autostart because system-wide autostart is enabled. - Sie können den Autostart nicht deaktivieren, da der systemweite Autostart aktiviert ist. - - - Zip Archives - Zip-Archive - - + + beta Beta - daily - Täglich - - - enterprise - Unternehmensversion - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) Sekunden (Wenn <a href="https://github.com/nextcloud/notify_push">Client Push</a> nicht verfügbar ist) + + stable Stabil @@ -2740,22 +3295,27 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf OCC::GETFileJob + Connection Timeout Zeitüberschreitung der Verbindung + No E-Tag received from server, check Proxy/Gateway Kein E-Tag vom Server empfangen, bitte Proxy/Gateway überprüfen + Server returned wrong content-range Server hat falschen Bereich für den Inhalt zurückgegeben + We received a different E-Tag for resuming. Retrying next time. Es wurde ein unterschiedliches E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen. + We received an unexpected download Content-Length. Wir haben eine unerwartete Download-Content-Länge erhalten. @@ -2763,6 +3323,7 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2771,14 +3332,17 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf %1 + Password for share required Passwort für die Freigabe erforderlich + Please enter a password for your link share: Bitte Passwort für die Linkfreigabe eingeben: + Sharing error Fehler beim Teilen @@ -2786,18 +3350,22 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Hier klicken</a>, um von der Web-Oberfläche ein App-Passwort zu erhalten. + Enter Password Passwort eingeben + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Bitte %1 Passwort:<br><br>Benutzername: %2<br>Konto: %3<br>eingeben + Reading from keychain failed with error: "%1" Lesen vom Schlüsselbund fehlgeschlagen mit Fehler: "%1" @@ -2805,49 +3373,50 @@ Ein Downgrade von Versionen ist nicht sofort möglich: Der Wechsel von Beta auf OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Dieser Eintrag wird vom System auf "%1" bereitgestellt und kann in dieser Ansicht nicht geändert werden. + + + Files Ignored by Patterns Nach Muster ignorierte Dateien + Global Ignore Settings Globale Ignorier-Einstellungen + Ignored Files Editor Editor für ignorierte Dateien + Sync hidden files Synchronisiere versteckte Dateien - - This entry is provided by the system at "%1" and cannot be modified in this view. - Dieser Eintrag wird vom System auf "%1" bereitgestellt und kann in dieser Ansicht nicht geändert werden. - - + OCC::IgnoreListTableWidget - Add - Hinzufügen - - + Add a new ignore pattern: Neues Ignoriermuster hinzufügen - Allow Deletion - Löschen erlauben - - + Cannot write changes to "%1". Konnte Änderungen nicht in "%1" schreiben. + Could not open file Datei konnte nicht geöffnet werden + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2856,18 +3425,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen eines Ordners verhindern würden. Dies ist nützlich für Metadaten. + Ignore Pattern Muster ignorieren + + Add + Hinzufügen + + + + Allow Deletion + Löschen erlauben + + + Pattern Muster + Remove Entfernen + Remove all Alle entfernen @@ -2875,109 +3458,135 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Die Datei kann nicht umbenannt werden, da eine Datei mit demselben Namen bereits auf dem Server existiert. Bitte wählen Sie einen anderen Namen. + Checking rename permissions … Prüfe Umbenennungsrechte … + Could not rename file. Please make sure you are connected to the server. Datei konnte nicht umbenannt werden. Bitte stellen Sie sicher, dass Sie mit dem Server verbunden sind. + Could not rename local file. %1 Lokale Datei konnte nicht umbenannt werden. %1 - Error - Fehler - - + Failed to fetch permissions with error %1 Rechte konnten nicht abgerufen werden. Fehler: %1 + Filename contains illegal characters: %1 Dateiname enthält unzulässige Zeichen: %1 - Filename contains leading and trailing spaces. - Dateiname enthält Leerzeichen am Anfang und am Ende. - - - Filename contains leading spaces. - Dateiname enthält Leerzeichen am Anfang. - - - Filename contains trailing spaces. - Dateiname enthält Leerzeichen am Ende. - - - Invalid filename - Ungültiger Dateiname + + Filename contains leading and trailing spaces. + Dateiname enthält Leerzeichen am Anfang und am Ende. - New filename - Neuer Dateiname + + Filename contains leading spaces. + Dateiname enthält Leerzeichen am Anfang. - Please enter a new name for the file: - Bitte geben Sie einen neuen Namen für die Datei ein: + + Filename contains trailing spaces. + Dateiname enthält Leerzeichen am Ende. + Rename file Datei umbenennen + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf dem Server unzulässig sind. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Die Datei "%1" konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. - The file could not be synced because it contains characters which are not allowed on this system. - Die Datei konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. - - + The following basenames are not allowed: %1 Die folgenden Basisnamen sind nicht erlaubt: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces Die folgenden Zeichen sind auf dem System nicht zulässig: \ / : ? * " < > | führende/nachgestellte Leerzeichen + The following characters are not allowed: %1 Die folgenden Zeichen sind nicht erlaubt: %1 + The following file extensions are not allowed: %1 Die folgenden Dateierweiterungen sind nicht erlaubt: %1 + The following filenames are not allowed: %1 Die folgenden Dateinamen sind nicht erlaubt: %1 + Use invalid name Ungültigen Namen verwenden + You don't have the permission to rename this file. Please ask the author of the file to rename it. Sie haben nicht die Berechtigung, diese Datei umzubenennen. Bitte wenden Sie sich an den Autor der Datei, um sie umzubenennen. - + + + Error + Fehler + + + + Invalid filename + Ungültiger Dateiname + + + + New filename + Neuer Dateiname + + + + Please enter a new name for the file: + Bitte geben Sie einen neuen Namen für die Datei ein: + + + + The file could not be synced because it contains characters which are not allowed on this system. + Die Datei konnte nicht synchronisiert werden, da der Name Zeichen enthält, die auf diesem System nicht zulässig sind. + + OCC::LegacyAccountSelectionDialog + Legacy import Legacy-Import + Select the accounts to import from the legacy configuration: Bitte die Konten auswählen, die aus der alten Konfiguration importiert werden sollen: @@ -2985,18 +3594,23 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Lizensiert unter der GNU General Public License (GPL) Version 2.0 oder jeder neueren Version.</p> + Close Schliessen + + Legal notice Impressum @@ -3004,18 +3618,22 @@ Objekte, die gelöscht werden dürfen, werden gelöscht, wenn sie das Löschen e OCC::LogBrowser + Enable logging to temporary folder Protokollierung in temporären Ordner aktivieren + Log Output Protokoll-Ausgabe + Open folder Ordner öffnen + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3024,6 +3642,7 @@ Da die Protokolldateien sehr groß werden können, erstellt der Client für jede Wenn aktiviert, werden die Protokolle nach %1 geschrieben. + This setting persists across client restarts. Note that using any logging command line options will override this setting. Diese Einstellung bleibt über Client-Neustarts hinweg bestehen. @@ -3033,10 +3652,14 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Datei "%1"<br/>kann nicht zum Schreiben geöffnet werden.<br/><br/>Die Protokolldatei kann <b>nicht</b> gespeichert werden!</nobr> + + Error Fehler @@ -3044,26 +3667,32 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Es ist ein Fehler während der Einrichtung aufgetreten. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Eine Datei für die lokale Bearbeitung konnte nicht gefunden werden. Stellen Sie sicher, dass der Pfad gültig ist und die Datei lokal synchronisiert wird. + Could not get file ID. Datei-ID konnte nicht abgerufen werden. + Could not get file identifier. Dateikennung konnte nicht abgerufen werden. + Could not start editing locally. Lokale Bearbeitung konnte nicht gestartet werden. + The file identifier is empty. Dateikennung ist leer @@ -3071,117 +3700,150 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::NetworkSettings - Download Bandwidth - Download-Bandbreite - - + HTTP(S) proxy HTTP(S)-Proxy - Host - Host - - + Hostname of proxy server Hostname des Proxy-Servers + + Password for proxy server + Passwort für den Proxy-Server + + + + SOCKS5 proxy + SOCKS5-Proxy + + + + Username for proxy server + Benutzername für den Proxy-Server + + + + Download Bandwidth + Download-Bandbreite + + + + Host + Host + + + + KBytes/s KBytes/s + + Limit automatically Automatisch begrenzen + + Limit to Begrenzen auf + + Limit to 3/4 of estimated bandwidth Auf 3/4 der geschätzten Bandbreite begrenzen + Manually specify proxy Proxy manuell festlegen + + No limit Keine Begrenzung + No proxy Kein Proxy + Note: proxy settings have no effects for accounts on localhost Hinweis: Proxy-Einstellungen haben keine Auswirkungen für Konten auf localhost - Password for proxy server - Passwort für den Proxy-Server - - + Proxy Settings Proxy-Einstellungen + Proxy server requires authentication Proxy-Server erfordert eine Authentifizierung - SOCKS5 proxy - SOCKS5-Proxy - - + Upload Bandwidth Upload-Bandbreite + Use system proxy System-Proxy verwenden - - Username for proxy server - Benutzername für den Proxy-Server - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Eine neue Version des %1 - Clients ist verfügbar, aber die Aktualisierung ist fehlgeschlagen.</p><p><b>%2</b> wurde heruntergeladen. Die installierte Version ist %3. Wenn Sie Neustart und Aktualisieren bestätigen, wird Ihr Computer möglicherweise neu gestartet, um die Installation abzuschließen.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Eine neue Version des %1 - Clients ist verfügbar.</p><p><b>%2</b> steht zum Herunterladen bereit. Die installierte Version ist %3.</p> + Ask again later Versuchen Sie es später erneut + Get update Aktualisierung durchführen + New Version Available Eine neue Version ist verfügbar + Restart and update Neu starten und aktualisieren + Skip this time Dieses Mal überspringen + Update Failed Aktualisierung fehlgeschlagen + Update manually Manuell aktualisieren @@ -3189,58 +3851,72 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OCUpdater + %1 available. Restart application to start the update. %1-Version verfügbar. Anwendung zum Start der Aktualisierung neustarten. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Eine neue Aktualisierung für %1 wird installiert. Während des Aktualisierungsvorgangs werden Sie eventuell aufgefordert, zusätzliche Berechtigungen zu gewähren. Ihr Computer wird möglicherweise neu gestartet, um die Installation abzuschließen. + Checking update server … Aktualisierungsserver wird überprüft … + Could not check for new updates. Auf neue Aktualisierungen kann nicht geprüft werden. + Could not download update. Please open %1 to download the update manually. Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie %1, um die Aktualisierung manuell herunterzuladen. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Aktualisierung kann nicht heruntergeladen werden. Bitte öffnen Sie <a href='%1'>%1</a>, um die Aktualisierung manuell herunterzuladen. + Downloading %1 … Lade %1 herunter … + New %1 is available. Please open %2 to download the update. Neue Version von %1 vorhanden. Bitte öffnen Sie %2, um die Aktualisierung herunterzuladen. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. Neue Version von %1 vorhanden. Bitte öffnen Sie <a href='%2'>%2</a>, um die Aktualisierung herunterzuladen. + New %1 update ready Neue %1 Aktualisierung verfügbar + No updates available. Your installation is the latest version. Keine Aktualisierungen verfügbar. Ihre Installation ist die neueste Version. + Update Check Aktualitätsprüfung + Update status is unknown: Did not check for new updates. Aktualisierungsstatus unbekannt: Auf neue Aktualisierungen wurde nicht geprüft. + You are using the %1 update channel. Your installation is the latest version. Sie verwenden den Update-Kanal %1. Ihre Installation ist die neueste Version. @@ -3248,55 +3924,72 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 Ordner "%2" wird mit dem lokalen Ordner "%3" synchronisiert + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 freier Platz + + (%1) (%1) + + (experimental) (experimentell) + Connect Verbinden + In Finder's "Locations" sidebar section In der Finder-Seitenleiste unter "Orte" + Local Sync Folder Lokaler Ordner für die Synchronisierung + Sync the folder "%1" Ordner "%1" synchronisieren + There isn't enough free space in the local folder! Nicht genug freier Platz im lokalen Ordner vorhanden! + + Use &virtual files instead of downloading content immediately %1 &Virtuelle Dateien verwenden, anstatt den Inhalt sofort herunterzuladen %1 + Virtual files are not supported at the selected location Virtuelle Dateien werden an dem ausgewählten Speicherort nicht unterstützt + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuelle Dateien werden für die Wurzel von Windows-Partitionen als lokaler Ordner nicht unterstützt. Bitte wählen Sie einen gültigen Unterordner unter dem Laufwerksbuchstaben. + Warning: The local folder is not empty. Pick a resolution! Achtung: Der lokale Ordner ist nicht leer. Bitte wählen Sie eine entsprechende Lösung! @@ -3304,26 +3997,32 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Sichere Verbindung zur Serveradresse <em>%1</em> fehlgeschlagen. Wie wollen Sie fortfahren?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Verbindung mit der angegebenen sicheren Serveradresse fehlgeschlagen. Wie möchten Sie fortfahren?</p></body></html> + Configure client-side TLS certificate Clientseitiges TLS-Zertifikat konfigurieren. + Connection failed Verbindung fehlgeschlagen + Retry unencrypted over HTTP (insecure) Unverschlüsselt über HTTP versuchen (unsicher) + Select a different URL Andere URL wählen @@ -3331,71 +4030,88 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Konto %1: %2 + Account synchronization is disabled Konto-Synchronisierung ist deaktiviert + Checking for changes in local "%1" Nach Änderungen in lokalem "%1" suchen + Checking for changes in remote "%1" Nach Änderungen in entfernten "%1" suchen + Disconnected from %1 Von %1 getrennt + Disconnected from accounts: Verbindungen zu Konten getrennt: + Please sign in Bitte melden Sie sich an + Terms of service Nutzungsbedingungen + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. Der Server auf Konto %1 verwendet die nicht unterstützte Version %2. Die Verwendung dieses Clients mit nicht unterstützten Serverversionen ist ungetestet und potenziell gefährlich. Die Verwendung erfolgt auf eigene Gefahr. + There are no sync folders configured. Es wurden keine Synchronisierungsordner konfiguriert. + Unsupported Server Version Nicht unterstütze Serverversion + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Für Ihr Konto %1 müssen Sie die Nutzungsbedingungen Ihres Servers akzeptieren. Sie werden weitergeleitet an %2, um zu bestätigen, dass Sie die Nutzungsbedingungen gelesen haben und damit einverstanden sind. + macOS VFS for %1: A problem was encountered. macOS VFS für %1: Es ist ein Problem aufgetreten. + macOS VFS for %1: Last sync was successful. macOS VFS für %1: Letzte Synchronisierung war erfolgreich. + macOS VFS for %1: Sync is running. macOS VFS für %1: Synchronisierung läuft. @@ -3403,14 +4119,17 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudHttpCredsPage + &Email &E-Mail + Connect to %1 Verbinden mit %1 + Enter user credentials Geben Sie Ihre Benutzer-Anmeldeinformationen ein @@ -3418,6 +4137,8 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Es ist nicht möglich, die Änderungszeit für die in Konflikt stehende Datei abzurufen %1 @@ -3425,18 +4146,23 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudSetupPage + &Next > &Weiter > + Could not load certificate. Maybe wrong password? Das Zertifikat konnte nicht geladen werden. Vielleicht ein falsches Passwort? + + Server address does not seem to be valid Serveradresse scheint nicht gültig zu sein + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name Der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. @@ -3445,118 +4171,150 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b>Dateianbieter-basiertes Konto %1 erstellt!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokaler Sync-Ordner %1 erstellt!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Erfolgreich mit %1 verbunden: %2 Version %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">Die Erstellung des entfernten Ordners ist fehlgeschlagen, vermutlich sind die angegebenen Zugangsdaten falsch.</font><br/>Bitte gehen Sie zurück und überprüfen Sie Ihre Zugangsdaten.</p> + A sync connection from %1 to remote directory %2 was set up. Eine Synchronisierungsverbindung für Ordner %1 zum entfernten Ordner %2 wurde eingerichtet. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Zugang vom Server nicht erlaubt. <a href="%1">Klicken Sie hier</a> zum Zugriff auf den Dienst mithilfe Ihres Browsers, so dass Sie sicherstellen können, dass Ihr Zugang ordnungsgemäß funktioniert. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei und versuchen Sie es erneut oder beenden Sie die Installation. + Connection to %1 could not be established. Please check again. Die Verbindung zu %1 konnte nicht hergestellt werden. Bitte prüfen Sie die Einstellungen erneut. + Could not create local folder %1 Der lokale Ordner %1 konnte nicht erstellt werden + Creating local sync folder %1 … Lokaler Ordner %1 für die Synchronisierung wird erstellt … + Error: %1 Fehler: %1 + Failed to connect to %1 at %2:<br/>%3 Die Verbindung zu %1 auf %2 konnte nicht hergestellt werden: <br/>%3 + Folder rename failed Ordner umbenennen fehlgeschlagen. + Invalid URL Ungültige URL + Local sync folder %1 already exists, setting it up for sync.<br/><br/> Lokaler Sync-Ordner %1 existiert bereits, aktiviere Synchronistation.<br/><br/> + No remote folder specified! Kein entfernter Ordner angegeben! + OK OK + Remote folder %1 created successfully. Entfernter Ordner %1 erstellt. + + Remote folder %1 creation failed with error <tt>%2</tt>. Entfernter Ordner %1 konnte mit folgendem Fehler nicht erstellt werden: <tt>%2</tt>. + Successfully connected to %1! Erfolgreich mit %1 verbunden! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. Die Authentifizierungs-Anfrage an den Server wurde weitergeleitet an "%1". Diese Adresse ist ungültig, der Server ist falsch konfiguriert. + + The folder creation resulted in HTTP error code %1 Das Erstellen des Ordners erzeugte den HTTP-Fehler-Code %1 + The remote folder %1 already exists. Connecting it for syncing. Der Ordner %1 ist auf dem Server bereits vorhanden. Verbinde zur Synchronisierung. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> Die Erstellung des entfernten Ordners ist fehlgeschlagen, weil die angegebenen Zugangsdaten falsch sind. <br/>Bitte gehen Sie zurück und überprüfen Sie die Zugangsdaten.</p> + There was an invalid response to an authenticated WebDAV request Ungültige Antwort auf eine WebDAV-Authentifizierungs-Anfrage + Timeout while trying to connect to %1 at %2. Zeitüberschreitung beim Verbindungsversuch mit %1 unter %2. + + Trying to connect to %1 at %2 … Verbindungsversuch mit %1 unter %2 … + creating folder on Nextcloud: %1 Erstelle Ordner auf Nextcloud: %1 + failed. fehlgeschlagen. @@ -3564,45 +4322,55 @@ Beachten Sie, dass die Verwendung von Befehlszeilenoptionen für die Protokollie OCC::OwncloudWizard + Add %1 account %1 Konto hinzufügen + Back Next button text in new account wizard Zurück + Cancel Abbrechen + Enable experimental feature? Experimentelle Funktion aktivieren? + Enable experimental placeholder mode Experimentellen Platzhaltermodus aktivieren + Next Next button text in new account wizard Weiter + Proxy Settings Proxy Settings button text in new account wizard Proxyeinstellungen + Skip folders configuration Ordner-Konfiguration überspringen + Stay safe Bleiben Sie sicher + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3622,10 +4390,12 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PasswordInputDialog + Password for share required Passwort für die Freigabe erforderlich + Please enter a password for your share: Bitte vergeben sie für die Freigabe ein Passwort: @@ -3633,6 +4403,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PollJob + Invalid JSON reply from the poll URL Ungültige JSON-Antwort von der Poll-URL @@ -3640,166 +4411,210 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. Kann nicht umbenannt oder hochgeladen werden. + Cannot modify encrypted item because the selected certificate is not valid. Das verschlüsselte Element kann nicht geändert werden, da das ausgewählte Zertifikat nicht gültig ist. + Cannot sync due to invalid modification time Synchronisierung wegen ungültiger Änderungszeit nicht möglich + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Problem der Groß- und Kleinschreibung: Serverdatei heruntergeladen und umbenannt, um Konflikte zu vermeiden. + Conflict: Server version downloaded, local copy renamed and not uploaded. Konflikt: Serverversion heruntergeladen, lokale Kopie umbenannt und nicht hochgeladen. + Could not upload file, because it is open in "%1". Datei konnte nicht hochgeladen werden, da sie in "%1" geöffnet ist. + Error while deleting file record %1 from the database Fehler beim Löschen des Dateidatensatzes %1 aus der Datenbank + Error while reading the database Fehler beim Lesen der Datenbank + File has extension reserved for virtual files. Die Endung der Datei ist für virtuelle Dateien reserviert. + File is listed on the ignore list. Die Datei ist in der Ignorierliste aufgeführt. + File is not accessible on the server. server error Auf die Datei kann auf dem Server nicht zugegriffen werden. + File name contains at least one invalid character Der Dateiname enthält mindestens ein ungültiges Zeichen + File name is a reserved name on this file system. Der Dateiname ist ein reservierter Name auf diesem Dateisystem. + File names containing the character "%1" are not supported on this file system. %1: the invalid character Dateinamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. + File names ending with a period are not supported on this file system. Dateinamen, die mit einem Punkt enden, werden von diesem Dateisystem nicht unterstützt. + File/Folder is ignored because it's hidden. Datei/Ordner wird ignoriert, weil sie unsichtbar ist. + Filename contains leading and trailing spaces. Dateiname enthält Leerzeichen am Anfang und am Ende. + Filename contains leading spaces. Dateiname enthält Leerzeichen am Anfang. + Filename contains trailing spaces. Dateiname enthält Leerzeichen am Ende. + Filename is too long. Der Dateiname ist zu lang. + Folder is not accessible on the server. server error Auf den Ordner kann auf dem Server nicht zugegriffen werden. + Folder name contains at least one invalid character Ordnername enthält mindestens ein ungültiges Zeichen + Folder name is a reserved name on this file system. Der Ordnername ist ein reservierter Name in diesem Dateisystem. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Ordnernamen, die das Zeichen "%1" enthalten, werden von diesem Dateisystem nicht unterstützt. + Ignored because of the "choose what to sync" blacklist Ignoriert wegen der "Choose what to sync"-Blacklist + + Moved to invalid target, restoring Auf ungültiges Ziel verschoben, wiederherstellen. + Not allowed because you don't have permission to add files in that folder Nicht erlaubt, da Sie keine Berechtigung zum Hinzufügen von Dateien in diesen Ordner haben. + Not allowed because you don't have permission to add subfolders to that folder Nicht erlaubt, da Sie nicht die Berechtigung haben, Unterordner zu diesem Ordner hinzuzufügen. + Not allowed to remove, restoring Entfernen nicht erlaubt, wiederherstellen. + Not allowed to upload this file because it is read-only on the server, restoring Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist. Wiederherstellen. + Reason: the entire filename is forbidden. Grund: Der gesamte Dateiname ist unzulässig. + Reason: the file has a forbidden extension (.%1). Grund: Die Datei hat eine unzulässige Erweiterung (.%1). + Reason: the filename contains a forbidden character (%1). Grund: Der Dateiname enthält ein unzulässiges Zeichen (%1). + Reason: the filename has a forbidden base name (filename start). Grund: Der Dateiname hat einen unzulässigen Basisnamen (Beginn des Dateinamens). + Stat failed. Stat fehlgeschlagen. + Symbolic links are not supported in syncing. Symbolische Verknüpfungen werden bei der Synchronisierung nicht unterstützt. + The filename cannot be encoded on your file system. Der Dateiname kann auf Ihrem Dateisystem nicht entschlüsselt werden. + The filename is blacklisted on the server. Der Dateiname steht auf dem Server auf einer schwarzen Liste. + Upload of %1 exceeds %2 of space left in folder %3. Hochladen von %1 übersteigt %2 des in dem Ordner %3 verfügbaren Speicherplatzes. + Upload of %1 exceeds %2 of space left in personal files. Hochladen von %1 übersteigt %2 des in den persönlichen Dateien verfügbaren Speicherplatzes. @@ -3807,26 +4622,38 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateDirectory + Could not delete file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + File is currently in use Datei ist aktuell in Benutzung + + + + + + The folder %1 cannot be made read-only: %2 Der Ordner %1 kann nicht schreibgeschützt werden: %2 + + unknown exception Unbekannter Ausnahmefehler @@ -3834,54 +4661,70 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + File %1 cannot be downloaded because encryption information is missing. Die Datei %1 kann nicht heruntergeladen werden, da die Verschlüsselungsinformationen fehlen. + File %1 downloaded but it resulted in a local file name clash! Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! + + File %1 has invalid modified time reported by server. Do not save it. Datei %1 hat eine ungültige Änderungszeit, die vom Server gemeldet wurde. Speichern Sie sie nicht. + + File has changed since discovery Datei ist seit der Entdeckung geändert worden + File was deleted from server Die Datei wurde vom Server gelöscht + Free space on disk is less than %1 Der freie Speicher auf der Festplatte ist weniger als %1 + The download would reduce free local disk space below the limit Das Herunterladen würde den lokalen freien Speicherplatz unter die Grenze reduzieren + The downloaded file is empty, but the server said it should have been %1. Die heruntergeladene Datei ist leer, obwohl der Server %1 als Größe übermittelt hat. + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung + The file could not be downloaded completely. Die Datei konnte nicht vollständig heruntergeladen werden. @@ -3889,10 +4732,12 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateItemJob + ; Restoration Failed: %1 ; Wiederherstellung fehlgeschlagen: %1 + A file or folder was removed from a read only share, but restoring failed: %1 Eine Datei oder ein Ordner wurde von einer Nur-Lese-Freigabe wiederhergestellt, aber die Wiederherstellung ist mit folgendem Fehler fehlgeschlagen: %1 @@ -3900,30 +4745,39 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateLocalMkdir + Could not create folder %1 Ordner %1 konnte nicht erstellt werden + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + Folder %1 cannot be created because of a local file or folder name clash! Ordner %1 kann aufgrund einer lokalen Datei- oder Ordnernamenskollision nicht erstellt werden! + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung + + + The folder %1 cannot be made read-only: %2 Der Ordner %1 kann nicht schreibgeschützt werden: %2 + could not delete file %1, error: %2 Konnte Datei %1 nicht löschen. Fehler: %2 + unknown exception Unbekannter Ausnahmefehler @@ -3931,14 +4785,19 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Could not remove %1 because of a local file name clash %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht entfernt werden + + + Temporary error when removing local item removed from server. Vorübergehender Fehler beim Entfernen eines vom Server entfernten lokalen Objekts. @@ -3946,38 +4805,49 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateLocalRename + Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden + + Error setting pin state Fehler beim Setzen des PIN-Status + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + Failed to propagate directory rename in hierarchy Die Umbenennung des Verzeichnisses in der Hierarchie konnte nicht weitergegeben werden + Failed to rename file Datei konnte nicht umbenannt werden + File %1 downloaded but it resulted in a local file name clash! Datei %1 heruntergeladen, aber dies führte zu einem lokalen Dateinamenskonflikt! + Folder %1 cannot be renamed because of a local file or folder name clash! Ordner %1 kann nicht umbenannt werden, da ein Konflikt zwischen lokalen Datei- oder Ordnernamen besteht! + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung @@ -3985,10 +4855,12 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 204, aber gesendet wurde "%1 %2". @@ -3996,6 +4868,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Falscher HTTP-Code vom Server zurückgegeben. 204 erwartet, aber "%1 %2" erhalten. @@ -4003,18 +4876,22 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Fehler beim Schreiben der Metadaten in die Datenbank: %1 + Failed to encrypt a folder %1 Ordner konnte nicht verschlüsselt werden %1 + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". @@ -4022,34 +4899,44 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Der Dateidatensatz %1 konnte nicht aus der lokalen Datenbank gelöscht werden + Could not get file %1 from local DB Datei %1 konnte nicht aus der lokalen Datenbank abgerufen werden + Could not rename %1 to %2, error: %3 Konnte %1 nicht nach %2 umbenennen. Fehler: %3 + Error setting pin state Fehler beim Setzen des PIN-Status + + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + Error writing metadata to the database Fehler beim Schreiben der Metadaten in die Datenbank + + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2". @@ -4057,46 +4944,60 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateUploadFileCommon + Error updating metadata: %1 Fehler beim Aktualisieren der Metadaten: %1 + Failed to unlock encrypted folder. Verschlüsselter Ordner konnte nicht entsperrt werden. + Failed to upload encrypted file. Verschlüsselte Datei konnte nicht hochgeladen werden. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Die Datei %1 kann nicht hochgeladen werden, da eine andere Datei mit dem selben Namen, nur unterschiedlicher Groß-/Kleinschreibung, existiert + + + File %1 has invalid modification time. Do not upload to the server. Die Datei %1 hat eine ungültige Änderungszeit. Nicht auf den Server hochladen. + File Removed (start upload) %1 Datei entfernt (starte Hochladen) %1 + Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. + Local file changed during syncing. It will be resumed. Lokale Datei hat sich während der Synchronisierung geändert. Die Synchronisierung wird wiederaufgenommen. + The file %1 is currently in use Die Datei %1 ist aktuell in Benutzung + Unable to upload an item with invalid characters Ein Element mit ungültigen Zeichen kann nicht hochgeladen werden + + Upload of %1 exceeds the quota for the folder Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners @@ -4104,32 +5005,39 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateUploadFileNG + File is not accessible on the server. server error Auf die Datei kann auf dem Server nicht zugegriffen werden. + Folder is not accessible on the server. server error Auf den Ordner kann auf dem Server nicht zugegriffen werden. + Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. + Missing File ID from server Fehlende Datei-ID vom Server + Poll URL missing Poll-URL fehlt + The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. + Unexpected return code from server (%1) Unerwarteter Rückgabe-Code Antwort vom Server (%1) @@ -4137,18 +5045,22 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::PropagateUploadFileV1 + Local file changed during sync. Eine lokale Datei wurde während der Synchronisierung geändert. + Poll URL missing Poll-URL fehlt + The local file was removed during sync. Die lokale Datei wurde während der Synchronisierung entfernt. + The server did not acknowledge the last chunk. (No e-tag was present) Der Server hat den letzten Block nicht bestätigt. (Kein E-Tag vorhanden) @@ -4156,22 +5068,27 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ProxyAuthDialog + Password: Passwort: + Proxy authentication required Proxy-Authentifzierung erforderlich + Proxy: Proxy: + The proxy server needs a username and password. Der Proxy-Server benötigt Benutzername und Passwort + Username: Benutzername: @@ -4179,6 +5096,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::SelectiveSyncDialog + Choose What to Sync Zu synchronisierende Elemente auswählen @@ -4186,26 +5104,33 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Es ist ein Fehler während des Ladens der Liste der Unterordner aufgetreten. + Deselect remote folders you do not wish to synchronize. Entfernte Ordner abwählen, die nicht synchronisiert werden sollen. + Loading … Lade … + Name Name + + No subfolders currently on the server. Aktuell befinden sich keine Unterordner auf dem Server. + Size Größe @@ -4213,10 +5138,12 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ServerNotificationHandler + Dismiss Ablehnen + Reply Antworten @@ -4224,14 +5151,17 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::sesSnackBar + Error Fehler + Success Erfolg + Warning Warnung @@ -4239,23 +5169,28 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud %1-Einstellungen + Account Konto + General Allgemein + New account Neues Konto + Settings Einstellungen @@ -4263,19 +5198,24 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Globale Suchergebnisse + No results found Keine Ergebnisse gefunden + + Search globally Global suchen @@ -4283,6 +5223,7 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ShareManager + Error Fehler @@ -4290,38 +5231,47 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::ShareModel + %1 days %1 Tage + 1 day 1 Tag + Could not find local folder for %1 Lokaler Ordner für %1 nicht gefunden + Internal link Interner Link + Link share Link teilen + Secure file drop Sichere Dateiablage + Secure file drop link Sicherer Link zur Dateiablage + Share link Freigabe-Link + Today Heute @@ -4329,22 +5279,28 @@ Dies ist ein neuer, experimenteller Modus. Wenn Sie sich entscheiden, ihn zu ver OCC::SocketApi + + Activity Aktivität + Context menu share Kontextmenü Freigabe + Copy internal link Internen Link kopieren + Copy private link to clipboard Privater Link in die Zwischenablage kopiert + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4353,18 +5309,22 @@ Server replied with error: %2 Server antwortete mit Fehler: %2 + Delete Löschen + Delete local changes Lokale Änderungen löschen + Encrypt Verschlüsseln + Expires in %1 minutes remaining time before lock expires @@ -4373,82 +5333,104 @@ Server antwortete mit Fehler: %2 + Failed to encrypt folder Ordner konnte nicht verschlüsselt werden + Failed to encrypt folder at "%1" Ordner unter "%1" konnte nicht verschlüsselt werden + Folder encrypted successfully Ordner verschlüsselt + I shared something with you Ich habe etwas mit Ihnen geteilt + Leave this share Freigabe verlassen + Lock file Datei sperren + Locked by %1 Gesperrt von %1 + Move and rename … Verschieben und umbenennen … + Move and upload … Verschieben und hochladen … + Move, rename and upload … Verschieben, umbenennen und hochladen … + + Open in browser Im Browser öffnen + Resharing this file is not allowed Weiterteilen dieser Datei ist nicht erlaubt + Resharing this folder is not allowed Weiterteilen dieses Ordners ist nicht erlaubt + Resolve conflict … Konflikt lösen… + Select new location … Neuen Ort auswählen … + Send private link by email … Privaten Link als E-Mail verschicken … + + Share options Freigabeoptionen + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. Für das Konto %1 ist keine Ende-zu-Ende-Verschlüsselung konfiguriert. Bitte konfigurieren Sie diese in Ihren Kontoeinstellungen, um die Ordnerverschlüsselung zu aktivieren. + The following folder was encrypted successfully: "%1" Der folgende Ordner wurde verschlüsselt: "%1" + Unlock file Datei entsperren @@ -4456,98 +5438,122 @@ Server antwortete mit Fehler: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (selbst signiert) + <h3>Certificate Details</h3> <h3>Zertifikatdetails</h3> + <h3>Fingerprints</h3> <h3>Fingerabdrücke</h3> + <h3>Issuer</h3> <h3>Aussteller</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Hinweis:</b> Dieses Zertifikat wurde manuell bestätigt</p> + Certificate information: Zertifikatsinformation: + Common Name (CN): Gemeinsamer Name (CN): + Country: Land: + Expires on: Ablaufdatum: + Issued on: Ausgestellt am: + Issuer: Aussteller: + No support for SSL session tickets/identifiers Keine Unterstützung für SSL session tickets + Organization (O): Organisation (O): + Organizational Unit (OU): Organisationseinheit (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Seriennummer: + Server version: %1 Serverversion: %1 + State/Province: Staat/Provinz: + Subject Alternative Names: Subject Alternative Names: + The connection is not secure Die Verbindung ist nicht sicher + This connection is NOT secure as it is not encrypted. Diese Verbindung ist NICHT sicher, da diese nicht verschlüsselt ist. + This connection is encrypted using %1 bit %2. Diese Verbindung ist verschlüsselt mit %1 Bit %2. @@ -4555,122 +5561,156 @@ Server antwortete mit Fehler: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;nicht angegeben&gt; + Additional errors: Zusätzliche Fehler: + Cannot connect securely to <i>%1</i>: Kann keine sichere Verbindung zu <i>%1</i> herstellen: + + Country: %1 Land: %1 + Effective Date: %1 Datum des Inkrafttretens: %1 + Expiration Date: %1 Ablaufdatum: %1 + Fingerprint (SHA-256): <tt>%1</tt> Fingerabdruck (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Fingerabdruck (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Fingerabdruck (SHA1): <tt>%1</tt> + Issuer: %1 Aussteller: %1 + + Organization: %1 Organisation: %1 - Trust this certificate anyway - Diesem Zertifikat trotzdem vertrauen - - + + Unit: %1 Einheit: %1 + Untrusted Certificate Nicht vertrauenswürdiges Zertifikat + with Certificate %1 mit Zertifikat %1 - + + + Trust this certificate anyway + Diesem Zertifikat trotzdem vertrauen + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (übersprungen aufgrund des früheren Fehlers, erneuter Versuch in %2) + Cannot open the sync journal Synchronisierungsprotokoll kann nicht geöffnet werden + Could not set file record to local DB: %1 Der Dateidatensatz konnte nicht in die lokale Datenbank eingestellt werden: %1 + Could not update file metadata: %1 Die Metadaten der Datei konnten nicht aktualisiert werden: %1 + Could not update file: %1 Datei konnte nicht aktualisiert werden: %1 + Could not update virtual file metadata: %1 Metadaten der virtuellen Datei konnten nicht aktualisiert werden: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Der freie Speicherplatz wird knapp: Downloads, die den freien Speicher unter %1 reduzieren, wurden ausgelassen. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Nur %1 sind verfügbar. Zum Beginnen werden mindestens %2 benötigt. + There is insufficient space available on the server for some uploads. Auf dem Server ist für einige Dateien zum Hochladen nicht genug Platz. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Öffnen oder erstellen der Sync-Datenbank nicht möglich. Bitte sicherstellen, dass Schreibrechte für den zu synchronisierenden Ordner existieren. + Unable to read from the sync journal. Fehler beim Einlesen des Synchronisierungsprotokolls. + Unable to read the blacklist from the local database Fehler beim Einlesen der Blacklist aus der lokalen Datenbank + Unresolved conflict. Ungelöster Konflikt. + Using virtual files with suffix, but suffix is not set Virtuelle Dateien mit Endung verwenden, aber Endung ist nicht gesetzt. @@ -4678,58 +5718,76 @@ Server antwortete mit Fehler: %2 OCC::SyncStatusSummary + %1 of %2 %1 von %2 + %1 of %2 · %3 left %1 von %2 · %3 verbleiben + + + All synced! Alles synchronisiert! + Checking folder changes Prüfe Ordneränderungen + + + Offline Offline + See below for errors Warnungen siehe unten + See below for warnings Warnungen siehe unten + Some files could not be synced! Einige Dateien konnten nicht synchronisiert werden! + Some files couldn't be synced! Einige Dateien konnten nicht synchronisiert werden! + Sync paused Synchronisierung pausiert + Syncing Synchronisiere + Syncing changes Synchronisiere Änderungen + Syncing file %1 of %2 Synchronisiere Datei %1 von %2 + You need to accept the terms of service Die Nutzungsbedingungen müssen bestätigt werden @@ -4737,43 +5795,55 @@ Server antwortete mit Fehler: %2 OCC::Systray + Add account Konto hinzufügen + Download Herunterladen + Exit %1 %1 beenden + Help Hilfe + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. %1 Desktop öffnen + + Pause sync Synchronisierung pausieren + Pause sync for all Synchronisierung für alle pausieren + + Resume sync Synchronisierung fortsetzen + Resume sync for all Synchronisierung für alle fortsetzen + Settings Einstellungen @@ -4781,22 +5851,27 @@ Server antwortete mit Fehler: %2 OCC::TermsOfServiceCheckWidget + Copy Link Link kopieren + Link copied to clipboard. Link in die Zwischenablage kopiert. + Open Browser Browser öffnen + Polling Abfrage + Waiting for terms to be accepted Es wird auf die Bestätigung der Nutzungsbedingungen gewartet @@ -4804,90 +5879,115 @@ Server antwortete mit Fehler: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Desktop-Client Version %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Plugin für virtuelle Dateien: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Diese Version wird von %1 bereitgestellt.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0097 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1041 - Help-Link - https://wl.hidrive.com/easy/0148 + + Login_URL + https://storage.ionos.de - Help-Link_STRATO - https://static.hidrive.com/next/1011 + + Login_URL_STRATO + https://storage.ionos.de + LegalNotice-Link https://wl.hidrive.com/easy/0044 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1021 - Login_URL - https://storage.ionos.de - - - Login_URL_STRATO - https://storage.ionos.de - - + MoreInformation-Link https://wl.hidrive.com/easy/0047 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1011 + OpenSource-Link https://wl.hidrive.com/easy/0046 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0045 + Privacy-Link_STRATO https://static.hidrive.com/next/1001 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Desktop-Client Version %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Plugin für virtuelle Dateien: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Diese Version wird von %1 bereitgestellt.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0148 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1011 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Anbieter konnten nicht abgerufen werden. + Failed to fetch search providers for '%1'. Error: %2 Suchanbieter für '%1' konnte nicht abgerufen werden. Fehler: %2 + Search has failed for '%1'. Error: %2 Suche nach '%1' fehlgeschlagen. Fehler: %2 + Search has failed for '%2'. Suche nach '%2' fehlgeschlagen. @@ -4895,14 +5995,17 @@ Server antwortete mit Fehler: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Fehler beim Fertigstellen des Elements. + Failed to unlock encrypted folder. Verschlüsselter Ordner konnte nicht entsperrt werden. + Failed to update folder metadata. Ordner-Metadaten konnten nicht aktualisiert werden @@ -4910,33 +6013,43 @@ Server antwortete mit Fehler: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Benutzer %1 konnte nicht zum Zugriffsordner %2 hinzugefügt oder entfernt werden + Could not fetch public key for user %1 Öffentlicher Schlüssel für den Benutzer %1 konnte nicht abgerufen werden + Could not find root encrypted folder for folder %1 Verschlüsselter Stammordner für den Ordner %1 nicht gefunden + + + + + + + + + Error updating metadata for a folder %1 Fehler beim Aktualisieren der Metadaten für einen Ordner %1 + Failed to unlock a folder. Ordner konnte nicht entsperrt werden OCC::User - - %1 notifications - %1 Benachrichtigungen - + %n notification(s) %n Benachrichtigung @@ -4944,44 +6057,55 @@ Server antwortete mit Fehler: %2 + End-to-end certificate needs to be migrated to a new one Das Ende-zu-Ende-Zertifikat muss auf ein neues migriert werden + Open %1 Assistant in browser The placeholder will be the application name. Please keep it %1 Assistant im Browser öffnen + Open %1 Talk in browser The placeholder will be the application name. Please keep it %1 Talk im Browser öffnen + Public Share Link Öffentlicher Freigabe-Link + Quota Warning - %1 percent or more storage in use Kontingentwarnung – %1 Prozent oder mehr Speicher verwendet + Quota is updated; %1 percent of the total space is used. Das Kontingent wird aktualisiert; %1 Prozent des gesamten Speicherplatzes wird genutzt. + Rename file Datei umbenennen + + Resolve conflict Konflikt lösen + Retry all uploads Alle Uploads neu starten + Trigger the migration Starten der Migration @@ -4989,26 +6113,32 @@ Server antwortete mit Fehler: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Soll die Verbindung zum Konto <i>%1</i> entfernt werden?</p><p><b>Hinweis:</b> Es werden <b>keine</b> Dateien gelöscht.</p> + Cancel Abbrechen + Confirm Account Removal Kontenentfernung bestätigen + Leave share Freigabe verlassen + Remove account Konto entfernen + Remove connection Verbindung entfernen @@ -5016,6 +6146,7 @@ Server antwortete mit Fehler: %2 OCC::UserStatusSelectorModel + %n day(s) %n Tag @@ -5023,6 +6154,7 @@ Server antwortete mit Fehler: %2 + %n hour(s) %n Stunde @@ -5030,6 +6162,7 @@ Server antwortete mit Fehler: %2 + %n minute(s) %n Minute @@ -5037,54 +6170,70 @@ Server antwortete mit Fehler: %2 + 1 hour 1 Stunde + 30 minutes 30 Minuten + 4 hours 4 Stunden + Could not clear status message. Make sure you are connected to the server. Statusnachricht konnte nicht gelöscht werden. Bitte sicherstellen, dass eine Verbindung mit dem Server besteht. + Could not fetch predefined statuses. Make sure you are connected to the server. Vordefinierte Status konnten nicht abgerufen werden. Stellen Sie bitte sicher, dass Sie mit dem Server verbunden sind. + Could not fetch status. Make sure you are connected to the server. Benutzerstatus konnte nicht abgerufen werden. Bitte sicherstellen, dass Sie mit dem Server verbunden sind. + Could not set status. Make sure you are connected to the server. Benutzerstatus konnte nicht gesetzt werden. Bitte sicherstellen, dass eine Verbindung mit dem Server besteht. + + Don't clear Nicht löschen + Emojis are not supported. Some status functionality may not work. Emoji-Funktion wird nicht unterstützt. Einige Benutzerstatus-Funktionen funktionieren unter Umständen nicht. + Less than a minute Weniger als eine Minute + Status feature is not supported. You will not be able to set your status. Benutzerstatus-Funktion wird nicht unterstützt. Benutzerstatus kann nicht gesetzt werden. + + This week Diese Woche + + Today Heute @@ -5092,14 +6241,17 @@ Server antwortete mit Fehler: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist ein Laufwerk. Es unterstützt keine virtuellen Dateien. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist ein Netzlaufwerk. Es unterstützt keine virtuellen Dateien. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Bitte wählen Sie einen anderen Speicherort. %1 ist kein NTFS-Dateisystem. Es unterstützt keine virtuellen Dateien. @@ -5107,30 +6259,37 @@ Server antwortete mit Fehler: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 konnte nicht heruntergeladen werden. + + Error downloading %1 + Fehler beim Herunterladen von %1 + + + > More details > Weitere Details + Could not be downloaded Konnte nicht heruntergeladen werden + Download error Fehler beim Herunterladen + Error downloading Fehler beim Herunterladen - Error downloading %1 - Fehler beim Herunterladen von %1 - - + More details Weitere Details @@ -5138,6 +6297,8 @@ Server antwortete mit Fehler: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit @@ -5145,6 +6306,8 @@ Server antwortete mit Fehler: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Fehler beim Aktualisieren der Metadaten aufgrund einer ungültigen Änderungszeit @@ -5152,10 +6315,12 @@ Server antwortete mit Fehler: %2 OCC::WebEnginePage + Invalid certificate detected Ungültiges Zertifikat gefunden + The host "%1" provided an invalid certificate. Continue? Der Server "%1" hat ein ungültiges Zertifikat. Fortsetzen? @@ -5163,6 +6328,7 @@ Server antwortete mit Fehler: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Sie wurden von Ihrem Konto %1 bei %2 abgemeldet. Bitte melden Sie sich erneut an.</b> @@ -5170,22 +6336,27 @@ Server antwortete mit Fehler: %2 OCC::WelcomePage - Form - Formular - - + Host your own server Eigenen Server betreiben + Keep your data secure and under your control Halten Sie Ihre Daten sicher und unter Ihrer Kontrolle + + Form + Formular + + + Log in Anmelden + Sign up with provider Mit Provider anmelden @@ -5193,27 +6364,33 @@ Server antwortete mit Fehler: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy HTTP(S)-Proxy + Hostname of proxy server Hostname des Proxyservers + Password for proxy server Passwort für den Proxyserver + Proxy Settings Dialog window title for proxy settings Proxyeinstellungen + SOCKS5 proxy SOCKS5-Proxy + Username for proxy server Benutzername für den Proxyserver @@ -5221,55 +6398,68 @@ Server antwortete mit Fehler: %2 OwncloudAdvancedSetupPage + &Local Folder &Lokaler Ordner + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Wenn diese Option gesetzt ist, werden bestehende Inhalte im lokalen Ordner gelöscht, um eine saubere Synchronisierung nur der Serverdaten zu ermöglichen.</p><p>Wählen Sie diese Option nicht, wenn die lokalen Inhalte auf den Server übertragen werden sollen.</p></body></html> + Ask before syncing folders larger than Fragen, bevor Ordner synchronisiert werden. Grenze: + Choose different folder Anderen Ordner wählen + Choose what to sync Zu synchronisierende Elemente auswählen + Erase local folder and start a clean sync Lokalen Ordner löschen und eine saubere Synchronisierung starten + Keep local data Lokale Daten behalten + Local Folder Lokaler Ordner + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Serveradresse + Sync Logo Sync-Logo + Synchronize everything from server Alle Daten vom Server synchronisieren + Username Benutzername @@ -5277,10 +6467,12 @@ Server antwortete mit Fehler: %2 OwncloudHttpCredsPage + &Password &Passwort + &Username &Benutzername @@ -5288,10 +6480,12 @@ Server antwortete mit Fehler: %2 OwncloudSetupPage + Server address Serveradresse + This is the link to your %1 web interface when you open it in the browser. Dies ist der Link zu Ihrer %1 Webseite, wenn Sie diese im Browser öffnen. @@ -5299,145 +6493,170 @@ Server antwortete mit Fehler: %2 progress + Deleted Gelöscht + Deleting Lösche + Downloaded Heruntergeladen + Downloading Lade herunter + + Error Fehler + Filesystem access error Zugriffsfehler im Dateisystem + Ignored Ignoriert + Ignoring ignoriere + Moved to %1 Verschoben nach %1 + Moving Verschiebe + Replaced by virtual file Ersetzt durch virtuelle Datei + Server version downloaded, copied changed local file into case conflict conflict file Serverversion heruntergeladen, geänderte lokale Datei in Fallkonflikt-Konfliktdatei kopiert + Server version downloaded, copied changed local file into conflict file Serverversion heruntergeladen. Die bearbeitete lokale Datei wurde in eine Konfliktdatei kopiert. + + Unknown Unbekannt + Updated end-to-end encryption metadata Metadaten für die Ende-zu-Ende-Verschlüsselung aktualisiert + Updated local metadata Lokale Metadaten aktualisiert + Updated local virtual files metadata Aktualisierte Metadaten für lokale virtuelle Dateien + Updating end-to-end encryption metadata Aktualisieren der Metadaten für die Ende-zu-Ende-Verschlüsselung + Updating local metadata Aktualisiere lokale Metadaten + Updating local virtual files metadata Aktualisiere Metadaten für lokale virtuelle Dateien + Uploaded Hochgeladen + Uploading Lade hoch + Virtual file created Virtuelle Datei erstellt - - updating local virtual files metadata - Aktualisierung der Metadaten lokaler virtueller Dateien - ProxySettings + Form Formular + Host Host + Manually specify proxy Proxy manuell festlegen + No proxy Kein Proxy + Note: proxy settings have no effects for accounts on localhost Hinweis: Proxy-Einstellungen haben keine Auswirkungen auf Konten auf localhost + Proxy Settings Proxyeinstellungen + Proxy server requires authentication Proxy-Server erfordert eine Authentifizierung + Use system proxy Systemproxy verwenden QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5446,6 +6665,7 @@ Server antwortete mit Fehler: %2 + %nh delay in hours after an activity @@ -5454,6 +6674,7 @@ Server antwortete mit Fehler: %2 + %nmin delay in minutes after an activity @@ -5462,174 +6683,222 @@ Server antwortete mit Fehler: %2 + 1min one minute after activity date and time 1 Minute - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder an Ihre Serveradministration wenden, wenn das Problem weiterhin besteht. + + Some time ago + Vor einiger Zeit - Could not create debug archive in selected location! - Es konnte kein Debug-Archiv am ausgewählten Ort erstellt werden! + + in the future + in der Zukunft - Error deleting the file - Fehler beim Löschen der Datei + + now + jetzt + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + Das Verzeichnis %1 kann nicht Teil Ihres Synchronisationsverzeichnisses sein. Bitte wählen Sie einen anderen Ordner. + + + + New folder + Neuer Ordner + + Could not create debug archive in selected location! + Es konnte kein Debug-Archiv am ausgewählten Ort erstellt werden! + + + Failed to create debug archive Fehler beim Erstellen des Debug-Archivs - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Es scheint, dass Sie einen Proxy verwenden, der eine Authentifizierung erfordert. Bitte überprüfen Sie Ihre Proxy-Einstellungen und Anmeldedaten. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + + Synced %1 + %1 synchronisiert - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Der Verbindungsaufbau zum Server dauert zu lange. Versuchen Sie es später noch einmal oder wenden sich für Hilfe an Ihre Serveradministration. + + You changed %1 + Sie haben %1 geändert - New folder - Neuer Ordner + + You created %1 + Sie haben %1 erstellt - Paths beginning with '#' character are not supported in VFS mode. - Pfade, die mit dem Zeichen '#' beginnen, werden im VFS-Modus nicht unterstützt. + + You deleted %1 + Sie haben %1 gelöscht - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Die Serverdateien wurden während Ihrer Arbeit geändert. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, falls das Problem weiterhin besteht. + + You renamed %1 + Sie haben %1 umbenannt - Some time ago - Vor einiger Zeit + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Es ist ein unerwarteter Fehler aufgetreten. Bitte die Synchronisierung erneut versuchen oder an Ihre Serveradministration wenden, wenn das Problem weiterhin besteht. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Auf dem Server ist etwas schief gelaufen. Bitte erneut versuchen, oder die Serveradministration informieren, falls das Problem weiterhin besteht. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Es scheint, dass Sie einen Proxy verwenden, der eine Authentifizierung erfordert. Bitte überprüfen Sie Ihre Proxy-Einstellungen und Anmeldedaten. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. - Synced %1 - %1 synchronisiert + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Der Verbindungsaufbau zum Server dauert zu lange. Versuchen Sie es später noch einmal oder wenden sich für Hilfe an Ihre Serveradministration. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - Die für die Anfrage verwendete Adresse ist zu lang, um vom Server verarbeitet werden zu können. Bitte versuchen Sie, die gesendeten Informationen zu kürzen, oder wenden Sie sich an Ihre Serveradministration. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Die Serverdateien wurden während Ihrer Arbeit geändert. Bitte die Synchronisierung erneut versuchen oder wenden Sie sich an Ihre Serveradministration, falls das Problem weiterhin besteht. - The directory %1 cannot be part of your sync directory. Please choose another folder. - Das Verzeichnis %1 kann nicht Teil Ihres Synchronisationsverzeichnisses sein. Bitte wählen Sie einen anderen Ordner. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Auf dem Server ist etwas schief gelaufen. Bitte erneut versuchen, oder die Serveradministration informieren, falls das Problem weiterhin besteht. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + Die für die Anfrage verwendete Adresse ist zu lang, um vom Server verarbeitet werden zu können. Bitte versuchen Sie, die gesendeten Informationen zu kürzen, oder wenden Sie sich an Ihre Serveradministration. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Die Datei ist zu groß zum Hochladen. Wählen Sie eine kleinere Datei aus oder wenden Sie sich für Hilfe an Ihre Serveradministration. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. Die Anfrage konnte nicht abgeschlossen werden, weil einige erforderliche Bedingungen nicht erfüllt waren. Bitte die Synchronisierung erneut versuchen. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. Die Anfrage dauert länger als üblich. Bitte die Synchronisierung erneut versuchen. Wenn es immer noch nicht funktioniert, wenden Sie sich an Ihre Serveradministration. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. Die Ressource, auf die Sie zuzugreifen versuchen, ist derzeit gesperrt und kann nicht geändert werden. Versuchen Sie bitte, sie später zu ändern, oder wenden sich für Hilfe an Ihre Serveradministration. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. Der Server konnte Ihre Anfrage nicht bearbeiten, da einige Informationen falsch oder unvollständig waren. Bitte die Synchronisierung später wiederholen, oder wenden sich an Ihre Serveradministration. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. Der Server verfügt nicht über genügend Speicherplatz, um Ihre Anfrage zu bearbeiten. Wenden Sie sich an Ihre Serveradministration, um zu prüfen, wie viel Speicherkontingent ihr Konto hat. + The server does not recognize the request method. Please contact your server administrator for help. Der Server erkennt die Anfragemethode nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. + The server does not support the version of the connection being used. Contact your server administrator for help. Der Server unterstützt die verwendete Version der Verbindung nicht. Wenden Sie sich für Hilfe an Ihre Serveradministration. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. Der Server ist aktuell ausgelastet. Bitte in wenigen Minuten erneut versuchen eine Verbindung herzustellen, oder in dringenden Fällen an die Serveradministration wenden. + This file type isn’t supported. Please contact your server administrator for assistance. Dieser Dateityp wird nicht unterstützt. Wenden Sie sich bitte an Ihre Serveradministration, um Hilfe zu erhalten. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. Dieser Ordner oder diese Datei ist nicht mehr verfügbar. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. Diese Anfrage konnte nicht abgeschlossen werden, da einige erforderliche Bedingungen fehlen. Bitte später noch einmal versuchen, oder wenden Sie sich für Hilfe an Ihre Serveradministration. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. Es konnte nicht gefunden werden, wonach Sie gesucht haben. Möglicherweise wurde es verschoben oder gelöscht. Wenn Sie Hilfe benötigen, wenden Sie sich an Ihre Serveradministration. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. Die Anfrage konnte nicht bearbeitet werden. Bitte versuchen, die Synchronisierung später zu wiederholen, oder für Hilfe an die Serveradministration wenden. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. Es bestehen Probleme, bei der Verbindung zum Server. Informieren Sie die Serveradministration, falls das Problem weiterhin besteht. - You changed %1 - Sie haben %1 geändert - - - You created %1 - Sie haben %1 erstellt - - - You deleted %1 - Sie haben %1 gelöscht - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. Sie haben keinen Zugriff auf diese Ressource. Wenn Sie denken, dass dies ein Fehler ist, wenden Sie sich bitte an die Serveradministration. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. Sie haben keine Berechtigung, auf diese Ressource zuzugreifen. Wenn Sie glauben, dass es sich um einen Fehler handelt, wenden Sie sich für Hilfe an Ihre Serveradministration. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. Sie haben zu viele Anfragen gestellt. Bitte warten Sie und versuchen es erneut. Wenn Sie diese Meldung erneut sehen, kann Ihnen Ihre Serveradministration helfen. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. Sie müssen sich anmelden, um fortzufahren. Wenn Sie Probleme mit Ihren Anmeldedaten haben, wenden Sie sich bitte an Ihre Serveradministration. - You renamed %1 - Sie haben %1 umbenannt - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Ihr Netzwerk benötigt eine zusätzliche Authentifizierung. Bitte überprüfen Sie Ihre Verbindung. Informieren Sie die Serveradministration, falls das Problem weiterhin besteht. - in the future - in der Zukunft + + Error deleting the file + Fehler beim Löschen der Datei - now - jetzt + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + Pfade, die mit dem Zeichen '#' beginnen, werden im VFS-Modus nicht unterstützt. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5638,26 +6907,32 @@ Server antwortete mit Fehler: %2 + All local versions Alle lokalen Versionen + All server versions Alle Serverversionen + Cancel Abbrechen + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Wählen Sie, ob Sie die lokale Version, die Serverversion oder beide behalten möchten. Wenn Sie beide auswählen, wird dem Namen der lokalen Datei eine Nummer hinzugefügt. + Resolve conflicts Konflikte lösen + Solve sync conflicts Synchronisationskonflikte lösen @@ -5665,6 +6940,7 @@ Server antwortete mit Fehler: %2 SesErrorBox + Error Fehler @@ -5672,14 +6948,17 @@ Server antwortete mit Fehler: %2 SesTrayHeader + Open Nextcloud in browser HiDrive Next im Browser öffnen + Open local or team folders Lokale Ordner oder Team-Ordner öffnen + Website Website @@ -5687,10 +6966,12 @@ Server antwortete mit Fehler: %2 ShareDelegate + Copied! Kopiert! + Share options Freigabeoptionen @@ -5698,66 +6979,78 @@ Server antwortete mit Fehler: %2 ShareDetailsPage + Add another link Weiteren Link hinzufügen + Allow resharing Weiterteilen erlauben + + Allow upload and editing Hochladen und Bearbeiten erlauben + An error occurred setting the share password. Es ist ein Fehler beim Festlegen des Freigabekennworts aufgetreten. + Copy share link Freigabe-Link kopieren + Custom Permissions Benutzerdefinierte Berechtigungen + Enter a note for the recipient Eine Notiz für den Empfänger eingeben - Enter the note to recipient - Geben Sie eine Notiz an den Empfänger ein - - + File drop (upload only) Dateien ablegen (nur Hochladen) + Hide download Download verbergen + Note to recipient Notiz an Empfänger + Password protection Passwortschutz + Set expiration date Ablaufdatum setzen + Share link copied! Freigabelink kopiert! + Unshare Freigabe aufheben + View only Nur anzeigen @@ -5765,10 +7058,12 @@ Server antwortete mit Fehler: %2 ShareeSearchField + Search for users or groups… Suche nach Benutzern oder Gruppen… + Sharing is not available for this folder Teilen ist für diesen Ordner nicht verfügbar @@ -5776,30 +7071,37 @@ Server antwortete mit Fehler: %2 ShareView + Expires in %1 Läuft ab in %1 + Password required for new share Passwort für neue Freigabe erforderlich + Share password Freigabe-Passwort + Shared with you by %1 Geteilt mit Ihnen von %1 + Sharing is disabled Teilen ist deaktiviert + Sharing is disabled. Teilen ist deaktiviert. + This item cannot be shared. Dieses Element kann nicht geteilt werden @@ -5807,6 +7109,7 @@ Server antwortete mit Fehler: %2 SyncJournalDb + Failed to connect database. Verbindung zur Datenbank fehlgeschlagen @@ -5814,14 +7117,17 @@ Server antwortete mit Fehler: %2 SyncStatus + Open browser Browser öffnen + Resolve conflicts Konflikte lösen + Sync now Jetzt synchronisieren @@ -5829,10 +7135,12 @@ Server antwortete mit Fehler: %2 TalkReplyTextField + Reply to … Antworten an … + Send reply to chat message Antwort auf Chatnachricht senden @@ -5840,14 +7148,17 @@ Server antwortete mit Fehler: %2 TermsOfServiceCheckWidget + Logo Logo + Switch to your browser to accept the terms of service Zum Browser wechseln, um die Nutzungsbedingungen zu bestätigen + Terms of Service Nutzungsbedingungen @@ -5855,42 +7166,52 @@ Server antwortete mit Fehler: %2 theme + Error occurred during setup Fehler bei der Einrichtung aufgetreten + Error occurred during sync Fehler beim Synchronisieren aufgetreten + Preparing to sync Synchronisierung wird vorbereitet + Stopping sync Beende Synchronisierung + Sync is paused Synchronisierung ist angehalten. + Sync is running Synchronisierung läuft + Sync status is unknown Synchronisierungsstatus ist unbekannt + Sync was successful Synchronisierung war erfolgreich + Sync was successful but some files were ignored Synchronisierung war erfolgreich, aber einige Dateien wurden ignoriert + Waiting to start syncing Warte auf Beginn der Synchronisierung. @@ -5898,30 +7219,37 @@ Server antwortete mit Fehler: %2 TrayFoldersMenuButton + Files Dateien + Open %1 in file explorer "%1" im Dateiexplorer öffnen + Open local folder Lokalen Ordner öffnen + Open local folder "%1" Lokalen Ordner "%1" öffnen + Open local or team folders Lokale Ordner oder Team-Ordner öffnen + Open team folder "%1" Team-Ordner "%1" öffnen + User group and local folders menu Menü für Benutzergruppen und lokale Ordner @@ -5929,42 +7257,52 @@ Server antwortete mit Fehler: %2 TrayWindowAccountMenu + Account switcher and settings menu Konto-Umschalter und Einstellungsmenü + Add account Konto hinzufügen + Current account Aktuelles Konto + Current account avatar Avatar des aktuellen Kontos + Current account status is do not disturb Aktueller Kontostatus ist "Nicht stören" + Current account status is online Aktueller Kontostatus ist "Online" + Exit Beenden + Pause sync for all Synchronisierung für alle pausieren + Resume sync for all Synchronisierung für alle fortsetzen + Settings Einstellungen @@ -5972,14 +7310,17 @@ Server antwortete mit Fehler: %2 TrayWindowHeader + More apps Weitere Apps + Open %1 in browser %1 im Browser öffnen + Open local or team folders Lokale Ordner oder Team-Ordner öffnen @@ -5987,22 +7328,27 @@ Server antwortete mit Fehler: %2 TrayWindowHeaderBar + More apps Weitere Apps + Open %1 in browser %1 im Browser öffnen + Open Nextcloud in browser HiDrive Next im Browser öffnen + Open local or team folders Lokale Ordner oder Team-Ordner öffnen + Website Website @@ -6010,6 +7356,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchInputContainer + Search files, messages, events … Suche Dateien, Nachrichten und Termine … @@ -6017,6 +7364,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchPlaceholderView + Start typing to search Beginnen Sie mit der Eingabe, um zu suchen @@ -6024,6 +7372,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Weitere Ergebnisse laden @@ -6031,6 +7380,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Suchergebnis-Skelett. @@ -6038,6 +7388,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultListItem + Load more results Weitere Ergebnisse laden @@ -6045,6 +7396,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultNothingFound + No results for Keine Ergebnisse für @@ -6052,6 +7404,7 @@ Server antwortete mit Fehler: %2 UnifiedSearchResultSectionItem + Search results section %1 Suchergebnisse Abschnitt %1 @@ -6059,22 +7412,29 @@ Server antwortete mit Fehler: %2 UserLine + Account actions Konto-Aktionen + + Log in Anmelden + + Log out Abmelden + Remove account Konto entfernen + Switch to account Zu Konto wechseln @@ -6082,26 +7442,32 @@ Server antwortete mit Fehler: %2 UserStatusMessageView + Apply Anwenden + Cancel Abbrechen + Clear Leeren + Clear status message after Statusmeldung löschen nach + Status message Statusnachricht + What is your status? Wie ist Ihr Status? @@ -6109,38 +7475,47 @@ Server antwortete mit Fehler: %2 UserStatusSetStatusView + Appear offline Offline erscheinen + Away Abwesend + Busy Beschäftigt + Do not disturb Nicht stören + Invisible Unsichtbar + Mute all notifications Alle Benachrichtigungen stummschalten + Online Online + Online status Online-Status + Status message Statusnachricht @@ -6148,30 +7523,37 @@ Server antwortete mit Fehler: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) %n Tag @@ -6179,6 +7561,7 @@ Server antwortete mit Fehler: %2 + %n hour(s) %n Stunde @@ -6186,6 +7569,7 @@ Server antwortete mit Fehler: %2 + %n minute(s) %n Minute @@ -6193,6 +7577,7 @@ Server antwortete mit Fehler: %2 + %n month(s) %n Monat @@ -6200,6 +7585,7 @@ Server antwortete mit Fehler: %2 + %n second(s) %n Sekunde @@ -6207,6 +7593,7 @@ Server antwortete mit Fehler: %2 + %n year(s) %n Jahr @@ -6217,42 +7604,52 @@ Server antwortete mit Fehler: %2 utility + Always available locally Immer lokal verfügbar + Available online only Nur online verfügbar + Could not open browser Konnte Browser nicht öffnen + Could not open email client Die E-Mail-Anwendung konnte nicht geöffnet werden + Currently available locally Derzeit lokal verfügbar + Free up local space Lokalen Speicherplatz freigeben + Make always available locally Immer lokal verfügbar machen + Some available online only Einige sind nur online abrufbar + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Die URL %1 konnte aufgrund eines Fehlers beim Start des Browsers nicht aufgerufen werden. Ist vielleicht kein Standardbrowser konfiguriert? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Fehler beim Öffnen der E-Mail-Anwendung zum Erstellen einer neuen Nachricht. Vielleicht ist keine Standard-E-Mail Anwendung eingerichtet? @@ -6260,14 +7657,17 @@ Server antwortete mit Fehler: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" Der Prüfsummen-Header enthielt einen unbekannten Prüfsummentyp "%1" + The checksum header is malformed. Der Prüfsummen-Header hat ein fehlerhaftes Format. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" Die heruntergeladene Datei stimmt nicht mit der Prüfsumme überein, sie wird fortgesetzt. "%1" != "%2" diff --git a/translations/client_en.ts b/translations/client_en.ts index 3577d38916099..b58ff1e971938 100644 --- a/translations/client_en.ts +++ b/translations/client_en.ts @@ -1,55 +1,14 @@ - - - - Agree - Agree - - - Back - Back - - - Necessary data - Necessary data - - - Required to ensure that the software can be used as expected - Required to ensure that the software can be used as expected - - - Save Settings - Save Settings - - - Send anonymous use - Send anonymous use - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - This helps us to optimize the software and to better identify system crashes and unexpected errors. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - - ActivityItem + In %1 + Open %1 locally @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss + Open file details @@ -68,40 +29,40 @@ ActivityList + Activity list + No activities yet + Scroll to top - - BasicComboBox - - Clear status message menu - Delete status message menu - - CallNotificationDialog + Answer Talk call notification Answer Talk call notification + Decline + Decline Talk call notification Decline Talk call notification + Talk notification caller avatar Talk notification caller avatar @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) + Checking for changes in "%1" + Help + Log out + + No recently changed files + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. + Open in browser + Pause synchronization + Quit sync client Quit sync client + Recently changed + Settings Settings + Sync paused + Syncing + Syncing %1 + Syncing %1 (%2 left) + Syncing %1 of %2 + Syncing %1 of %2 (%3 left) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Local version + Server version Server version @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu + Add account + Add new account + Current account + Current account avatar + Current account status is do not disturb + Current account status is online + Exit + + Pause sync for all Pause sync for all + + Resume sync for all Resume sync for all + Settings Settings @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token @@ -260,6 +257,7 @@ ErrorBox + Error @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies + Reload + Remove local copies - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - - FileProviderFileDelegate + Delete Delete @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files + General settings + Reset virtual files environment - Signal file provider domain - Signal file provider domain - - + Virtual files settings @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced - Evict local copies... - Evict local copies... - - + Free up space … + Local storage use @@ -352,19 +348,23 @@ FileProviderSyncStatus + All synced! All synced! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. + Request sync + Syncing @@ -372,10 +372,12 @@ macOS may ignore or delay this request. FileSystem + Could not remove folder "%1" + Error removing "%1": %2 @@ -383,22 +385,28 @@ macOS may ignore or delay this request. Flow2AuthWidget + + An error occurred while connecting. Please try again. + Browser Authentication + Copy Link + Logo + Switch to your browser to connect your account @@ -406,10 +414,12 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync + Add Folder Sync Add Folder Sync + Step 3 of 3: Selektive Synchronisation Step 3 of 3: Selective Synchronisation @@ -417,18 +427,22 @@ macOS may ignore or delay this request. FolderWizardSourcePage + &Choose &Choose + Add Folder Sync Add Folder Sync + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized. + Step 1 of 3: Select local folder Step 1 of 3: Select local folder @@ -436,30 +450,37 @@ macOS may ignore or delay this request. FolderWizardTargetPage + Add Folder Sync Add Folder Sync + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Create folder Create folder + Folders + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Refresh + Step 2 of 3: Directory in your %1 Step 2 of 3: Directory in your %1 @@ -467,14 +488,17 @@ macOS may ignore or delay this request. MainWindow + Main content + New activities + Unified search results list @@ -482,6 +506,7 @@ macOS may ignore or delay this request. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> @@ -489,14 +514,17 @@ macOS may ignore or delay this request. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + The server enforces strict transport security and does not accept untrusted certificates. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. @@ -504,18 +532,22 @@ macOS may ignore or delay this request. OCC::Account + File %1 is already locked by %2. + Lock operation on %1 failed with error %2 + Public Share Link + Unlock operation on %1 failed with error %2 @@ -523,29 +555,29 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - - + An account was detected from a legacy desktop client. Should the account be imported? + Could not import accounts from legacy client configuration. + Import + + Legacy import + Skip @@ -553,310 +585,333 @@ Should the account be imported? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 as %2 + %1 in use + %1 of %2 in use + (experimental) + <p>Could not create local folder <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - Apply - - - - Apply manual changes - - - + + Availability - Cancel - - - + Choose what to sync + Confirm Folder Sync Connection Removal + Connected to %1. - Connected with <server> as <user> - - - + Connecting to %1 … - Connection settings - - - + Could not encrypt folder because the folder does not exist anymore + + Create new folder + Currently there is no storage usage information available. + Disable support + Disable virtual file support … + Disable virtual file support? + Display mnemonic + + Do not encrypt folder + Do you want to forget the end-to-end encryption settings for %1 on this device? + + Edit Ignored Files + Enable virtual file support %1 … + Encrypt + + Encrypt folder + Encryption failed + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + End-to-end Encryption + End-to-end Encryption with Virtual Files + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + End-to-end encryption has not been initialized on this account. + End-to-end encryption mnemonic - Expand Memory - Expand Memory - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0057 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1046 - - + Folder creation failed + Force sync now Force sync now + Forget encryption setup + Forget the end-to-end encryption on this device + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Migrate certificate to a new one + No %1 connection configured. + No account configured. + + Open folder + Pause sync + Please wait for the folder to sync before trying to encrypt it. + Remove Folder Sync Connection + Remove folder sync connection + Restart sync + Resume sync + Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 is currently in maintenance mode. + Server %1 is temporarily unavailable. + Server configuration error: %1 at %2. + Set up encryption + Signed out from %1. - Standard file sync - - - + Storage space %1% occupied Storage space %1% occupied - Storage space: … - - - + Sync Running - Synchronize all - - - - Synchronize none - - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + The server version %1 is unsupported! Proceed at your own risk. + The syncing operation is running.<br/>Do you want to terminate it? + There are folders that have grown in size beyond %1MB: %2 + There are folders that were not synchronized because they are external storages: There are folders that were not synchronised because they are external storages: + There are folders that were not synchronized because they are too big or external storages: There are folders that were not synchronised because they are too big or external storages: + There are folders that were not synchronized because they are too big: There are folders that were not synchronised because they are too big: + This account supports end-to-end encryption, but it needs to be set up first. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -865,65 +920,127 @@ This action will abort any currently running synchronization. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - - + Unable to connect to %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - - - - Virtual file sync - - - + Warning + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? + You need to accept the terms of service at %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + + + Apply + + + + + Apply manual changes + + + + + + + Cancel + + + + + Connected with <server> as <user> + + + + + Connection settings + + + + + Expand Memory + Expand Memory + + + + Standard file sync + + + + + + Storage space: … + + + + + Synchronize all + + + + + Synchronize none + + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + + + + + Virtual file sync + + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + There was an invalid response to an authenticated WebDAV request @@ -931,46 +1048,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials + Configuration error + Connected + Disconnected + Maintenance mode + Need the user to accept the terms of service + Network error + Redirect detected + Service unavailable + Signed out + Unknown account state @@ -978,14 +1106,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … + For more activities please open the Activity app. + Network error occurred: client will retry syncing. @@ -993,34 +1124,42 @@ Would you like to do this now? OCC::AddCertificateDialog - An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + + Certificate files (*.p12 *.pfx) - Browse … + + Select a certificate - Certificate & Key (pkcs12): + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. - Certificate files (*.p12 *.pfx) + + Browse … - Certificate password: + + Certificate & Key (pkcs12): - SSL client certificate authentication + + Certificate password: - Select a certificate + + SSL client certificate authentication + This server probably requires a SSL client certificate. @@ -1028,67 +1167,82 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported + %1 folders number of folders imported + 1 account + 1 folder + Continue + Error accessing the configuration file + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. + Legacy import + Quit + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. + deleting + ignoring + newer newer software version + older older software version @@ -1097,18 +1251,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: + &Username: + Authentication Required + Enter username and password for "%1" at %2. @@ -1116,10 +1274,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -1127,18 +1287,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 + File %1 can not be downloaded because of a local file name clash! + The file %1 is currently in use + Unable to update metadata of new file %1. error with update metadata of new Win VFS file @@ -1147,50 +1311,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists + File %1 has invalid modification time. Do not upload to the server. + File %1 has invalid modified time. Do not upload to the server. + File Removed (start upload) %1 + File contains leading or trailing spaces and couldn't be renamed + + Local file changed during sync. + Local file changed during syncing. It will be resumed. + Network error: %1 + Restoration failed: %1 + The file %1 is currently in use + The local file was removed during sync. @@ -1198,30 +1375,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. + Could not rename file. Please make sure you are connected to the server. + Failed to fetch permissions with error %1 + Filename contains leading and trailing spaces. + Filename contains leading spaces. + Filename contains trailing spaces. + You don't have the permission to rename this file. Please ask the author of the file to rename it. @@ -1229,86 +1413,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. - 0 byte + + Filename contains illegal characters: %1 - Case Clash Conflict + + Filename contains leading and trailing spaces. - Case clashing file + + Filename contains leading spaces. - Error + + Filename contains trailing spaces. - Existing file - Existing file + + Rename file + - Filename contains illegal characters: %1 + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - Filename contains leading and trailing spaces. + + Use invalid name - Filename contains leading spaces. + + + 0 byte - Filename contains trailing spaces. + + Case Clash Conflict - New filename + + Case clashing file - Open clashing file + + Error - Open existing file + + Existing file + Existing file + + + + New filename - Please enter a new name for the clashing file: + + + Open clashing file - Rename file + + + Open existing file - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + + Please enter a new name for the clashing file: + The file could not be synced because it generates a case clash conflict with an existing file on this system. The file could not be synced because it generates a case clash conflict with an existing file on this system. - Use invalid name - - - + file A + file B + + today @@ -1316,6 +1525,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database @@ -1323,27 +1533,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: + Enter E2E passphrase + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Invalid PIN. Login failed + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> @@ -1351,66 +1567,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte + + Keep both versions - <a href="%1">Open local version</a> + + Keep local version - <a href="%1">Open server version</a> + + + Keep selected version - Click to open the file + + Keep server version - Conflicting versions of %1. + + Open local version - Keep both versions + + Open server version - Keep local version + + + 0 byte - Keep selected version + + <a href="%1">Open local version</a> - Keep server version + + <a href="%1">Open server version</a> - Local version - Local version + + + Click to open the file + - Open local version + + + Conflicting versions of %1. - Open server version - + + Local version + Local version + Server version Server version + Sync Conflict + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + + today @@ -1418,22 +1655,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion + Do you want to delete the directory <i>%1</i> and all its contents permanently? + Do you want to delete the file <i>%1</i> permanently? + + Error + + Moving file failed: %1 @@ -1443,27 +1687,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. + No %1 account configured The placeholder will be the application name. Please keep it + Please update to the latest server and restart the client. + The configured server for this client is too old + The provided credentials are not correct + Timeout @@ -1471,68 +1721,83 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + + + Agree Agree + Form + Settings Settings - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + Back Back + Form + Necessary data Necessary data + Required to ensure that the software can be used as expected Required to ensure that the software can be used as expected + Save Settings Save Settings + Send anonymous use Send anonymous use + This helps us to optimize the software and to better identify system crashes and unexpected errors. This helps us to optimize the software and to better identify system crashes and unexpected errors. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 + Error while canceling deletion of a file @@ -1540,18 +1805,23 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Encrypted metadata setup error! + Encrypted metadata setup error: initial signature from server is empty. Encrypted metadata setup error: initial signature from server is empty. + Server error: PROPFIND reply is not XML formatted! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” @@ -1559,22 +1829,27 @@ Would you like to do this now? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied + Directory not found: %1 + Error while opening directory %1 + Error while reading directory %1 + Filename encoding is not valid @@ -1582,62 +1857,93 @@ Would you like to do this now? OCC::EditLocallyJob + + + An error occurred during data retrieval. + + An error occurred during setup. + + An error occurred trying to synchronise the file to edit locally. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Could not find a remote file info for local editing. Make sure its path is valid. + Could not open %1 + + + + + + + + Could not start editing locally. + File %1 already locked. + File %1 could not be locked. + File %1 now locked. + Invalid local file path. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. + Please try again. + Server error: PROPFIND reply is not XML formatted! @@ -1645,10 +1951,12 @@ Would you like to do this now? OCC::EditLocallyManager + Could not validate the request to open a file from server. + Please try again. @@ -1656,26 +1964,34 @@ Would you like to do this now? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. + Could not find an account for local editing. + Could not start editing locally. + Invalid file path was provided. + Invalid token received. + + + Please try again. @@ -1683,22 +1999,34 @@ Would you like to do this now? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. + + + + + + Error fetching metadata. + + + Error locking folder. + Error parsing or decrypting metadata. + Failed to upload metadata @@ -1706,6 +2034,7 @@ Would you like to do this now? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. @@ -1714,6 +2043,7 @@ This can be an issue with your OpenSSL libraries. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1722,6 +2052,7 @@ This can be an issue with your OpenSSL libraries. + %1 hour(s) ago hours elapsed since file last modified @@ -1730,6 +2061,7 @@ This can be an issue with your OpenSSL libraries. + %1 minute(s) ago minutes elapsed since file last modified @@ -1738,6 +2070,7 @@ This can be an issue with your OpenSSL libraries. + %1 month(s) ago months elapsed since file last modified @@ -1746,6 +2079,7 @@ This can be an issue with your OpenSSL libraries. + %1 second(s) ago seconds elapsed since file last modified @@ -1754,6 +2088,7 @@ This can be an issue with your OpenSSL libraries. + %1 year(s) ago years elapsed since file last modified @@ -1762,6 +2097,7 @@ This can be an issue with your OpenSSL libraries. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1773,22 +2109,28 @@ This can be an issue with your OpenSSL libraries. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. @@ -1796,38 +2138,48 @@ This can be an issue with your OpenSSL libraries. OCC::Flow2AuthWidget + Copy Link + + Error + Link copied to clipboard. + Open Browser Open Browser + Polling for authorization + Starting authorization + Switch to your browser to connect your account + Unable to open the Browser, please copy the link to your Browser. + Waiting for authorization @@ -1835,6 +2187,7 @@ This can be an issue with your OpenSSL libraries. OCC::Folder + %1 and %n other file(s) are currently locked. %1 and %n other file are currently locked. @@ -1842,6 +2195,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 and %n other file could not be synced due to errors. See the log for details. @@ -1849,6 +2203,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been added. %1 and %n other file have been added. @@ -1856,6 +2211,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been removed. %1 and %n other file have been removed. @@ -1863,6 +2219,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been updated. %1 and %n other file have been updated. @@ -1870,14 +2227,17 @@ This can be an issue with your OpenSSL libraries. + %1 could not be synced due to an error. See the log for details. + %1 has a sync conflict. Please check the conflict file! + %1 has and %n other file(s) have sync conflicts. %1 and %n other file have sync conflicts. @@ -1885,11 +2245,13 @@ This can be an issue with your OpenSSL libraries. + %1 has been added. %1 names a file. + %1 has been moved to %2 and %n other file(s) have been moved. %1 has been moved to %2 and %n other file has been moved. @@ -1897,15 +2259,18 @@ This can be an issue with your OpenSSL libraries. + %1 has been moved to %2. + %1 has been removed. %1 names a file. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 has been renamed to %2 and %n other file has been renamed. @@ -1913,29 +2278,35 @@ This can be an issue with your OpenSSL libraries. + %1 has been renamed to %2. %1 and %2 name files. + %1 has been updated. %1 names a file. + %1 is currently locked. + A folder from an external storage has been added. A folder from an external storage has been added. + A folder has surpassed the set folder size limit of %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1944,6 +2315,7 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1952,10 +2324,12 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + A new folder larger than %1 MB has been added: %2. A new folder larger than %1 MB has been added: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1964,70 +2338,87 @@ This means that the synchronization client might not upload local changes immedi + Could not read system exclude file + Keep syncing + Please choose a different location. %1 isn't a readable folder. + Please choose a different location. %1 isn't a valid folder. + Please choose a different location. The folder %1 doesn't exist. + Please go in the settings to select it if you wish to download it. + Proceed with Deletion Proceed with deletion + Remove all files? Remove all files? + Restore Files from Server Restore files from server + Restore Files to Server Restore files to server + Stop syncing + Sync Activity + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + The folder %1 has surpassed the set folder size limit of %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Virtual file download failed with code "%1", status "%2" and error message "%3" + Would you like to stop syncing this folder? @@ -2035,26 +2426,32 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderCreationDialog + %1 Create new folder %1 Create new folder + Could not create a folder! Check your write permissions. - Create new folder + + Error - Enter folder name + + Create new folder - Error + + Enter folder name + Folder already exists @@ -2062,108 +2459,136 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderMan + %1 (Sync is paused) + (backup %1) (backup %1) + (backup) (backup) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + Could not reset folder state + Last sync was successful. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url + + Please choose a different location. %1 is already being used as a sync folder. + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Please choose a different location. The path %1 doesn't exist. + Please choose a different location. The path %1 isn't a folder. + Please choose a different location. The selected folder isn't valid. + + Please choose a different location. You don't have enough permissions to write to %1. folder location + Preparing for sync. + Setup error. + Sync finished with unresolved conflicts. + Sync is paused. + Sync is running. + Sync request was cancelled. + Syncing %1 + Syncing %1 (%2 left) + Syncing %1 (A few seconds left) + Syncing %1 of %2 + Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (A few seconds left) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2171,10 +2596,12 @@ For advanced users: this issue might be related to multiple sync database files + Undefined state. + Waiting to start syncing. @@ -2182,14 +2609,17 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate + Add Folder Sync Add Folder Sync + File + Synchronize any other local folder with your %1 Synchronize any other local folder with your %1 @@ -2197,113 +2627,141 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" + + %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" + %5 left, %1 of %2, file %3 of %4 + + , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" + About to start syncing + Checking for changes in local "%1" + Checking for changes in remote "%1" + Click this button to add a folder to synchronize. + Could not decrypt! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) + Error while loading the list of folders from the server. + Fetching folder list from server … + File %1 of %2 + Preparing to sync … + Signed out + Synchronizing files in local folder + Synchronizing virtual files in local folder + Syncing local and remote changes + There are unresolved conflicts. Click for details. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) + Virtual file support is enabled. + Waiting for %n other folder(s) … Waiting for %n other folder … @@ -2311,14 +2769,17 @@ For advanced users: this issue might be related to multiple sync database files + You need to be connected to add a folder + ↑ %1/s + ↓ %1/s @@ -2326,6 +2787,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcher + The watcher did not receive a test notification. @@ -2333,6 +2795,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. @@ -2340,10 +2803,12 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard + Add Folder Sync Connection + Add Sync Connection @@ -2351,30 +2816,37 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath + Add Folder Sync Add Folder Sync + Choose Choose + Click to select a local folder to sync. + Enter the path to the local folder. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized. + Select the source folder + Step 1 of 3: Select local folder Step 1 of 3: Select local folder @@ -2382,62 +2854,78 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardRemotePath + Add Folder Sync Add Folder Sync + Authentication failed accessing %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Choose this to sync the entire account + Create Remote Folder + Create folder Create folder + Enter the name of the new folder to be created below "%1": Enter the name of the new folder to be created below "%1": + Failed to create the folder on %1. Please check manually. + Failed to list a folder. Error: %1 + Folder was successfully created on %1. + + Please choose a different location. %1 is already being synced to %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Refresh + Step 2 of 3: Directory in your %1 Step 2 of 3: Directory in your %1 + You are already syncing the subfolder %1 at %2. @@ -2445,26 +2933,36 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardSelectiveSync + + + (experimental) + Add Folder Sync Add Folder Sync + Step 3 of 3: Selektive Synchronisation Step 3 of 3: Selective Synchronisation + + + Use virtual files instead of downloading content immediately %1 Use virtual files instead of downloading content immediately %1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. @@ -2472,241 +2970,298 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design - &Analysis data collection for needs-based design + + - beta: contains versions with new features that may not be tested thoroughly +- daily: contains versions created daily only for testing and development + +Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + list of available update channels to non enterprise users and downgrading warning + - &Automatically check for updates + + - enterprise: contains stable versions for customers. + +Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + list of available update channels to enterprise users and downgrading warning - &Launch on System Startup + + Cancel - &Restart && Update + + Change update channel - - beta: contains versions with new features that may not be tested thoroughly -- daily: contains versions created daily only for testing and development - -Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. - list of available update channels to non enterprise users and downgrading warning + + Changing update channel? - - enterprise: contains stable versions for customers. - -Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. - list of available update channels to enterprise users and downgrading warning + + Debug Archive Created - Advanced + + Redact information deemed sensitive before sharing! Debug archive created at %1 - Ask for confirmation before synchronizing external storages - Ask for confirmation before synchronizing external storages + + Restore to &%1 + - Ask for confirmation before synchronizing new folders larger than - Ask for confirmation before synchronizing new folders larger than + + Server notifications that require attention. + - Automatically disable synchronisation of folders that overcome limit - Automatically disable synchronisation of folders that overcome limit + + Show call notification dialogs. + - Cancel + + Show chat notification dialogs. - Change update channel + + Show notification when quota usage exceeds 80%. - Changing update channel? + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + + + + + You cannot disable autostart because system-wide autostart is enabled. + + + + + Zip Archives + + daily + + + + + enterprise + + + + + &Automatically check for updates + + + + + &Launch on System Startup + + + + + &Restart && Update + + + + + Advanced + + + + + Ask for confirmation before synchronizing external storages + Ask for confirmation before synchronizing external storages + + + + Ask for confirmation before synchronizing new folders larger than + Ask for confirmation before synchronizing new folders larger than + + + + Automatically disable synchronisation of folders that overcome limit + Automatically disable synchronisation of folders that overcome limit + + + + Check Now + + Create Debug Archive + Data Protection Data Protection - Debug Archive Created - - - + Desktop client x.x.x + Edit &Ignored Files + For System Tray + General Settings + + Legal Notice + MB Trailing part of "Ask confirmation before syncing folder larger than" + More Information More Information + Move removed files to trash + Necessary data Necessary data + Notify when synchronised folders grow larger than specified limit + Open Source Software Open Source Software + Privacy Policy Privacy Policy - Redact information deemed sensitive before sharing! Debug archive created at %1 - - - + Required to ensure that the software can be used as expected Required to ensure that the software can be used as expected + Restore &Default - Restore to &%1 - - - + Send anonymous use Send anonymous use - Server notifications that require attention. - - - + Server poll interval + Show &Quota Warning Notifications + Show Call Notifications + Show Chat Notifications + Show Server &Notifications - Show call notification dialogs. - - - - Show chat notification dialogs. - - - - Show notification when quota usage exceeds 80%. - - - + Show sync folders in &Explorer's navigation pane Show sync folders in &Explorer's navigation pane - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - This helps us to optimize the software and to better identify system crashes and unexpected errors. - - - Update channel - - - - Updates - Updates - - - Usage Documentation - - - - Use &Monochrome Icons - + + This helps us to optimize the software and to better identify system crashes and unexpected errors. + This helps us to optimize the software and to better identify system crashes and unexpected errors. - You cannot disable autostart because system-wide autostart is enabled. + + Update channel - Zip Archives - + + Updates + Updates - beta + + Usage Documentation - daily + + Use &Monochrome Icons - enterprise + + + beta + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + stable @@ -2714,22 +3269,27 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GETFileJob + Connection Timeout + No E-Tag received from server, check Proxy/Gateway + Server returned wrong content-range + We received a different E-Tag for resuming. Retrying next time. + We received an unexpected download Content-Length. @@ -2737,20 +3297,24 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 + Password for share required + Please enter a password for your link share: + Sharing error @@ -2758,18 +3322,22 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. + Enter Password + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Reading from keychain failed with error: "%1" @@ -2777,49 +3345,50 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + + + + Files Ignored by Patterns + Global Ignore Settings + Ignored Files Editor + Sync hidden files - - This entry is provided by the system at "%1" and cannot be modified in this view. - - - + OCC::IgnoreListTableWidget - Add - - - + Add a new ignore pattern: Add a new ignore pattern: - Allow Deletion - - - + Cannot write changes to "%1". + Could not open file + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2828,18 +3397,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Ignore Pattern Ignore Pattern + + Add + + + + + Allow Deletion + + + + Pattern + Remove + Remove all @@ -2847,109 +3430,135 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Checking rename permissions … + Could not rename file. Please make sure you are connected to the server. + Could not rename local file. %1 - Error - - - + Failed to fetch permissions with error %1 + Filename contains illegal characters: %1 + Filename contains leading and trailing spaces. + Filename contains leading spaces. + Filename contains trailing spaces. - Invalid filename + + Rename file - New filename + + The file "%1" could not be synced because the name contains characters which are not allowed on the server. - Please enter a new name for the file: + + The file "%1" could not be synced because the name contains characters which are not allowed on this system. - Rename file + + The following basenames are not allowed: %1 - The file "%1" could not be synced because the name contains characters which are not allowed on the server. + + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces - The file "%1" could not be synced because the name contains characters which are not allowed on this system. + + The following characters are not allowed: %1 - The file could not be synced because it contains characters which are not allowed on this system. + + The following file extensions are not allowed: %1 - The following basenames are not allowed: %1 + + The following filenames are not allowed: %1 - The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + + Use invalid name - The following characters are not allowed: %1 + + You don't have the permission to rename this file. Please ask the author of the file to rename it. + + + + + Error - The following file extensions are not allowed: %1 + + Invalid filename - The following filenames are not allowed: %1 + + New filename - Use invalid name + + Please enter a new name for the file: - You don't have the permission to rename this file. Please ask the author of the file to rename it. + + The file could not be synced because it contains characters which are not allowed on this system. - + OCC::LegacyAccountSelectionDialog + Legacy import + Select the accounts to import from the legacy configuration: @@ -2957,18 +3566,23 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> + Close + + Legal notice @@ -2976,24 +3590,29 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LogBrowser + Enable logging to temporary folder + Log Output + Open folder + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. @@ -3002,10 +3621,14 @@ Note that using any logging command line options will override this setting. OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> + + Error @@ -3013,26 +3636,32 @@ Note that using any logging command line options will override this setting. OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Could not get file ID. + Could not get file identifier. + Could not start editing locally. + The file identifier is empty. @@ -3040,117 +3669,150 @@ Note that using any logging command line options will override this setting. OCC::NetworkSettings - Download Bandwidth + + HTTP(S) proxy - HTTP(S) proxy + + Hostname of proxy server - Host + + Password for proxy server - Hostname of proxy server + + SOCKS5 proxy + + + + + Username for proxy server + + + + + Download Bandwidth + + + + + Host + + KBytes/s + + Limit automatically + + Limit to + + Limit to 3/4 of estimated bandwidth + Manually specify proxy + + No limit + No proxy No proxy + Note: proxy settings have no effects for accounts on localhost - Password for proxy server - - - + Proxy Settings + Proxy server requires authentication - SOCKS5 proxy - - - + Upload Bandwidth + Use system proxy - - Username for proxy server - - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + Ask again later + Get update + New Version Available + Restart and update + Skip this time + Update Failed + Update manually @@ -3158,58 +3820,72 @@ Note that using any logging command line options will override this setting. OCC::OCUpdater + %1 available. Restart application to start the update. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Checking update server … + Could not check for new updates. + Could not download update. Please open %1 to download the update manually. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Downloading %1 … + New %1 is available. Please open %2 to download the update. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. + New %1 update ready + No updates available. Your installation is the latest version. + Update Check + Update status is unknown: Did not check for new updates. + You are using the %1 update channel. Your installation is the latest version. @@ -3217,55 +3893,72 @@ Note that using any logging command line options will override this setting. OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB + + (%1) + + (experimental) + Connect + In Finder's "Locations" sidebar section + Local Sync Folder + Sync the folder "%1" + There isn't enough free space in the local folder! + + Use &virtual files instead of downloading content immediately %1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Warning: The local folder is not empty. Pick a resolution! @@ -3273,26 +3966,32 @@ Note that using any logging command line options will override this setting. OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + Configure client-side TLS certificate + Connection failed + Retry unencrypted over HTTP (insecure) + Select a different URL @@ -3300,71 +3999,88 @@ Note that using any logging command line options will override this setting. OCC::ownCloudGui + %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) + Account %1: %2 + Account synchronization is disabled + Checking for changes in local "%1" + Checking for changes in remote "%1" + Disconnected from %1 + Disconnected from accounts: + Please sign in + Terms of service + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + There are no sync folders configured. + Unsupported Server Version + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + macOS VFS for %1: A problem was encountered. + macOS VFS for %1: Last sync was successful. + macOS VFS for %1: Sync is running. @@ -3372,14 +4088,17 @@ Note that using any logging command line options will override this setting. OCC::OwncloudHttpCredsPage + &Email + Connect to %1 + Enter user credentials @@ -3387,6 +4106,8 @@ Note that using any logging command line options will override this setting. OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 @@ -3394,18 +4115,23 @@ Note that using any logging command line options will override this setting. OCC::OwncloudSetupPage + &Next > + Could not load certificate. Maybe wrong password? + + Server address does not seem to be valid + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name @@ -3414,118 +4140,150 @@ Note that using any logging command line options will override this setting. OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + A sync connection from %1 to remote directory %2 was set up. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Connection to %1 could not be established. Please check again. + Could not create local folder %1 + Creating local sync folder %1 … + Error: %1 + Failed to connect to %1 at %2:<br/>%3 + Folder rename failed + Invalid URL + Local sync folder %1 already exists, setting it up for sync.<br/><br/> + No remote folder specified! + OK + Remote folder %1 created successfully. + + Remote folder %1 creation failed with error <tt>%2</tt>. + Successfully connected to %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + + The folder creation resulted in HTTP error code %1 + The remote folder %1 already exists. Connecting it for syncing. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + There was an invalid response to an authenticated WebDAV request + Timeout while trying to connect to %1 at %2. + + Trying to connect to %1 at %2 … + creating folder on Nextcloud: %1 + failed. @@ -3533,45 +4291,55 @@ Note that using any logging command line options will override this setting. OCC::OwncloudWizard + Add %1 account + Back Next button text in new account wizard Back + Cancel + Enable experimental feature? + Enable experimental placeholder mode + Next Next button text in new account wizard + Proxy Settings Proxy Settings button text in new account wizard + Skip folders configuration + Stay safe + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3585,10 +4353,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PasswordInputDialog + Password for share required + Please enter a password for your share: @@ -3596,6 +4366,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PollJob + Invalid JSON reply from the poll URL @@ -3603,166 +4374,210 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. + Cannot modify encrypted item because the selected certificate is not valid. + Cannot sync due to invalid modification time + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflict: Server version downloaded, local copy renamed and not uploaded. + Could not upload file, because it is open in "%1". + Error while deleting file record %1 from the database + Error while reading the database + File has extension reserved for virtual files. + File is listed on the ignore list. + File is not accessible on the server. server error + File name contains at least one invalid character + File name is a reserved name on this file system. + File names containing the character "%1" are not supported on this file system. %1: the invalid character + File names ending with a period are not supported on this file system. + File/Folder is ignored because it's hidden. + Filename contains leading and trailing spaces. + Filename contains leading spaces. + Filename contains trailing spaces. + Filename is too long. + Folder is not accessible on the server. server error + Folder name contains at least one invalid character + Folder name is a reserved name on this file system. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character + Ignored because of the "choose what to sync" blacklist + + Moved to invalid target, restoring + Not allowed because you don't have permission to add files in that folder + Not allowed because you don't have permission to add subfolders to that folder + Not allowed to remove, restoring + Not allowed to upload this file because it is read-only on the server, restoring + Reason: the entire filename is forbidden. + Reason: the file has a forbidden extension (.%1). + Reason: the filename contains a forbidden character (%1). + Reason: the filename has a forbidden base name (filename start). + Stat failed. + Symbolic links are not supported in syncing. + The filename cannot be encoded on your file system. + The filename is blacklisted on the server. + Upload of %1 exceeds %2 of space left in folder %3. + Upload of %1 exceeds %2 of space left in personal files. @@ -3770,26 +4585,38 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDirectory + Could not delete file %1 from local DB + Error updating metadata due to invalid modification time + Error updating metadata: %1 + File is currently in use + + + + + + The folder %1 cannot be made read-only: %2 + + unknown exception @@ -3797,54 +4624,70 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB + Could not get file %1 from local DB + Error updating metadata: %1 + File %1 cannot be downloaded because encryption information is missing. + File %1 downloaded but it resulted in a local file name clash! + + File %1 has invalid modified time reported by server. Do not save it. + + File has changed since discovery + File was deleted from server + Free space on disk is less than %1 + The download would reduce free local disk space below the limit + The downloaded file is empty, but the server said it should have been %1. + The file %1 is currently in use + The file could not be downloaded completely. @@ -3852,10 +4695,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateItemJob + ; Restoration Failed: %1 + A file or folder was removed from a read only share, but restoring failed: %1 @@ -3863,30 +4708,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir + Could not create folder %1 Could not create folder %1 + Error updating metadata: %1 + Folder %1 cannot be created because of a local file or folder name clash! + The file %1 is currently in use + + + The folder %1 cannot be made read-only: %2 + could not delete file %1, error: %2 + unknown exception @@ -3894,14 +4748,19 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRemove + Could not delete file record %1 from local DB + Could not remove %1 because of a local file name clash + + + Temporary error when removing local item removed from server. @@ -3909,38 +4768,49 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRename + Could not delete file record %1 from local DB + + Could not get file %1 from local DB + + Error setting pin state + Error updating metadata: %1 + Failed to propagate directory rename in hierarchy + Failed to rename file + File %1 downloaded but it resulted in a local file name clash! + Folder %1 cannot be renamed because of a local file or folder name clash! Folder %1 cannot be renamed because of a local file or folder name clash! + The file %1 is currently in use @@ -3948,10 +4818,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -3959,6 +4831,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -3966,18 +4839,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 + Failed to encrypt a folder %1 + The file %1 is currently in use + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". @@ -3985,34 +4862,44 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMove + Could not delete file record %1 from local DB + Could not get file %1 from local DB + Could not rename %1 to %2, error: %3 + Error setting pin state + + Error updating metadata: %1 + Error writing metadata to the database + + The file %1 is currently in use + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". @@ -4020,46 +4907,60 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileCommon + Error updating metadata: %1 + Failed to unlock encrypted folder. Failed to unlock encrypted folder. + Failed to upload encrypted file. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists + + + File %1 has invalid modification time. Do not upload to the server. + File Removed (start upload) %1 + Local file changed during sync. + Local file changed during syncing. It will be resumed. + The file %1 is currently in use + Unable to upload an item with invalid characters + + Upload of %1 exceeds the quota for the folder Upload of %1 exceeds the quota for the folder @@ -4067,32 +4968,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileNG + File is not accessible on the server. server error + Folder is not accessible on the server. server error + Local file changed during sync. + Missing File ID from server + Poll URL missing + The local file was removed during sync. + Unexpected return code from server (%1) @@ -4100,18 +5008,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileV1 + Local file changed during sync. + Poll URL missing + The local file was removed during sync. + The server did not acknowledge the last chunk. (No e-tag was present) @@ -4119,22 +5031,27 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProxyAuthDialog + Password: + Proxy authentication required + Proxy: + The proxy server needs a username and password. + Username: @@ -4142,6 +5059,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncDialog + Choose What to Sync @@ -4149,26 +5067,33 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. + Deselect remote folders you do not wish to synchronize. + Loading … + Name + + No subfolders currently on the server. + Size @@ -4176,10 +5101,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ServerNotificationHandler + Dismiss + Reply @@ -4187,14 +5114,17 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::sesSnackBar + Error + Success Success + Warning @@ -4202,23 +5132,28 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud + Account + General + New account New Account + Settings Settings @@ -4226,19 +5161,24 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) + Global search results + No results found + + Search globally @@ -4246,6 +5186,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareManager + Error @@ -4253,38 +5194,47 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareModel + %1 days + 1 day + Could not find local folder for %1 + Internal link + Link share + Secure file drop + Secure file drop link + Share link + Today @@ -4292,40 +5242,50 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SocketApi + + Activity + Context menu share + Copy internal link + Copy private link to clipboard + Could not encrypt the following folder: "%1". Server replied with error: %2 + Delete Delete + Delete local changes + Encrypt + Expires in %1 minutes remaining time before lock expires @@ -4334,82 +5294,104 @@ Server replied with error: %2 + Failed to encrypt folder + Failed to encrypt folder at "%1" + Folder encrypted successfully + I shared something with you + Leave this share + Lock file + Locked by %1 + Move and rename … + Move and upload … + Move, rename and upload … + + Open in browser + Resharing this file is not allowed + Resharing this folder is not allowed + Resolve conflict … + Select new location … + Send private link by email … + + Share options + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + The following folder was encrypted successfully: "%1" + Unlock file @@ -4417,98 +5399,122 @@ Server replied with error: %2 OCC::SslButton + %1 + %1 (self-signed) + <h3>Certificate Details</h3> + <h3>Fingerprints</h3> + <h3>Issuer</h3> + <p><b>Note:</b> This certificate was manually approved</p> + Certificate information: + Common Name (CN): + Country: + Expires on: + Issued on: + Issuer: + No support for SSL session tickets/identifiers + Organization (O): + Organizational Unit (OU): + SHA-1: + SHA-256: + Serial: + Server version: %1 + State/Province: + Subject Alternative Names: + The connection is not secure + This connection is NOT secure as it is not encrypted. This connection is NOT secure as it is not encrypted. + This connection is encrypted using %1 bit %2. This connection is encrypted using %1 bit %2. @@ -4516,122 +5522,156 @@ Server replied with error: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; + Additional errors: + Cannot connect securely to <i>%1</i>: + + Country: %1 + Effective Date: %1 + Expiration Date: %1 + Fingerprint (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> + Issuer: %1 + + Organization: %1 - Trust this certificate anyway - - - + + Unit: %1 + Untrusted Certificate + with Certificate %1 - + + + Trust this certificate anyway + + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) + Cannot open the sync journal + Could not set file record to local DB: %1 + Could not update file metadata: %1 + Could not update file: %1 + Could not update virtual file metadata: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() + There is insufficient space available on the server for some uploads. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Unable to read from the sync journal. + Unable to read the blacklist from the local database + Unresolved conflict. + Using virtual files with suffix, but suffix is not set @@ -4639,58 +5679,76 @@ Server replied with error: %2 OCC::SyncStatusSummary + %1 of %2 + %1 of %2 · %3 left + + + All synced! All synced! + Checking folder changes + + + Offline + See below for errors + See below for warnings + Some files could not be synced! + Some files couldn't be synced! + Sync paused + Syncing + Syncing changes + Syncing file %1 of %2 + You need to accept the terms of service @@ -4698,43 +5756,55 @@ Server replied with error: %2 OCC::Systray + Add account + Download + Exit %1 + Help + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. + + Pause sync + Pause sync for all Pause sync for all + + Resume sync + Resume sync for all Resume sync for all + Settings Settings @@ -4742,22 +5812,27 @@ Server replied with error: %2 OCC::TermsOfServiceCheckWidget + Copy Link + Link copied to clipboard. + Open Browser Open Browser + Polling + Waiting for terms to be accepted @@ -4765,90 +5840,115 @@ Server replied with error: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - - - - <p><small>Using virtual files plugin: %1</small></p> - - - - <p>This release was supplied by %1.</p> - - - + ExpandMemory-Link https://wl.hidrive.com/easy/0057 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1046 - Help-Link - https://wl.hidrive.com/easy/0108 + + Login_URL + https://storage.ionos.com - Help-Link_STRATO - https://static.hidrive.com/next/1016 + + Login_URL_STRATO + https://storage.ionos.com + LegalNotice-Link https://wl.hidrive.com/easy/0004 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1026 - Login_URL - https://storage.ionos.com - - - Login_URL_STRATO - https://storage.ionos.com - - + MoreInformation-Link https://wl.hidrive.com/easy/0007 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1016 + OpenSource-Link https://wl.hidrive.com/easy/0006 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0005 + Privacy-Link_STRATO https://static.hidrive.com/next/1006 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + + + + + <p><small>Using virtual files plugin: %1</small></p> + + + + + <p>This release was supplied by %1.</p> + + + + + + + Help-Link + https://wl.hidrive.com/easy/0108 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1016 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. + Failed to fetch search providers for '%1'. Error: %2 + Search has failed for '%1'. Error: %2 + Search has failed for '%2'. @@ -4856,14 +5956,17 @@ Server replied with error: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Failed to finalize item. + Failed to unlock encrypted folder. Failed to unlock encrypted folder. + Failed to update folder metadata. @@ -4871,33 +5974,43 @@ Server replied with error: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Could not add or remove user %1 to access folder %2 + Could not fetch public key for user %1 + Could not find root encrypted folder for folder %1 + + + + + + + + + Error updating metadata for a folder %1 + Failed to unlock a folder. OCC::User - - %1 notifications - %1 notifications - + %n notification(s) %n notification @@ -4905,44 +6018,55 @@ Server replied with error: %2 + End-to-end certificate needs to be migrated to a new one + Open %1 Assistant in browser The placeholder will be the application name. Please keep it + Open %1 Talk in browser The placeholder will be the application name. Please keep it + Public Share Link + Quota Warning - %1 percent or more storage in use + Quota is updated; %1 percent of the total space is used. + Rename file + + Resolve conflict + Retry all uploads + Trigger the migration @@ -4950,26 +6074,32 @@ Server replied with error: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + Cancel + Confirm Account Removal + Leave share + Remove account + Remove connection @@ -4977,6 +6107,7 @@ Server replied with error: %2 OCC::UserStatusSelectorModel + %n day(s) %n day @@ -4984,6 +6115,7 @@ Server replied with error: %2 + %n hour(s) %n hour @@ -4991,6 +6123,7 @@ Server replied with error: %2 + %n minute(s) %n minute @@ -4998,54 +6131,70 @@ Server replied with error: %2 + 1 hour + 30 minutes + 4 hours + Could not clear status message. Make sure you are connected to the server. + Could not fetch predefined statuses. Make sure you are connected to the server. + Could not fetch status. Make sure you are connected to the server. + Could not set status. Make sure you are connected to the server. + + Don't clear + Emojis are not supported. Some status functionality may not work. + Less than a minute + Status feature is not supported. You will not be able to set your status. + + This week + + Today @@ -5053,14 +6202,17 @@ Server replied with error: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. @@ -5068,30 +6220,37 @@ Server replied with error: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. + + Error downloading %1 + + + + > More details + Could not be downloaded + Download error + Error downloading - Error downloading %1 - - - + More details @@ -5099,6 +6258,8 @@ Server replied with error: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time @@ -5106,6 +6267,8 @@ Server replied with error: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time @@ -5113,10 +6276,12 @@ Server replied with error: %2 OCC::WebEnginePage + Invalid certificate detected + The host "%1" provided an invalid certificate. Continue? @@ -5124,6 +6289,7 @@ Server replied with error: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>You have been logged out of your account %1 at %2. Please login again.</b> @@ -5131,22 +6297,27 @@ Server replied with error: %2 OCC::WelcomePage - Form + + Host your own server - Host your own server + + Keep your data secure and under your control - Keep your data secure and under your control + + Form + Log in + Sign up with provider @@ -5154,27 +6325,33 @@ Server replied with error: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy + Hostname of proxy server + Password for proxy server + Proxy Settings Dialog window title for proxy settings + SOCKS5 proxy + Username for proxy server @@ -5182,55 +6359,68 @@ Server replied with error: %2 OwncloudAdvancedSetupPage + &Local Folder + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + Ask before syncing folders larger than + Choose different folder + Choose what to sync + Erase local folder and start a clean sync + Keep local data + Local Folder + MB Trailing part of "Ask confirmation before syncing folder larger than" + Server address + Sync Logo + Synchronize everything from server + Username @@ -5238,10 +6428,12 @@ Server replied with error: %2 OwncloudHttpCredsPage + &Password + &Username @@ -5249,10 +6441,12 @@ Server replied with error: %2 OwncloudSetupPage + Server address + This is the link to your %1 web interface when you open it in the browser. @@ -5260,145 +6454,170 @@ Server replied with error: %2 progress + Deleted + Deleting + Downloaded + Downloading + + Error + Filesystem access error + Ignored + Ignoring + Moved to %1 + Moving + Replaced by virtual file + Server version downloaded, copied changed local file into case conflict conflict file + Server version downloaded, copied changed local file into conflict file + + Unknown + Updated end-to-end encryption metadata + Updated local metadata + Updated local virtual files metadata Updated local virtual files metadata + Updating end-to-end encryption metadata + Updating local metadata + Updating local virtual files metadata + Uploaded + Uploading + Virtual file created - - updating local virtual files metadata - Updating local virtual files metadata - ProxySettings + Form + Host + Manually specify proxy + No proxy No proxy + Note: proxy settings have no effects for accounts on localhost + Proxy Settings + Proxy server requires authentication + Use system proxy QObject - - %1: %2 - this displays an error string (%2) for a file %1 - - + %nd delay in days after an activity @@ -5407,6 +6626,7 @@ Server replied with error: %2 + %nh delay in hours after an activity @@ -5415,6 +6635,7 @@ Server replied with error: %2 + %nmin delay in minutes after an activity @@ -5423,174 +6644,222 @@ Server replied with error: %2 + 1min one minute after activity date and time - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + + Some time ago - Could not create debug archive in selected location! - Could not create debug archive in selected location! + + in the future + - Error deleting the file + + now + + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + The directory %1 cannot be part of your sync directory. Please choose another folder. + + + + New folder + + Could not create debug archive in selected location! + Could not create debug archive in selected location! + + + Failed to create debug archive Failed to create debug archive - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + + Synced %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + + You changed %1 - New folder + + You created %1 - Paths beginning with '#' character are not supported in VFS mode. + + You deleted %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + + You renamed %1 - Some time ago + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Synced %1 + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - The directory %1 cannot be part of your sync directory. Please choose another folder. - The directory %1 cannot be part of your sync directory. Please choose another folder. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + The server does not recognize the request method. Please contact your server administrator for help. + The server does not support the version of the connection being used. Contact your server administrator for help. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + This file type isn’t supported. Please contact your server administrator for assistance. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - You changed %1 - - - - You created %1 - - - - You deleted %1 - - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - You renamed %1 + + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. + + Error deleting the file - in the future + + %1: %2 + this displays an error string (%2) for a file %1 - now + + Paths beginning with '#' character are not supported in VFS mode. - + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5599,26 +6868,32 @@ Server replied with error: %2 + All local versions + All server versions + Cancel + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Resolve conflicts + Solve sync conflicts @@ -5626,6 +6901,7 @@ Server replied with error: %2 SesErrorBox + Error @@ -5633,14 +6909,17 @@ Server replied with error: %2 SesTrayHeader + Open Nextcloud in browser Open HiDrive Next in browser + Open local or team folders + Website Website @@ -5648,10 +6927,12 @@ Server replied with error: %2 ShareDelegate + Copied! + Share options @@ -5659,66 +6940,78 @@ Server replied with error: %2 ShareDetailsPage + Add another link + Allow resharing + + Allow upload and editing + An error occurred setting the share password. + Copy share link Copy share link + Custom Permissions Custom Permissions + Enter a note for the recipient - Enter the note to recipient - Enter the note to recipient - - + File drop (upload only) + Hide download + Note to recipient + Password protection + Set expiration date + Share link copied! Share link copied! + Unshare + View only @@ -5726,10 +7019,12 @@ Server replied with error: %2 ShareeSearchField + Search for users or groups… + Sharing is not available for this folder @@ -5737,30 +7032,37 @@ Server replied with error: %2 ShareView + Expires in %1 + Password required for new share + Share password + Shared with you by %1 + Sharing is disabled + Sharing is disabled. + This item cannot be shared. @@ -5768,6 +7070,7 @@ Server replied with error: %2 SyncJournalDb + Failed to connect database. @@ -5775,14 +7078,17 @@ Server replied with error: %2 SyncStatus + Open browser + Resolve conflicts + Sync now @@ -5790,10 +7096,12 @@ Server replied with error: %2 TalkReplyTextField + Reply to … + Send reply to chat message @@ -5801,14 +7109,17 @@ Server replied with error: %2 TermsOfServiceCheckWidget + Logo + Switch to your browser to accept the terms of service + Terms of Service @@ -5816,42 +7127,52 @@ Server replied with error: %2 theme + Error occurred during setup + Error occurred during sync + Preparing to sync + Stopping sync + Sync is paused + Sync is running + Sync status is unknown + Sync was successful + Sync was successful but some files were ignored + Waiting to start syncing @@ -5859,30 +7180,37 @@ Server replied with error: %2 TrayFoldersMenuButton + Files Files + Open %1 in file explorer + Open local folder + Open local folder "%1" + Open local or team folders + Open team folder "%1" + User group and local folders menu @@ -5890,42 +7218,52 @@ Server replied with error: %2 TrayWindowAccountMenu + Account switcher and settings menu + Add account + Current account + Current account avatar + Current account status is do not disturb + Current account status is online + Exit + Pause sync for all Pause sync for all + Resume sync for all Resume sync for all + Settings Settings @@ -5933,14 +7271,17 @@ Server replied with error: %2 TrayWindowHeader + More apps + Open %1 in browser + Open local or team folders @@ -5948,22 +7289,27 @@ Server replied with error: %2 TrayWindowHeaderBar + More apps + Open %1 in browser + Open Nextcloud in browser Open HiDrive Next in browser + Open local or team folders + Website Website @@ -5971,6 +7317,7 @@ Server replied with error: %2 UnifiedSearchInputContainer + Search files, messages, events … @@ -5978,6 +7325,7 @@ Server replied with error: %2 UnifiedSearchPlaceholderView + Start typing to search @@ -5985,6 +7333,7 @@ Server replied with error: %2 UnifiedSearchResultFetchMoreTrigger + Load more results @@ -5992,6 +7341,7 @@ Server replied with error: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. @@ -5999,6 +7349,7 @@ Server replied with error: %2 UnifiedSearchResultListItem + Load more results @@ -6006,6 +7357,7 @@ Server replied with error: %2 UnifiedSearchResultNothingFound + No results for @@ -6013,6 +7365,7 @@ Server replied with error: %2 UnifiedSearchResultSectionItem + Search results section %1 @@ -6020,22 +7373,29 @@ Server replied with error: %2 UserLine + Account actions + + Log in + + Log out + Remove account + Switch to account @@ -6043,26 +7403,32 @@ Server replied with error: %2 UserStatusMessageView + Apply + Cancel + Clear + Clear status message after + Status message + What is your status? @@ -6070,38 +7436,47 @@ Server replied with error: %2 UserStatusSetStatusView + Appear offline + Away + Busy + Do not disturb + Invisible + Mute all notifications + Online + Online status + Status message @@ -6109,30 +7484,37 @@ Server replied with error: %2 Utility + %1 %2 + %L1 B + %L1 GB + %L1 KB + %L1 MB + %L1 TB + %n day(s) %n day @@ -6140,6 +7522,7 @@ Server replied with error: %2 + %n hour(s) %n hour @@ -6147,6 +7530,7 @@ Server replied with error: %2 + %n minute(s) %n minute @@ -6154,6 +7538,7 @@ Server replied with error: %2 + %n month(s) %n month @@ -6161,6 +7546,7 @@ Server replied with error: %2 + %n second(s) %n second @@ -6168,6 +7554,7 @@ Server replied with error: %2 + %n year(s) %n year @@ -6178,42 +7565,52 @@ Server replied with error: %2 utility + Always available locally + Available online only + Could not open browser + Could not open email client + Currently available locally + Free up local space + Make always available locally + Some available online only + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? @@ -6221,14 +7618,17 @@ Server replied with error: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" + The checksum header is malformed. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" diff --git a/translations/client_en_GB.ts b/translations/client_en_GB.ts index c9b381f7bd59f..e230727e3b2fc 100644 --- a/translations/client_en_GB.ts +++ b/translations/client_en_GB.ts @@ -1,55 +1,14 @@ - - - - Agree - Agree - - - Back - Back - - - Necessary data - Necessary data - - - Required to ensure that the software can be used as expected - Required to ensure that the software can be used as expected - - - Save Settings - Save Settings - - - Send anonymous use - Send anonymous use - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - This helps us to optimize the software and to better identify system crashes and unexpected errors. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - - ActivityItem + In %1 In %1 + Open %1 locally Open %1 locally @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Dismiss + Open file details Open file details @@ -68,40 +29,40 @@ ActivityList + Activity list Activity list + No activities yet No activities yet + Scroll to top Scroll to top - - BasicComboBox - - Clear status message menu - Delete status message menu - - CallNotificationDialog + Answer Talk call notification Answer Talk call notification + Decline Decline + Decline Talk call notification Decline Talk call notification + Talk notification caller avatar Talk notification caller avatar @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Checking for changes in "%1" + Help Help + Log out Log out + + No recently changed files No recently changed files + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop + Open in browser Open in browser + Pause synchronization Pause synchronization + Quit sync client Quit sync client + Recently changed Recently changed + Settings Settings + Sync paused Sync paused + Syncing Syncing + Syncing %1 Syncing %1 + Syncing %1 (%2 left) Syncing %1 (%2 left) + Syncing %1 of %2 Syncing %1 of %2 + Syncing %1 of %2 (%3 left) Syncing %1 of %2 (%3 left) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Local version + Server version Server version @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Account switcher and settings menu + Add account Add account + Add new account Add new account + Current account Current account + Current account avatar Current account avatar + Current account status is do not disturb Current account status is do not disturb + Current account status is online Current account status is online + Exit Exit + + Pause sync for all Pause sync for all + + Resume sync for all Resume sync for all + Settings Settings @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Opening file for local editing @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis No recent emojis @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Discovering the certificates stored on your USB token @@ -260,6 +257,7 @@ ErrorBox + Error Error @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss Dismiss @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 File details of %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Local copies + Reload Reload + Remove local copies Remove local copies - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - - FileProviderFileDelegate + Delete Delete @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Enable virtual files + General settings General settings + Reset virtual files environment Reset virtual files environment - Signal file provider domain - Signal file provider domain - - + Virtual files settings Virtual files settings @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB of %2 GB remote files synced - Evict local copies... - Evict local copies... - - + Free up space … Free up space … + Local storage use Local storage use @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! All synced! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Request a sync of changes for the VFS environment. macOS may ignore or delay this request. + Request sync Request sync + Syncing Syncing @@ -373,10 +373,12 @@ macOS may ignore or delay this request. FileSystem + Could not remove folder "%1" Could not remove folder "%1" + Error removing "%1": %2 Error removing "%1": %2 @@ -384,22 +386,28 @@ macOS may ignore or delay this request. Flow2AuthWidget + + An error occurred while connecting. Please try again. An error occurred while connecting. Please try again. + Browser Authentication Browser Authentication + Copy Link Copy Link + Logo Logo + Switch to your browser to connect your account Switch to your browser to connect your account @@ -407,10 +415,12 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync + Add Folder Sync Add Folder Sync + Step 3 of 3: Selektive Synchronisation Step 3 of 3: Selective Synchronisation @@ -418,18 +428,22 @@ macOS may ignore or delay this request. FolderWizardSourcePage + &Choose &Choose + Add Folder Sync Add Folder Sync + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Step 1 of 3: Select local folder Step 1 of 3: Select local folder @@ -437,30 +451,37 @@ macOS may ignore or delay this request. FolderWizardTargetPage + Add Folder Sync Add Folder Sync + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Create folder Create folder + Folders Folders + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Refresh Refresh + Step 2 of 3: Directory in your %1 Step 2 of 3: Directory in your %1 @@ -468,14 +489,17 @@ macOS may ignore or delay this request. MainWindow + Main content Main content + New activities New activities + Unified search results list Unified search results list @@ -483,6 +507,7 @@ macOS may ignore or delay this request. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS may ignore or delay this request. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + The server enforces strict transport security and does not accept untrusted certificates. The server enforces strict transport security and does not accept untrusted certificates. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. @@ -505,18 +533,22 @@ macOS may ignore or delay this request. OCC::Account + File %1 is already locked by %2. File %1 is already locked by %2. + Lock operation on %1 failed with error %2 Lock operation on %1 failed with error %2 + Public Share Link Public Share Link + Unlock operation on %1 failed with error %2 Unlock operation on %1 failed with error %2 @@ -524,30 +556,30 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - - + An account was detected from a legacy desktop client. Should the account be imported? An account was detected from a legacy desktop client. Should the account be imported? + Could not import accounts from legacy client configuration. Could not import accounts from legacy client configuration. + Import Import + + Legacy import Legacy import + Skip Skip @@ -555,310 +587,333 @@ Should the account be imported? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. + %1 as %2 %1 as %2 + %1 in use %1 in use + %1 of %2 in use %1 of %2 in use + (experimental) (experimental) + <p>Could not create local folder <i>%1</i>.</p> <p>Could not create local folder <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> - Apply - Apply - - - Apply manual changes - Apply manual changes - - + + Availability Availability - Cancel - Cancel - - + Choose what to sync Choose what to sync + Confirm Folder Sync Connection Removal Confirm Folder Sync Connection Removal + Connected to %1. Connected to %1. - Connected with <server> as <user> - Connected with <server> as <user> - - + Connecting to %1 … Connecting to %1 … - Connection settings - Connection settings - - + Could not encrypt folder because the folder does not exist anymore Could not encrypt folder because the folder does not exist anymore + + Create new folder Create new folder + Currently there is no storage usage information available. Currently there is no storage usage information available. + Disable support Disable support + Disable virtual file support … Disable virtual file support … + Disable virtual file support? Disable virtual file support? + Display mnemonic Display mnemonic + + Do not encrypt folder Do not encrypt folder + Do you want to forget the end-to-end encryption settings for %1 on this device? Do you want to forget the end-to-end encryption settings for %1 on this device? + + Edit Ignored Files Edit Ignored Files + Enable virtual file support %1 … Enable virtual file support %1 … + Encrypt Encrypt + + Encrypt folder Encrypt folder + Encryption failed Encryption failed + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + End-to-end Encryption End-to-end Encryption + End-to-end Encryption with Virtual Files End-to-end Encryption with Virtual Files + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + End-to-end encryption has not been initialized on this account. End-to-end encryption has not been initialized on this account. + End-to-end encryption mnemonic End-to-end encryption mnemonic - Expand Memory - Expand Memory - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0057 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1046 - - + Folder creation failed Folder creation failed + Force sync now Force sync now + Forget encryption setup Forget encryption setup + Forget the end-to-end encryption on this device Forget the end-to-end encryption on this device + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Migrate certificate to a new one Migrate certificate to a new one + No %1 connection configured. No %1 connection configured. + No account configured. No account configured. + + Open folder Open folder + Pause sync Pause sync + Please wait for the folder to sync before trying to encrypt it. Please wait for the folder to sync before trying to encrypt it. + Remove Folder Sync Connection Remove Folder Sync Connection + Remove folder sync connection Remove folder sync connection + Restart sync Restart sync + Resume sync Resume sync + Server %1 is currently being redirected, or your connection is behind a captive portal. Server %1 is currently being redirected, or your connection is behind a captive portal. + Server %1 is currently in maintenance mode. Server %1 is currently in maintenance mode. + Server %1 is temporarily unavailable. Server %1 is temporarily unavailable. + Server configuration error: %1 at %2. Server configuration error: %1 at %2. + Set up encryption Set up encryption + Signed out from %1. Signed out from %1. - Standard file sync - Standard file sync - - + Storage space %1% occupied Storage space %1% occupied - Storage space: … - Storage space: … - - + Sync Running Sync Running - Synchronize all - Synchronise all - - - Synchronize none - Synchronize none - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully The folder has a sync error. Encryption of this folder will be possible once it has synced successfully + The server version %1 is unsupported! Proceed at your own risk. The server version %1 is unsupported! Proceed at your own risk. + The syncing operation is running.<br/>Do you want to terminate it? The syncing operation is running.<br/>Do you want to terminate it? + There are folders that have grown in size beyond %1MB: %2 There are folders that have grown in size beyond %1MB: %2 + There are folders that were not synchronized because they are external storages: There are folders that were not synchronised because they are external storages: + There are folders that were not synchronized because they are too big or external storages: There are folders that were not synchronised because they are too big or external storages: + There are folders that were not synchronized because they are too big: There are folders that were not synchronised because they are too big: + This account supports end-to-end encryption, but it needs to be set up first. This account supports end-to-end encryption, but it needs to be set up first. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -871,67 +926,129 @@ The only advantage of disabling virtual file support is that the selective sync This action will abort any currently running synchronization. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - - + Unable to connect to %1. Unable to connect to %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronised to this computer any more - - - Virtual file sync - Virtual file sync - - + Warning Warning + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? + You need to accept the terms of service at %1. You need to accept the terms of service at %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". - + + + Apply + Apply + + + + Apply manual changes + Apply manual changes + + + + + + Cancel + Cancel + + + + Connected with <server> as <user> + Connected with <server> as <user> + + + + Connection settings + Connection settings + + + + Expand Memory + Expand Memory + + + + Standard file sync + Standard file sync + + + + + Storage space: … + Storage space: … + + + + Synchronize all + Synchronise all + + + + Synchronize none + Synchronize none + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronised to this computer any more + + + + Virtual file sync + Virtual file sync + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + There was an invalid response to an authenticated WebDAV request There was an invalid response to an authenticated WebDAV request @@ -939,46 +1056,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials Asking Credentials + Configuration error Configuration error + Connected Connected + Disconnected Disconnected + Maintenance mode Maintenance mode + Need the user to accept the terms of service Need the user to accept the terms of service + Network error Network error + Redirect detected Redirect detected + Service unavailable Service unavailable + Signed out Signed out + Unknown account state Unknown account state @@ -986,14 +1114,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … Fetching activities … + For more activities please open the Activity app. For more activities please open the Activity app. + Network error occurred: client will retry syncing. Network error occurred: client will retry syncing. @@ -1001,34 +1132,42 @@ Would you like to do this now? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Certificate files (*.p12 *.pfx) + + + + Select a certificate + Select a certificate + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. + Browse … Browse … + Certificate & Key (pkcs12): Certificate & Key (pkcs12): - Certificate files (*.p12 *.pfx) - Certificate files (*.p12 *.pfx) - - + Certificate password: Certificate password: + SSL client certificate authentication SSL client certificate authentication - Select a certificate - Select a certificate - - + This server probably requires a SSL client certificate. This server probably requires a SSL client certificate. @@ -1036,32 +1175,39 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported %1 accounts + %1 folders number of folders imported %1 folders + 1 account 1 account + 1 folder 1 folder + Continue Continue + Error accessing the configuration file Error accessing the configuration file + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1069,35 +1215,43 @@ Would you like to do this now? %3 + Legacy import Legacy import + Quit Quit + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. + deleting deleting + ignoring ignoring + newer newer software version newer + older older software version older @@ -1106,18 +1260,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: &Password: + &Username: &Username: + Authentication Required Authentication Required + Enter username and password for "%1" at %2. Enter username and password for "%1" at %2. @@ -1125,10 +1283,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 Failed to unlock encrypted folder %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -1136,18 +1296,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Error updating metadata: %1 + File %1 can not be downloaded because of a local file name clash! File %1 can not be downloaded because of a local file name clash! + The file %1 is currently in use The file %1 is currently in use + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Unable to update metadata of new file %1. @@ -1156,50 +1320,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 Error updating metadata: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists File %1 cannot be uploaded because another file with the same name, differing only in case, exists + File %1 has invalid modification time. Do not upload to the server. File %1 has invalid modification time. Do not upload to the server. + File %1 has invalid modified time. Do not upload to the server. File %1 has invalid modified time. Do not upload to the server. + File Removed (start upload) %1 File Removed (start upload) %1 + File contains leading or trailing spaces and couldn't be renamed File contains leading or trailing spaces and couldn't be renamed + + Local file changed during sync. Local file changed during sync. + Local file changed during syncing. It will be resumed. Local file changed during syncing. It will be resumed. + Network error: %1 Network error: %1 + Restoration failed: %1 Restoration failed: %1 + The file %1 is currently in use The file %1 is currently in use + The local file was removed during sync. The local file was removed during sync. @@ -1207,30 +1384,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Cannot rename file because a file with the same name already exists on the server. Please pick another name. + Could not rename file. Please make sure you are connected to the server. Could not rename file. Please make sure you are connected to the server. + Failed to fetch permissions with error %1 Failed to fetch permissions with error %1 + Filename contains leading and trailing spaces. Filename contains leading and trailing spaces. + Filename contains leading spaces. Filename contains leading spaces. + Filename contains trailing spaces. Filename contains trailing spaces. + You don't have the permission to rename this file. Please ask the author of the file to rename it. You don't have the permission to rename this file. Please ask the author of the file to rename it. @@ -1238,86 +1422,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 does not support equal file names with only letter casing differences. + + Filename contains illegal characters: %1 + Filename contains illegal characters: %1 + + + + Filename contains leading and trailing spaces. + Filename contains leading and trailing spaces. + + + + Filename contains leading spaces. + Filename contains leading spaces. + + + + Filename contains trailing spaces. + Filename contains trailing spaces. + + + + Rename file + Rename file + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + + + + Use invalid name + Use invalid name + + + + 0 byte 0 byte + Case Clash Conflict Case Clash Conflict + Case clashing file Case clashing file + Error Error + Existing file Existing file - Filename contains illegal characters: %1 - Filename contains illegal characters: %1 - - - Filename contains leading and trailing spaces. - Filename contains leading and trailing spaces. - - - Filename contains leading spaces. - Filename contains leading spaces. - - - Filename contains trailing spaces. - Filename contains trailing spaces. - - + New filename New filename + + Open clashing file Open clashing file + + Open existing file Open existing file + Please enter a new name for the clashing file: Please enter a new name for the clashing file: - Rename file - Rename file - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. The file could not be synced because it generates a case clash conflict with an existing file on this system. - Use invalid name - Use invalid name - - + file A file A + file B file B + + today today @@ -1325,6 +1534,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database Error writing metadata to the database @@ -1332,27 +1542,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: Enter Certificate USB Token PIN: + Enter E2E passphrase Enter E2E passphrase + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Input PIN code + Invalid PIN. Login failed Invalid PIN. Login failed + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> @@ -1360,66 +1576,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte - 0 byte - - - <a href="%1">Open local version</a> - <a href="%1">Open local version</a> - - - <a href="%1">Open server version</a> - <a href="%1">Open server version</a> - - - Click to open the file - Click to open the file - - - Conflicting versions of %1. - Conflicting versions of %1. - - + Keep both versions Keep both versions + Keep local version Keep local version + + Keep selected version Keep selected version + Keep server version Keep server version - Local version - Local version - - + Open local version Open local version + Open server version Open server version + + + 0 byte + 0 byte + + + + <a href="%1">Open local version</a> + <a href="%1">Open local version</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Open server version</a> + + + + + Click to open the file + Click to open the file + + + + + Conflicting versions of %1. + Conflicting versions of %1. + + + + Local version + Local version + + + Server version Server version + Sync Conflict Sync Conflict + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. + + today today @@ -1427,22 +1664,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion Confirm deletion + Do you want to delete the directory <i>%1</i> and all its contents permanently? Do you want to delete the directory <i>%1</i> and all its contents permanently? + Do you want to delete the file <i>%1</i> permanently? Do you want to delete the file <i>%1</i> permanently? + + Error Error + + Moving file failed: %1 @@ -1454,27 +1698,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Authentication error: Either username or password are wrong. + No %1 account configured The placeholder will be the application name. Please keep it No %1 account configured + Please update to the latest server and restart the client. Please update to the latest server and restart the client. + The configured server for this client is too old The configured server for this client is too old + The provided credentials are not correct The provided credentials are not correct + Timeout Timeout @@ -1482,68 +1732,83 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. + + + Agree Agree + Form Form + Settings Settings - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://static.hidrive.com/next/1006'>privacy policy</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + + + Back Back + Form Form + Necessary data Necessary data + Required to ensure that the software can be used as expected Required to ensure that the software can be used as expected + Save Settings Save Settings + Send anonymous use Send anonymous use + This helps us to optimize the software and to better identify system crashes and unexpected errors. This helps us to optimize the software and to better identify system crashes and unexpected errors. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Error while canceling deletion of %1 + Error while canceling deletion of a file Error while canceling deletion of a file @@ -1551,18 +1816,23 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Encrypted metadata setup error! + Encrypted metadata setup error: initial signature from server is empty. Encrypted metadata setup error: initial signature from server is empty. + Server error: PROPFIND reply is not XML formatted! Server error: PROPFIND reply is not XML formatted! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” @@ -1570,22 +1840,27 @@ Would you like to do this now? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Directory not accessible on client, permission denied + Directory not found: %1 Directory not found: %1 + Error while opening directory %1 Error while opening directory %1 + Error while reading directory %1 Error while reading directory %1 + Filename encoding is not valid Filename encoding is not valid @@ -1593,62 +1868,93 @@ Would you like to do this now? OCC::EditLocallyJob + + + An error occurred during data retrieval. An error occurred during data retrieval. + + An error occurred during setup. An error occurred during setup. + + An error occurred trying to synchronise the file to edit locally. An error occurred trying to synchronise the file to edit locally. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Could not find a file for local editing. Make sure it is not excluded via selective sync. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Could not find a remote file info for local editing. Make sure its path is valid. Could not find a remote file info for local editing. Make sure its path is valid. + Could not open %1 Could not open %1 + + + + + + + + Could not start editing locally. Could not start editing locally. + File %1 already locked. File %1 already locked. + File %1 could not be locked. File %1 could not be locked. + File %1 now locked. File %1 now locked. + Invalid local file path. Invalid local file path. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. + Please try again. Please try again. + Server error: PROPFIND reply is not XML formatted! Server error: PROPFIND reply is not XML formatted! @@ -1656,10 +1962,12 @@ Would you like to do this now? OCC::EditLocallyManager + Could not validate the request to open a file from server. Could not validate the request to open a file from server. + Please try again. Please try again. @@ -1667,26 +1975,34 @@ Would you like to do this now? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. An error occurred trying to verify the request to edit locally. + Could not find an account for local editing. Could not find an account for local editing. + Could not start editing locally. Could not start editing locally. + Invalid file path was provided. Invalid file path was provided. + Invalid token received. Invalid token received. + + + Please try again. Please try again. @@ -1694,22 +2010,34 @@ Would you like to do this now? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Error fetching encrypted folder ID. + + + + + + Error fetching metadata. Error fetching metadata. + + + Error locking folder. Error locking folder. + Error parsing or decrypting metadata. Error parsing or decrypting metadata. + Failed to upload metadata Failed to upload metadata @@ -1717,6 +2045,7 @@ Would you like to do this now? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Could not generate the metadata for encryption, Unlocking the folder. @@ -1726,6 +2055,7 @@ This can be an issue with your OpenSSL libraries. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1734,6 +2064,7 @@ This can be an issue with your OpenSSL libraries. + %1 hour(s) ago hours elapsed since file last modified @@ -1742,6 +2073,7 @@ This can be an issue with your OpenSSL libraries. + %1 minute(s) ago minutes elapsed since file last modified @@ -1750,6 +2082,7 @@ This can be an issue with your OpenSSL libraries. + %1 month(s) ago months elapsed since file last modified @@ -1758,6 +2091,7 @@ This can be an issue with your OpenSSL libraries. + %1 second(s) ago seconds elapsed since file last modified @@ -1766,6 +2100,7 @@ This can be an issue with your OpenSSL libraries. + %1 year(s) ago years elapsed since file last modified @@ -1774,6 +2109,7 @@ This can be an issue with your OpenSSL libraries. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1785,22 +2121,28 @@ This can be an issue with your OpenSSL libraries. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. @@ -1808,38 +2150,48 @@ This can be an issue with your OpenSSL libraries. OCC::Flow2AuthWidget + Copy Link Copy Link + + Error Error + Link copied to clipboard. Link copied to clipboard. + Open Browser Open Browser + Polling for authorization Polling for authorization + Starting authorization Starting authorization + Switch to your browser to connect your account Switch to your browser to connect your account + Unable to open the Browser, please copy the link to your Browser. Unable to open the Browser, please copy the link to your Browser. + Waiting for authorization Waiting for authorization @@ -1847,6 +2199,7 @@ This can be an issue with your OpenSSL libraries. OCC::Folder + %1 and %n other file(s) are currently locked. %1 and %n other file(s) are currently locked. @@ -1854,6 +2207,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 and %n other file could not be synced due to errors. See the log for details. @@ -1861,6 +2215,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been added. %1 and %n other file(s) have been added. @@ -1868,6 +2223,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been removed. %1 and %n other file have been removed. @@ -1875,6 +2231,7 @@ This can be an issue with your OpenSSL libraries. + %1 and %n other file(s) have been updated. %1 and %n other file have been updated. @@ -1882,14 +2239,17 @@ This can be an issue with your OpenSSL libraries. + %1 could not be synced due to an error. See the log for details. %1 could not be synced due to an error. See the log for details. + %1 has a sync conflict. Please check the conflict file! %1 has a sync conflict. Please check the conflict file! + %1 has and %n other file(s) have sync conflicts. %1 has and %n other file have sync conflicts. @@ -1897,11 +2257,13 @@ This can be an issue with your OpenSSL libraries. + %1 has been added. %1 names a file. %1 has been added. + %1 has been moved to %2 and %n other file(s) have been moved. %1 has been moved to %2 and %n other file have been moved. @@ -1909,15 +2271,18 @@ This can be an issue with your OpenSSL libraries. + %1 has been moved to %2. %1 has been moved to %2. + %1 has been removed. %1 names a file. %1 has been removed. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 has been renamed to %2 and %n other file have been renamed. @@ -1925,30 +2290,36 @@ This can be an issue with your OpenSSL libraries. + %1 has been renamed to %2. %1 and %2 name files. %1 has been renamed to %2. + %1 has been updated. %1 names a file. %1 has been updated. + %1 is currently locked. %1 is currently locked. + A folder from an external storage has been added. A folder from an external storage has been added. + A folder has surpassed the set folder size limit of %1MB: %2. %3 A folder has surpassed the set folder size limit of %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1957,6 +2328,7 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie aus dem Ordner "%1" auf den Server hochladen. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1965,10 +2337,12 @@ Bitte bestätigen Sie, ob Sie mit diesen Löschungen fortfahren möchten. Alternativ können Sie alle gelöschten Dateien wiederherstellen, indem Sie sie vom Server herunterladen. + A new folder larger than %1 MB has been added: %2. A new folder larger than %1 MB has been added: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1981,70 +2355,87 @@ This means that the synchronization client might not upload local changes immedi %1 + Could not read system exclude file Could not read system exclude file + Keep syncing Keep syncing + Please choose a different location. %1 isn't a readable folder. Please choose a different location. %1 isn't a readable folder. + Please choose a different location. %1 isn't a valid folder. Please choose a different location. %1 isn't a valid folder. + Please choose a different location. The folder %1 doesn't exist. Please choose a different location. The folder %1 doesn't exist. + Please go in the settings to select it if you wish to download it. Please go in the settings to select it if you wish to download it. + Proceed with Deletion Proceed with Deletion + Remove all files? Remove all files? + Restore Files from Server Restore Files from Server + Restore Files to Server Restore Files to Server + Stop syncing Stop syncing + Sync Activity Sync Activity + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. The file %1 was created but was excluded from synchronization previously. It will not be synchronized. + The folder %1 has surpassed the set folder size limit of %2MB. The folder %1 has surpassed the set folder size limit of %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. + Virtual file download failed with code "%1", status "%2" and error message "%3" Virtual file download failed with code "%1", status "%2" and error message "%3" + Would you like to stop syncing this folder? Would you like to stop syncing this folder? @@ -2052,26 +2443,32 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderCreationDialog + %1 Create new folder %1 Create new folder + Could not create a folder! Check your write permissions. Could not create a folder! Check your write permissions. + + Error + Error + + + Create new folder Create new folder + Enter folder name Enter folder name - Error - Error - - + Folder already exists Folder already exists @@ -2079,108 +2476,136 @@ This means that the synchronization client might not upload local changes immedi OCC::FolderMan + %1 (Sync is paused) %1 (Sync is paused) + (backup %1) (backup %1) + (backup) (backup) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. + Could not reset folder state Could not reset folder state + Last sync was successful. Last sync was successful. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Please choose a different location. %1 is already being used as a sync folder for %2. + + Please choose a different location. %1 is already being used as a sync folder. Please choose a different location. %1 is already being used as a sync folder. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Please choose a different location. %1 is already contained in a folder used as a sync folder. + Please choose a different location. The path %1 doesn't exist. Please choose a different location. The path %1 doesn't exist. + Please choose a different location. The path %1 isn't a folder. Please choose a different location. The path %1 isn't a folder. + Please choose a different location. The selected folder isn't valid. Please choose a different location. The selected folder isn't valid. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Please choose a different location. You don't have enough permissions to write to %1. + Preparing for sync. Preparing for sync. + Setup error. Setup error. + Sync finished with unresolved conflicts. Sync finished with unresolved conflicts. + Sync is paused. Sync is paused. + Sync is running. Sync is running. + Sync request was cancelled. Sync request was cancelled. + Syncing %1 Syncing %1 + Syncing %1 (%2 left) Syncing %1 (%2 left) + Syncing %1 (A few seconds left) Syncing %1 (A few seconds left) + Syncing %1 of %2 Syncing %1 of %2 + Syncing %1 of %2 (%3 left) Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (A few seconds left) Syncing %1 of %2 (A few seconds left) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2191,10 +2616,12 @@ To resolve this issue: please remove %1 from one of the accounts and create a ne For advanced users: this issue might be related to multiple sync database files found in one folder. Please check %1 for outdated and unused .sync_*.db files and remove them. + Undefined state. Undefined state. + Waiting to start syncing. Waiting to start syncing. @@ -2202,14 +2629,17 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate + Add Folder Sync Add Folder Sync + File File + Synchronize any other local folder with your %1 Synchronize any other local folder with your %1 @@ -2217,113 +2647,141 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 of %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 of %2, file %3 of %4 + %5 left, %1 of %2, file %3 of %4 %5 left, %1 of %2, file %3 of %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" A few seconds left, %1 of %2, file %3 of %4 + About to start syncing About to start syncing + Checking for changes in local "%1" Checking for changes in local "%1" + Checking for changes in remote "%1" Checking for changes in remote "%1" + Click this button to add a folder to synchronize. Click this button to add a folder to synchronise. + Could not decrypt! Could not decrypt! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s + Error while loading the list of folders from the server. Error while loading the list of folders from the server. + Fetching folder list from server … Fetching folder list from server … + File %1 of %2 File %1 of %2 + Preparing to sync … Preparing to sync … + Signed out Signed out + Synchronizing files in local folder Synchronizing files in local folder + Synchronizing virtual files in local folder Synchronizing virtual files in local folder + Syncing local and remote changes Syncing local and remote changes + There are unresolved conflicts. Click for details. There are unresolved conflicts. Click for details. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Upload %1/s + Virtual file support is enabled. Virtual file support is enabled. + Waiting for %n other folder(s) … Waiting for %n other folder … @@ -2331,14 +2789,17 @@ For advanced users: this issue might be related to multiple sync database files + You need to be connected to add a folder You need to be connected to add a folder + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2346,6 +2807,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcher + The watcher did not receive a test notification. The watcher did not receive a test notification. @@ -2353,6 +2815,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. @@ -2360,10 +2823,12 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard + Add Folder Sync Connection Add Folder Sync Connection + Add Sync Connection Add Sync Connection @@ -2371,30 +2836,37 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath + Add Folder Sync Add Folder Sync + Choose Choose + Click to select a local folder to sync. Click to select a local folder to sync. + Enter the path to the local folder. Enter the path to the local folder. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized + Select the source folder Select the source folder + Step 1 of 3: Select local folder Step 1 of 3: Select local folder @@ -2402,62 +2874,78 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardRemotePath + Add Folder Sync Add Folder Sync + Authentication failed accessing %1 Authentication failed accessing %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Both folders are permanently linked and the respective contents are automatically synchronized and updated. + Choose this to sync the entire account Choose this to sync the entire account + Create Remote Folder Create Remote Folder + Create folder Create folder + Enter the name of the new folder to be created below "%1": Enter the name of the new folder to be created below "%1": + Failed to create the folder on %1. Please check manually. Failed to create the folder on %1. Please check manually. + Failed to list a folder. Error: %1 Failed to list a folder. Error: %1 + Folder was successfully created on %1. Folder was successfully created on %1. + + Please choose a different location. %1 is already being synced to %2. Please choose a different location. %1 is already being synced to %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. + Refresh Refresh + Step 2 of 3: Directory in your %1 Step 2 of 3: Directory in your %1 + You are already syncing the subfolder %1 at %2. You are already syncing the subfolder %1 at %2. @@ -2465,26 +2953,36 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardSelectiveSync + + + (experimental) (experimental) + Add Folder Sync Add Folder Sync + Step 3 of 3: Selektive Synchronisation Step 3 of 3: Selective Synchronisation + + + Use virtual files instead of downloading content immediately %1 Use virtual files instead of downloading content immediately %1 + Virtual files are not supported at the selected location Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. @@ -2492,22 +2990,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design - &Analysis data collection for needs-based design - - - &Automatically check for updates - &Automatically check for updates - - - &Launch on System Startup - &Launch on System Startup - - - &Restart && Update - &Restart && Update - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2519,6 +3002,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m Downgrading versions is not possible immediately: changing from beta to stable means waiting for the new stable version. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2528,212 +3012,283 @@ Downgrading versions is not possible immediately: changing from stable to enterp Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. + + Cancel + Cancel + + + + Change update channel + Change update channel + + + + Changing update channel? + Changing update channel? + + + + Debug Archive Created + Debug Archive Created + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redact information deemed sensitive before sharing! Debug archive created at %1 + + + + Restore to &%1 + Restore to &%1 + + + + Server notifications that require attention. + Server notifications that require attention. + + + + Show call notification dialogs. + Show call notification dialogues. + + + + Show chat notification dialogs. + Show chat notification dialogs. + + + + Show notification when quota usage exceeds 80%. + Show notification when quota usage exceeds 80%. + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + + + + You cannot disable autostart because system-wide autostart is enabled. + You cannot disable autostart because system-wide autostart is enabled. + + + + Zip Archives + Zip Archives + + + + daily + daily + + + + enterprise + enterprise + + + + &Automatically check for updates + &Automatically check for updates + + + + &Launch on System Startup + &Launch on System Startup + + + + &Restart && Update + &Restart && Update + + + Advanced Advanced + Ask for confirmation before synchronizing external storages Ask for confirmation before synchronising external storages + Ask for confirmation before synchronizing new folders larger than Ask for confirmation before synchronizing new folders larger than + Automatically disable synchronisation of folders that overcome limit Automatically disable synchronisation of folders that overcome limit - Cancel - Cancel - - - Change update channel - Change update channel - - - Changing update channel? - Changing update channel? - - + + Check Now Check Now + + Create Debug Archive Create Debug Archive + Data Protection Data Protection - Debug Archive Created - Debug Archive Created - - + Desktop client x.x.x Desktop client x.x.x + Edit &Ignored Files Edit &Ignored Files + For System Tray For System Tray + General Settings General Settings + + Legal Notice Legal Notice + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information More Information + Move removed files to trash Move removed files to trash + Necessary data Necessary data + Notify when synchronised folders grow larger than specified limit Notify when synchronised folders grow larger than specified limit + Open Source Software Open Source Software + Privacy Policy Privacy Policy - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redact information deemed sensitive before sharing! Debug archive created at %1 - - + Required to ensure that the software can be used as expected Required to ensure that the software can be used as expected + Restore &Default Restore &Default - Restore to &%1 - Restore to &%1 - - + Send anonymous use Send anonymous use - Server notifications that require attention. - Server notifications that require attention. - - + Server poll interval Server poll interval + Show &Quota Warning Notifications Show &Quota Warning Notifications + Show Call Notifications Show Call Notifications + Show Chat Notifications Show Chat Notifications + Show Server &Notifications Show Server &Notifications - Show call notification dialogs. - Show call notification dialogues. - - - Show chat notification dialogs. - Show chat notification dialogs. - - - Show notification when quota usage exceeds 80%. - Show notification when quota usage exceeds 80%. - - + Show sync folders in &Explorer's navigation pane Show sync folders in &Explorer's navigation pane - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. This helps us to optimize the software and to better identify system crashes and unexpected errors. + Update channel Update channel + Updates Updates + Usage Documentation Usage Documentation + Use &Monochrome Icons Use &Monochrome Icons - You cannot disable autostart because system-wide autostart is enabled. - You cannot disable autostart because system-wide autostart is enabled. - - - Zip Archives - Zip Archives - - + + beta beta - daily - daily - - - enterprise - enterprise - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + stable stable @@ -2741,22 +3296,27 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GETFileJob + Connection Timeout Connection Timeout + No E-Tag received from server, check Proxy/Gateway No E-Tag received from server, check Proxy/Gateway + Server returned wrong content-range Server returned wrong content-range + We received a different E-Tag for resuming. Retrying next time. We received a different E-Tag for resuming. Retrying next time. + We received an unexpected download Content-Length. We received an unexpected download Content-Length. @@ -2764,6 +3324,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2772,14 +3333,17 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 + Password for share required Password for share required + Please enter a password for your link share: Please enter a password for your link share: + Sharing error Sharing error @@ -2787,18 +3351,22 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Click here</a> to request an app password from the web interface. + Enter Password Enter Password + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> + Reading from keychain failed with error: "%1" Reading from keychain failed with error: "%1" @@ -2806,49 +3374,50 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + This entry is provided by the system at "%1" and cannot be modified in this view. + + + Files Ignored by Patterns Files Ignored by Patterns + Global Ignore Settings Global Ignore Settings + Ignored Files Editor Ignored Files Editor + Sync hidden files Sync hidden files - - This entry is provided by the system at "%1" and cannot be modified in this view. - This entry is provided by the system at "%1" and cannot be modified in this view. - - + OCC::IgnoreListTableWidget - Add - Add - - + Add a new ignore pattern: Add a new ignore pattern: - Allow Deletion - Allow Deletion - - + Cannot write changes to "%1". Cannot write changes to "%1". + Could not open file Could not open file + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2857,18 +3426,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. + Ignore Pattern Ignore Pattern + + Add + Add + + + + Allow Deletion + Allow Deletion + + + Pattern Pattern + Remove Remove + Remove all Remove all @@ -2876,109 +3459,135 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Cannot rename file because a file with the same name does already exist on the server. Please pick another name. + Checking rename permissions … Checking rename permissions … + Could not rename file. Please make sure you are connected to the server. Could not rename file. Please make sure you are connected to the server. + Could not rename local file. %1 Could not rename local file. %1 - Error - Error - - + Failed to fetch permissions with error %1 Failed to fetch permissions with error %1 + Filename contains illegal characters: %1 Filename contains illegal characters: %1 + Filename contains leading and trailing spaces. - Filename contains leading and trailing spaces. - - - Filename contains leading spaces. - Filename contains leading spaces. - - - Filename contains trailing spaces. - Filename contains trailing spaces. - - - Invalid filename - Invalid filename + Filename contains leading and trailing spaces. - New filename - New filename + + Filename contains leading spaces. + Filename contains leading spaces. - Please enter a new name for the file: - Please enter a new name for the file: + + Filename contains trailing spaces. + Filename contains trailing spaces. + Rename file Rename file + The file "%1" could not be synced because the name contains characters which are not allowed on the server. The file "%1" could not be synced because the name contains characters which are not allowed on the server. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. The file "%1" could not be synced because the name contains characters which are not allowed on this system. - The file could not be synced because it contains characters which are not allowed on this system. - The file could not be synced because its name contains characters which are not allowed on this system. - - + The following basenames are not allowed: %1 The following basenames are not allowed: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + The following characters are not allowed: %1 The following characters are not allowed: %1 + The following file extensions are not allowed: %1 The following file extensions are not allowed: %1 + The following filenames are not allowed: %1 The following filenames are not allowed: %1 + Use invalid name Use invalid name + You don't have the permission to rename this file. Please ask the author of the file to rename it. You don't have the permission to rename this file. Please ask the author of the file to rename it. - + + + Error + Error + + + + Invalid filename + Invalid filename + + + + New filename + New filename + + + + Please enter a new name for the file: + Please enter a new name for the file: + + + + The file could not be synced because it contains characters which are not allowed on this system. + The file could not be synced because its name contains characters which are not allowed on this system. + + OCC::LegacyAccountSelectionDialog + Legacy import Legacy import + Select the accounts to import from the legacy configuration: Select the accounts to import from the legacy configuration: @@ -2986,18 +3595,23 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> + Close Close + + Legal notice Legal notice @@ -3005,18 +3619,22 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LogBrowser + Enable logging to temporary folder Enable logging to temporary folder + Log Output Log Output + Open folder Open folder + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3025,6 +3643,7 @@ Since log files can get large, the client will start a new one for each sync run If enabled, logs will be written to %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. This setting persists across client restarts. @@ -3034,10 +3653,14 @@ Note that using any logging command line options will override this setting. OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> + + Error Error @@ -3045,26 +3668,32 @@ Note that using any logging command line options will override this setting. OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. An error occurred during setup. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Could not find a file for local editing. Make sure its path is valid and it is synced locally. + Could not get file ID. Could not get file ID. + Could not get file identifier. Could not get file identifier. + Could not start editing locally. Could not start editing locally. + The file identifier is empty. The file identifier is empty. @@ -3072,117 +3701,150 @@ Note that using any logging command line options will override this setting. OCC::NetworkSettings - Download Bandwidth - Download Bandwidth - - + HTTP(S) proxy HTTP(S) proxy - Host - Host - - + Hostname of proxy server Hostname of proxy server + + Password for proxy server + Password for proxy server + + + + SOCKS5 proxy + SOCKS5 proxy + + + + Username for proxy server + Username for proxy server + + + + Download Bandwidth + Download Bandwidth + + + + Host + Host + + + + KBytes/s KBytes/s + + Limit automatically Limit automatically + + Limit to Limit to + + Limit to 3/4 of estimated bandwidth Limit to 3/4 of estimated bandwidth + Manually specify proxy Manually specify proxy + + No limit No limit + No proxy No proxy + Note: proxy settings have no effects for accounts on localhost Note: proxy settings have no effects for accounts on localhost - Password for proxy server - Password for proxy server - - + Proxy Settings Proxy Settings + Proxy server requires authentication Proxy server requires authentication - SOCKS5 proxy - SOCKS5 proxy - - + Upload Bandwidth Upload Bandwidth + Use system proxy Use system proxy - - Username for proxy server - Username for proxy server - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> + Ask again later Ask again later + Get update Get update + New Version Available New Version Available + Restart and update Restart and update + Skip this time Skip this time + Update Failed Update Failed + Update manually Update manually @@ -3190,58 +3852,72 @@ Note that using any logging command line options will override this setting. OCC::OCUpdater + %1 available. Restart application to start the update. %1 available. Restart application to start the update. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. + Checking update server … Checking update server … + Could not check for new updates. Could not check for new updates. + Could not download update. Please open %1 to download the update manually. Could not download update. Please open %1 to download the update manually. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Could not download update. Please open <a href='%1'>%1</a> to download the update manually. + Downloading %1 … Downloading %1 … + New %1 is available. Please open %2 to download the update. New %1 is available. Please open %2 to download the update. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. New %1 is available. Please open <a href='%2'>%2</a> to download the update. + New %1 update ready New %1 update ready + No updates available. Your installation is the latest version. No updates available. Your installation is the latest version. + Update Check Update Check + Update status is unknown: Did not check for new updates. Update status is unknown: Did not check for new updates. + You are using the %1 update channel. Your installation is the latest version. You are using the %1 update channel. Your installation is the latest version. @@ -3249,55 +3925,72 @@ Note that using any logging command line options will override this setting. OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 folder "%2" is synced to local folder "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 free space + + (%1) (%1) + + (experimental) (experimental) + Connect Connect + In Finder's "Locations" sidebar section In Finder's "Locations" sidebar section + Local Sync Folder Local Sync Folder + Sync the folder "%1" Sync the folder "%1" + There isn't enough free space in the local folder! There isn't enough free space in the local folder! + + Use &virtual files instead of downloading content immediately %1 Use &virtual files instead of downloading content immediately %1 + Virtual files are not supported at the selected location Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. + Warning: The local folder is not empty. Pick a resolution! Warning: The local folder is not empty. Pick a resolution! @@ -3305,26 +3998,32 @@ Note that using any logging command line options will override this setting. OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> + Configure client-side TLS certificate Configure client-side TLS certificate + Connection failed Connection failed + Retry unencrypted over HTTP (insecure) Retry unencrypted over HTTP (insecure) + Select a different URL Select a different URL @@ -3332,71 +4031,88 @@ Note that using any logging command line options will override this setting. OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Account %1: %2 + Account synchronization is disabled Account synchronisation is disabled + Checking for changes in local "%1" Checking for changes in local "%1" + Checking for changes in remote "%1" Checking for changes in remote "%1" + Disconnected from %1 Disconnected from %1 + Disconnected from accounts: Disconnected from accounts: + Please sign in Please sign in + Terms of service Terms of service + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. + There are no sync folders configured. There are no sync folders configured. + Unsupported Server Version Unsupported Server Version + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + macOS VFS for %1: A problem was encountered. macOS VFS for %1: A problem was encountered. + macOS VFS for %1: Last sync was successful. macOS VFS for %1: Last sync was successful. + macOS VFS for %1: Sync is running. macOS VFS for %1: Sync is running. @@ -3404,14 +4120,17 @@ Note that using any logging command line options will override this setting. OCC::OwncloudHttpCredsPage + &Email &Email + Connect to %1 Connect to %1 + Enter user credentials Enter user credentials @@ -3419,6 +4138,8 @@ Note that using any logging command line options will override this setting. OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Impossible to get modification time for file in conflict %1 @@ -3426,18 +4147,23 @@ Note that using any logging command line options will override this setting. OCC::OwncloudSetupPage + &Next > &Next > + Could not load certificate. Maybe wrong password? Could not load certificate. Maybe wrong password? + + Server address does not seem to be valid Server address does not seem to be valid + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name The link to your %1 web interface when you open it in the browser. @@ -3446,118 +4172,150 @@ Note that using any logging command line options will override this setting. OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font colour="green"><b>Local sync folder %1 successfully created!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font colour="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font colour="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> + A sync connection from %1 to remote directory %2 was set up. A sync connection from %1 to remote directory %2 was set up. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. + Connection to %1 could not be established. Please check again. Connection to %1 could not be established. Please check again. + Could not create local folder %1 Could not create local folder %1 + Creating local sync folder %1 … Creating local sync folder %1 … + Error: %1 Error: %1 + Failed to connect to %1 at %2:<br/>%3 Failed to connect to %1 at %2:<br/>%3 + Folder rename failed Folder rename failed + Invalid URL Invalid URL + Local sync folder %1 already exists, setting it up for sync.<br/><br/> Local sync folder %1 already exists, setting it up for sync.<br/><br/> + No remote folder specified! No remote folder specified! + OK OK + Remote folder %1 created successfully. Remote folder %1 created successfully. + + Remote folder %1 creation failed with error <tt>%2</tt>. Remote folder %1 creation failed with error <tt>%2</tt>. + Successfully connected to %1! Successfully connected to %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. + + The folder creation resulted in HTTP error code %1 The folder creation resulted in HTTP error code %1 + The remote folder %1 already exists. Connecting it for syncing. The remote folder %1 already exists. Connecting it for syncing. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> + There was an invalid response to an authenticated WebDAV request There was an invalid response to an authenticated WebDAV request + Timeout while trying to connect to %1 at %2. Timeout while trying to connect to %1 at %2. + + Trying to connect to %1 at %2 … Trying to connect to %1 at %2 … + creating folder on Nextcloud: %1 creating folder on Nextcloud: %1 + failed. failed. @@ -3565,45 +4323,55 @@ Note that using any logging command line options will override this setting. OCC::OwncloudWizard + Add %1 account Add %1 account + Back Next button text in new account wizard Back + Cancel Cancel + Enable experimental feature? Enable experimental feature? + Enable experimental placeholder mode Enable experimental placeholder mode + Next Next button text in new account wizard Next + Proxy Settings Proxy Settings button text in new account wizard Proxy Settings + Skip folders configuration Skip folders configuration + Stay safe Stay safe + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3623,10 +4391,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PasswordInputDialog + Password for share required Password for share required + Please enter a password for your share: Please enter a password for your share: @@ -3634,6 +4404,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PollJob + Invalid JSON reply from the poll URL Invalid JSON reply from the poll URL @@ -3641,166 +4412,210 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. Cannot be renamed or uploaded. + Cannot modify encrypted item because the selected certificate is not valid. Cannot modify encrypted item because the selected certificate is not valid. + Cannot sync due to invalid modification time Cannot sync due to invalid modification time + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflict: Server version downloaded, local copy renamed and not uploaded. Conflict: Server version downloaded, local copy renamed and not uploaded. + Could not upload file, because it is open in "%1". Could not upload file, because it is open in "%1". + Error while deleting file record %1 from the database Error while deleting file record %1 from the database + Error while reading the database Error while reading the database + File has extension reserved for virtual files. File has extension reserved for virtual files. + File is listed on the ignore list. File is listed on the ignore list. + File is not accessible on the server. server error File is not accessible on the server. + File name contains at least one invalid character File name contains at least one invalid character + File name is a reserved name on this file system. File name is a reserved name on this file system. + File names containing the character "%1" are not supported on this file system. %1: the invalid character File names containing the character "%1" are not supported on this file system. + File names ending with a period are not supported on this file system. File names ending with a period are not supported on this file system. + File/Folder is ignored because it's hidden. File/Folder is ignored because it's hidden. + Filename contains leading and trailing spaces. Filename contains leading and trailing spaces. + Filename contains leading spaces. Filename contains leading spaces. + Filename contains trailing spaces. Filename contains trailing spaces. + Filename is too long. Filename is too long. + Folder is not accessible on the server. server error Folder is not accessible on the server. + Folder name contains at least one invalid character Folder name contains at least one invalid character + Folder name is a reserved name on this file system. Folder name is a reserved name on this file system. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Folder names containing the character "%1" are not supported on this file system. + Ignored because of the "choose what to sync" blacklist Ignored because of the "choose what to sync" blacklist + + Moved to invalid target, restoring Moved to invalid target, restoring + Not allowed because you don't have permission to add files in that folder Not allowed because you don't have permission to add files in that folder + Not allowed because you don't have permission to add subfolders to that folder Not allowed because you don't have permission to add subfolders to that folder + Not allowed to remove, restoring Not allowed to remove, restoring + Not allowed to upload this file because it is read-only on the server, restoring Not allowed to upload this file because it is read-only on the server, restoring + Reason: the entire filename is forbidden. Reason: the entire filename is forbidden. + Reason: the file has a forbidden extension (.%1). Reason: the file has a forbidden extension (.%1). + Reason: the filename contains a forbidden character (%1). Reason: the filename contains a forbidden character (%1). + Reason: the filename has a forbidden base name (filename start). Reason: the filename has a forbidden base name (filename start). + Stat failed. Stat failed. + Symbolic links are not supported in syncing. Symbolic links are not supported in syncing. + The filename cannot be encoded on your file system. The filename cannot be encoded on your file system. + The filename is blacklisted on the server. The filename is blacklisted on the server. + Upload of %1 exceeds %2 of space left in folder %3. Upload of %1 exceeds %2 of space left in folder %3. + Upload of %1 exceeds %2 of space left in personal files. Upload of %1 exceeds %2 of space left in personal files. @@ -3808,26 +4623,38 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDirectory + Could not delete file %1 from local DB Could not delete file %1 from local DB + Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time + Error updating metadata: %1 Error updating metadata: %1 + File is currently in use File is currently in use + + + + + + The folder %1 cannot be made read-only: %2 The folder %1 cannot be made read-only: %2 + + unknown exception unknown exception @@ -3835,54 +4662,70 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Could not delete file record %1 from local DB + Could not get file %1 from local DB Could not get file %1 from local DB + Error updating metadata: %1 Error updating metadata: %1 + File %1 cannot be downloaded because encryption information is missing. File %1 cannot be downloaded because encryption information is missing. + File %1 downloaded but it resulted in a local file name clash! File %1 downloaded but it resulted in a local file name clash! + + File %1 has invalid modified time reported by server. Do not save it. File %1 has invalid modified time reported by server. Do not save it. + + File has changed since discovery File has changed since discovery + File was deleted from server File was deleted from server + Free space on disk is less than %1 Free space on disk is less than %1 + The download would reduce free local disk space below the limit The download would reduce free local disk space below the limit + The downloaded file is empty, but the server said it should have been %1. The downloaded file is empty, but the server said it should have been %1. + The file %1 is currently in use The file %1 is currently in use + The file could not be downloaded completely. The file could not be downloaded completely. @@ -3890,10 +4733,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateItemJob + ; Restoration Failed: %1 ; Restoration Failed: %1 + A file or folder was removed from a read only share, but restoring failed: %1 A file or folder was removed from a read only share, but restoring failed: %1 @@ -3901,30 +4746,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir + Could not create folder %1 Could not create folder %1 + Error updating metadata: %1 Error updating metadata: %1 + Folder %1 cannot be created because of a local file or folder name clash! Folder %1 cannot be created because of a local file or folder name clash! + The file %1 is currently in use The file %1 is currently in use + + + The folder %1 cannot be made read-only: %2 The folder %1 cannot be made read-only: %2 + could not delete file %1, error: %2 could not delete file %1, error: %2 + unknown exception unknown exception @@ -3932,14 +4786,19 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Could not delete file record %1 from local DB + Could not remove %1 because of a local file name clash Could not remove %1 because of a local file name clash + + + Temporary error when removing local item removed from server. Temporary error when removing local item removed from server. @@ -3947,38 +4806,49 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRename + Could not delete file record %1 from local DB Could not delete file record %1 from local DB + + Could not get file %1 from local DB Could not get file %1 from local DB + + Error setting pin state Error setting pin state + Error updating metadata: %1 Error updating metadata: %1 + Failed to propagate directory rename in hierarchy Failed to propagate directory rename in hierarchy + Failed to rename file Failed to rename file + File %1 downloaded but it resulted in a local file name clash! File %1 downloaded but it resulted in a local file name clash! + Folder %1 cannot be renamed because of a local file or folder name clash! Folder %1 cannot be renamed because of a local file or folder name clash! + The file %1 is currently in use The file %1 is currently in use @@ -3986,10 +4856,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Could not delete file record %1 from local DB + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -3997,6 +4869,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Wrong HTTP code returned by server. Expected 204, but received "%1 %2". @@ -4004,18 +4877,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Error writing metadata to the database: %1 + Failed to encrypt a folder %1 Failed to encrypt a folder %1 + The file %1 is currently in use The file %1 is currently in use + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Wrong HTTP code returned by server. Expected 201, but received "%1 %2". @@ -4023,34 +4900,44 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Could not delete file record %1 from local DB + Could not get file %1 from local DB Could not get file %1 from local DB + Could not rename %1 to %2, error: %3 Could not rename %1 to %2, error: %3 + Error setting pin state Error setting pin state + + Error updating metadata: %1 Error updating metadata: %1 + Error writing metadata to the database Error writing metadata to the database + + The file %1 is currently in use The file %1 is currently in use + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Wrong HTTP code returned by server. Expected 201, but received "%1 %2". @@ -4058,46 +4945,60 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileCommon + Error updating metadata: %1 Error updating metadata: %1 + Failed to unlock encrypted folder. Failed to unlock encrypted folder. + Failed to upload encrypted file. Failed to upload encrypted file. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists File %1 cannot be uploaded because another file with the same name, differing only in case, exists + + + File %1 has invalid modification time. Do not upload to the server. File %1 has invalid modification time. Do not upload to the server. + File Removed (start upload) %1 File Removed (start upload) %1 + Local file changed during sync. Local file changed during sync. + Local file changed during syncing. It will be resumed. Local file changed during syncing. It will be resumed. + The file %1 is currently in use The file %1 is currently in use + Unable to upload an item with invalid characters Unable to upload an item with invalid characters + + Upload of %1 exceeds the quota for the folder Upload of %1 exceeds the quota for the folder @@ -4105,32 +5006,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileNG + File is not accessible on the server. server error File is not accessible on the server. + Folder is not accessible on the server. server error Folder is not accessible on the server. + Local file changed during sync. Local file changed during sync. + Missing File ID from server Missing File ID from server + Poll URL missing Poll URL missing + The local file was removed during sync. The local file was removed during sync. + Unexpected return code from server (%1) Unexpected return code from server (%1) @@ -4138,18 +5046,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileV1 + Local file changed during sync. Local file changed during sync. + Poll URL missing Poll URL missing + The local file was removed during sync. The local file was removed during sync. + The server did not acknowledge the last chunk. (No e-tag was present) The server did not acknowledge the last chunk. (No e-tag was present) @@ -4157,22 +5069,27 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProxyAuthDialog + Password: Password: + Proxy authentication required Proxy authentication required + Proxy: Proxy: + The proxy server needs a username and password. The proxy server needs a username and password. + Username: Username: @@ -4180,6 +5097,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncDialog + Choose What to Sync Choose What to Sync @@ -4187,26 +5105,33 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. An error occurred while loading the list of sub folders. + Deselect remote folders you do not wish to synchronize. Deselect remote folders you do not wish to synchronise. + Loading … Loading … + Name Name + + No subfolders currently on the server. No subfolders currently on the server. + Size Size @@ -4214,10 +5139,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ServerNotificationHandler + Dismiss Dismiss + Reply Reply @@ -4225,14 +5152,17 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::sesSnackBar + Error Error + Success Success + Warning Warning @@ -4240,23 +5170,28 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud %1 Settings + Account Account + General General + New account New account + Settings Settings @@ -4264,19 +5199,24 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Global search results + No results found No results found + + Search globally Search globally @@ -4284,6 +5224,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareManager + Error Error @@ -4291,38 +5232,47 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareModel + %1 days %1 days + 1 day 1 day + Could not find local folder for %1 Could not find local folder for %1 + Internal link Internal link + Link share Link share + Secure file drop Secure file drop + Secure file drop link Secure file drop link + Share link Share link + Today Today @@ -4330,22 +5280,28 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SocketApi + + Activity Activity + Context menu share Context menu share + Copy internal link Copy internal link + Copy private link to clipboard Copy private link to clipboard + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4354,18 +5310,22 @@ Server replied with error: %2 Server replied with error: %2 + Delete Delete + Delete local changes Delete local changes + Encrypt Encrypt + Expires in %1 minutes remaining time before lock expires @@ -4374,82 +5334,104 @@ Server replied with error: %2 + Failed to encrypt folder Failed to encrypt folder + Failed to encrypt folder at "%1" Failed to encrypt folder at "%1" + Folder encrypted successfully Folder encrypted successfully + I shared something with you I shared something with you + Leave this share Leave this share + Lock file Lock file + Locked by %1 Locked by %1 + Move and rename … Move and rename … + Move and upload … Move and upload … + Move, rename and upload … Move, rename and upload … + + Open in browser Open in browser + Resharing this file is not allowed Resharing this file is not allowed + Resharing this folder is not allowed Resharing this folder is not allowed + Resolve conflict … Resolve conflict … + Select new location … Select new location … + Send private link by email … Send private link by email … + + Share options Share options + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. + The following folder was encrypted successfully: "%1" The following folder was encrypted successfully: "%1" + Unlock file Unlock file @@ -4457,98 +5439,122 @@ Server replied with error: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (self-signed) + <h3>Certificate Details</h3> <h3>Certificate Details</h3> + <h3>Fingerprints</h3> <h3>Fingerprints</h3> + <h3>Issuer</h3> <h3>Issuer</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Note:</b> This certificate was manually approved</p> + Certificate information: Certificate information: + Common Name (CN): Common Name (CN): + Country: Country: + Expires on: Expires on: + Issued on: Issued on: + Issuer: Issuer: + No support for SSL session tickets/identifiers No support for SSL session tickets/identifiers + Organization (O): Organisation (O): + Organizational Unit (OU): Organisational Unit (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Serial: + Server version: %1 Server version: %1 + State/Province: State/Province: + Subject Alternative Names: Subject Alternative Names: + The connection is not secure The connection is not secure + This connection is NOT secure as it is not encrypted. This connection is NOT secure as it is not encrypted. + This connection is encrypted using %1 bit %2. This connection is encrypted using %1 bit %2. @@ -4556,122 +5562,156 @@ Server replied with error: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;not specified&gt; + Additional errors: Additional errors: + Cannot connect securely to <i>%1</i>: Cannot connect securely to <i>%1</i>: + + Country: %1 Country: %1 + Effective Date: %1 Effective Date: %1 + Expiration Date: %1 Expiration Date: %1 + Fingerprint (SHA-256): <tt>%1</tt> Fingerprint (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Fingerprint (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Fingerprint (SHA1): <tt>%1</tt> + Issuer: %1 Issuer: %1 + + Organization: %1 Organisation: %1 - Trust this certificate anyway - Trust this certificate anyway - - + + Unit: %1 Unit: %1 + Untrusted Certificate Untrusted Certificate + with Certificate %1 with Certificate %1 - + + + Trust this certificate anyway + Trust this certificate anyway + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (skipped due to earlier error, trying again in %2) + Cannot open the sync journal Cannot open the sync journal + Could not set file record to local DB: %1 Could not set file record to local DB: %1 + Could not update file metadata: %1 Could not update file metadata: %1 + Could not update file: %1 Could not update file: %1 + Could not update virtual file metadata: %1 Could not update virtual file metadata: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Disk space is low: Downloads that would reduce free space below %1 were skipped. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Only %1 are available, need at least %2 to start + There is insufficient space available on the server for some uploads. There is insufficient space available on the server for some uploads. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Unable to open or create the local sync database. Make sure you have write access in the sync folder. + Unable to read from the sync journal. Unable to read from the sync journal. + Unable to read the blacklist from the local database Unable to read the blacklist from the local database + Unresolved conflict. Unresolved conflict. + Using virtual files with suffix, but suffix is not set Using virtual files with suffix, but suffix is not set @@ -4679,58 +5719,76 @@ Server replied with error: %2 OCC::SyncStatusSummary + %1 of %2 %1 of %2 + %1 of %2 · %3 left %1 of %2 · %3 left + + + All synced! All synced! + Checking folder changes Checking folder changes + + + Offline Offline + See below for errors See below for errors + See below for warnings See below for warnings + Some files could not be synced! Some files could not be synced! + Some files couldn't be synced! Some files couldn't be synced! + Sync paused Sync paused + Syncing Syncing + Syncing changes Syncing changes + Syncing file %1 of %2 Syncing file %1 of %2 + You need to accept the terms of service You need to accept the terms of service @@ -4738,43 +5796,55 @@ Server replied with error: %2 OCC::Systray + Add account Add account + Download Download + Exit %1 Exit %1 + Help Help + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop + + Pause sync Pause sync + Pause sync for all Pause sync for all + + Resume sync Resume sync + Resume sync for all Resume sync for all + Settings Settings @@ -4782,22 +5852,27 @@ Server replied with error: %2 OCC::TermsOfServiceCheckWidget + Copy Link Copy Link + Link copied to clipboard. Link copied to clipboard. + Open Browser Open Browser + Polling Polling + Waiting for terms to be accepted Waiting for terms to be accepted @@ -4805,90 +5880,115 @@ Server replied with error: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Desktop Client Version %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Using virtual files plugin: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>This release was supplied by %1.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0057 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1046 - Help-Link - https://wl.hidrive.com/easy/0108 + + Login_URL + https://storage.ionos.co.uk - Help-Link_STRATO - https://static.hidrive.com/next/1016 + + Login_URL_STRATO + https://storage.ionos.co.uk + LegalNotice-Link https://wl.hidrive.com/easy/0004 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1026 - Login_URL - https://storage.ionos.co.uk - - - Login_URL_STRATO - https://storage.ionos.co.uk - - + MoreInformation-Link https://wl.hidrive.com/easy/0007 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1016 + OpenSource-Link https://wl.hidrive.com/easy/0006 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0005 + Privacy-Link_STRATO https://static.hidrive.com/next/1006 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Desktop Client Version %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Using virtual files plugin: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>This release was supplied by %1.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0108 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1016 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Failed to fetch providers. + Failed to fetch search providers for '%1'. Error: %2 Failed to fetch search providers for '%1'. Error: %2 + Search has failed for '%1'. Error: %2 Search has failed for '%1'. Error: %2 + Search has failed for '%2'. Search has failed for '%2'. @@ -4896,14 +5996,17 @@ Server replied with error: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Failed to finalize item. + Failed to unlock encrypted folder. Failed to unlock encrypted folder. + Failed to update folder metadata. Failed to update folder metadata. @@ -4911,33 +6014,43 @@ Server replied with error: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Could not add or remove user %1 to access folder %2 + Could not fetch public key for user %1 Could not fetch public key for user %1 + Could not find root encrypted folder for folder %1 Could not find root encrypted folder for folder %1 + + + + + + + + + Error updating metadata for a folder %1 Error updating metadata for a folder %1 + Failed to unlock a folder. Failed to unlock a folder. OCC::User - - %1 notifications - %1 notifications - + %n notification(s) %n notification @@ -4945,44 +6058,55 @@ Server replied with error: %2 + End-to-end certificate needs to be migrated to a new one End-to-end certificate needs to be migrated to a new one + Open %1 Assistant in browser The placeholder will be the application name. Please keep it Open %1 Assistant in browser + Open %1 Talk in browser The placeholder will be the application name. Please keep it Open %1 Talk in browser + Public Share Link Public Share Link + Quota Warning - %1 percent or more storage in use Quota Warning - %1 percent or more storage in use + Quota is updated; %1 percent of the total space is used. Quota is updated; %1 percent of the total space is used. + Rename file Rename file + + Resolve conflict Resolve conflict + Retry all uploads Retry all uploads + Trigger the migration Trigger the migration @@ -4990,26 +6114,32 @@ Server replied with error: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> + Cancel Cancel + Confirm Account Removal Confirm Account Removal + Leave share Leave share + Remove account Remove account + Remove connection Remove connection @@ -5017,6 +6147,7 @@ Server replied with error: %2 OCC::UserStatusSelectorModel + %n day(s) %n day @@ -5024,6 +6155,7 @@ Server replied with error: %2 + %n hour(s) %n hour @@ -5031,6 +6163,7 @@ Server replied with error: %2 + %n minute(s) %n minute @@ -5038,54 +6171,70 @@ Server replied with error: %2 + 1 hour 1 hour + 30 minutes 30 minutes + 4 hours 4 hours + Could not clear status message. Make sure you are connected to the server. Could not clear status message. Make sure you are connected to the server. + Could not fetch predefined statuses. Make sure you are connected to the server. Could not fetch predefined statuses. Make sure you are connected to the server. + Could not fetch status. Make sure you are connected to the server. Could not fetch status. Make sure you are connected to the server. + Could not set status. Make sure you are connected to the server. Could not set status. Make sure you are connected to the server. + + Don't clear Don't clear + Emojis are not supported. Some status functionality may not work. Emojis are not supported. Some status functionality may not work. + Less than a minute Less than a minute + Status feature is not supported. You will not be able to set your status. Status feature is not supported. You will not be able to set your status. + + This week This week + + Today Today @@ -5093,14 +6242,17 @@ Server replied with error: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Please choose a different location. %1 is a drive. It doesn't support virtual files. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Please choose a different location. %1 is a network drive. It doesn't support virtual files. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. @@ -5108,30 +6260,37 @@ Server replied with error: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 could not be downloaded. + + Error downloading %1 + Error downloading %1 + + + > More details > More details + Could not be downloaded Could not be downloaded + Download error Download error + Error downloading Error downloading - Error downloading %1 - Error downloading %1 - - + More details More details @@ -5139,6 +6298,8 @@ Server replied with error: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time @@ -5146,6 +6307,8 @@ Server replied with error: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Error updating metadata due to invalid modification time @@ -5153,10 +6316,12 @@ Server replied with error: %2 OCC::WebEnginePage + Invalid certificate detected Invalid certificate detected + The host "%1" provided an invalid certificate. Continue? The host "%1" provided an invalid certificate. Continue? @@ -5164,6 +6329,7 @@ Server replied with error: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>You have been logged out of your account %1 at %2. Please login again.</b> @@ -5171,22 +6337,27 @@ Server replied with error: %2 OCC::WelcomePage - Form - Form - - + Host your own server Host your own server + Keep your data secure and under your control Keep your data secure and under your control + + Form + Form + + + Log in Log in + Sign up with provider Sign up with provider @@ -5194,27 +6365,33 @@ Server replied with error: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy HTTP(S) proxy + Hostname of proxy server Hostname of proxy server + Password for proxy server Password for proxy server + Proxy Settings Dialog window title for proxy settings Proxy Settings + SOCKS5 proxy SOCKS5 proxy + Username for proxy server Username for proxy server @@ -5222,55 +6399,68 @@ Server replied with error: %2 OwncloudAdvancedSetupPage + &Local Folder &Local Folder + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> + Ask before syncing folders larger than Ask before syncing folders larger than + Choose different folder Choose different folder + Choose what to sync Choose what to sync + Erase local folder and start a clean sync Erase local folder and start a clean sync + Keep local data Keep local data + Local Folder Local Folder + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Server address + Sync Logo Sync Logo + Synchronize everything from server Synchronize everything from server + Username Username @@ -5278,10 +6468,12 @@ Server replied with error: %2 OwncloudHttpCredsPage + &Password &Password + &Username &Username @@ -5289,10 +6481,12 @@ Server replied with error: %2 OwncloudSetupPage + Server address Server address + This is the link to your %1 web interface when you open it in the browser. This is the link to your %1 web interface when you open it in the browser. @@ -5300,145 +6494,170 @@ Server replied with error: %2 progress + Deleted Deleted + Deleting Deleting + Downloaded Downloaded + Downloading Downloading + + Error Error + Filesystem access error Filesystem access error + Ignored Ignored + Ignoring Ignoring + Moved to %1 Moved to %1 + Moving Moving + Replaced by virtual file Replaced by virtual file + Server version downloaded, copied changed local file into case conflict conflict file Server version downloaded, copied changed local file into case conflict conflict file + Server version downloaded, copied changed local file into conflict file Server version downloaded, copied changed local file into conflict file + + Unknown Unknown + Updated end-to-end encryption metadata Updated end-to-end encryption metadata + Updated local metadata Updated local metadata + Updated local virtual files metadata Updated local virtual files metadata + Updating end-to-end encryption metadata Updating end-to-end encryption metadata + Updating local metadata Updating local metadata + Updating local virtual files metadata Updating local virtual files metadata + Uploaded Uploaded + Uploading Uploading + Virtual file created Virtual file created - - updating local virtual files metadata - Updating local virtual files metadata - ProxySettings + Form Form + Host Host + Manually specify proxy Manually specify proxy + No proxy No proxy + Note: proxy settings have no effects for accounts on localhost Note: proxy settings have no effects for accounts on localhost + Proxy Settings Proxy Settings + Proxy server requires authentication Proxy server requires authentication + Use system proxy Use system proxy QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5447,6 +6666,7 @@ Server replied with error: %2 + %nh delay in hours after an activity @@ -5455,6 +6675,7 @@ Server replied with error: %2 + %nmin delay in minutes after an activity @@ -5463,174 +6684,222 @@ Server replied with error: %2 + 1min one minute after activity date and time 1min - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + + Some time ago + Some time ago - Could not create debug archive in selected location! - Could not create debug archive in selected location! + + in the future + in the future - Error deleting the file - Error deleting the file + + now + now + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + The directory %1 cannot be part of your sync directory. Please choose another folder. + + + + New folder + New folder + + Could not create debug archive in selected location! + Could not create debug archive in selected location! + + + Failed to create debug archive Failed to create debug archive - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + + Synced %1 + Synced %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + + You changed %1 + You changed %1 - New folder - New folder + + You created %1 + You created %1 - Paths beginning with '#' character are not supported in VFS mode. - Paths beginning with '#' character are not supported in VFS mode. + + You deleted %1 + You deleted %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + + You renamed %1 + You renamed %1 - Some time ago - Some time ago + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Synced %1 - Synced %1 + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - The directory %1 cannot be part of your sync directory. Please choose another folder. - The directory %1 cannot be part of your sync directory. Please choose another folder. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + The server does not recognize the request method. Please contact your server administrator for help. The server does not recognize the request method. Please contact your server administrator for help. + The server does not support the version of the connection being used. Contact your server administrator for help. The server does not support the version of the connection being used. Contact your server administrator for help. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + This file type isn’t supported. Please contact your server administrator for assistance. This file type isn’t supported. Please contact your server administrator for assistance. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - You changed %1 - You changed %1 - - - You created %1 - You created %1 - - - You deleted %1 - You deleted %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - You renamed %1 - You renamed %1 - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. - in the future - in the future + + Error deleting the file + Error deleting the file - now - now + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + Paths beginning with '#' character are not supported in VFS mode. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5639,26 +6908,32 @@ Server replied with error: %2 + All local versions All local versions + All server versions All server versions + Cancel Cancel + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. + Resolve conflicts Resolve conflicts + Solve sync conflicts Solve sync conflicts @@ -5666,6 +6941,7 @@ Server replied with error: %2 SesErrorBox + Error Error @@ -5673,14 +6949,17 @@ Server replied with error: %2 SesTrayHeader + Open Nextcloud in browser Open HiDrive Next in browser + Open local or team folders Open local or team folders + Website Website @@ -5688,10 +6967,12 @@ Server replied with error: %2 ShareDelegate + Copied! Copied! + Share options Share options @@ -5699,66 +6980,78 @@ Server replied with error: %2 ShareDetailsPage + Add another link Add another link + Allow resharing Allow resharing + + Allow upload and editing Allow upload and editing + An error occurred setting the share password. An error occurred setting the share password. + Copy share link Copy share link + Custom Permissions Custom Permissions + Enter a note for the recipient Enter a note for the recipient - Enter the note to recipient - Enter the note to recipient - - + File drop (upload only) File drop (upload only) + Hide download Hide download + Note to recipient Note to recipient + Password protection Password protection + Set expiration date Set expiration date + Share link copied! Share link copied! + Unshare Unshare + View only View only @@ -5766,10 +7059,12 @@ Server replied with error: %2 ShareeSearchField + Search for users or groups… Search for users or groups… + Sharing is not available for this folder Sharing is not available for this folder @@ -5777,30 +7072,37 @@ Server replied with error: %2 ShareView + Expires in %1 Expires in %1 + Password required for new share Password required for new share + Share password Share password + Shared with you by %1 Shared with you by %1 + Sharing is disabled Sharing is disabled + Sharing is disabled. Sharing is disabled. + This item cannot be shared. This item cannot be shared. @@ -5808,6 +7110,7 @@ Server replied with error: %2 SyncJournalDb + Failed to connect database. Failed to connect database. @@ -5815,14 +7118,17 @@ Server replied with error: %2 SyncStatus + Open browser Open browser + Resolve conflicts Resolve conflicts + Sync now Sync now @@ -5830,10 +7136,12 @@ Server replied with error: %2 TalkReplyTextField + Reply to … Reply to … + Send reply to chat message Send reply to chat message @@ -5841,14 +7149,17 @@ Server replied with error: %2 TermsOfServiceCheckWidget + Logo Logo + Switch to your browser to accept the terms of service Switch to your browser to accept the terms of service + Terms of Service Terms of Service @@ -5856,42 +7167,52 @@ Server replied with error: %2 theme + Error occurred during setup Error occurred during setup + Error occurred during sync Error occurred during sync + Preparing to sync Preparing to sync + Stopping sync Stopping sync + Sync is paused Sync is paused + Sync is running Sync is running + Sync status is unknown Sync status is unknown + Sync was successful Sync was successful + Sync was successful but some files were ignored Sync was successful but some files were ignored + Waiting to start syncing Waiting to start syncing @@ -5899,30 +7220,37 @@ Server replied with error: %2 TrayFoldersMenuButton + Files Files + Open %1 in file explorer Open %1 in file explorer + Open local folder Open local folder + Open local folder "%1" Open local folder "%1" + Open local or team folders Open local or team folders + Open team folder "%1" Open team folder "%1" + User group and local folders menu User group and local folders menu @@ -5930,42 +7258,52 @@ Server replied with error: %2 TrayWindowAccountMenu + Account switcher and settings menu Account switcher and settings menu + Add account Add account + Current account Current account + Current account avatar Current account avatar + Current account status is do not disturb Current account status is do not disturb + Current account status is online Current account status is online + Exit Exit + Pause sync for all Pause sync for all + Resume sync for all Resume sync for all + Settings Settings @@ -5973,14 +7311,17 @@ Server replied with error: %2 TrayWindowHeader + More apps More apps + Open %1 in browser Open %1 in browser + Open local or team folders Open local or team folders @@ -5988,22 +7329,27 @@ Server replied with error: %2 TrayWindowHeaderBar + More apps More apps + Open %1 in browser Open %1 in browser + Open Nextcloud in browser Open HiDrive Next in browser + Open local or team folders Open local or team folders + Website Website @@ -6011,6 +7357,7 @@ Server replied with error: %2 UnifiedSearchInputContainer + Search files, messages, events … Search files, messages, events … @@ -6018,6 +7365,7 @@ Server replied with error: %2 UnifiedSearchPlaceholderView + Start typing to search Start typing to search @@ -6025,6 +7373,7 @@ Server replied with error: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Load more results @@ -6032,6 +7381,7 @@ Server replied with error: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Search result skeleton. @@ -6039,6 +7389,7 @@ Server replied with error: %2 UnifiedSearchResultListItem + Load more results Load more results @@ -6046,6 +7397,7 @@ Server replied with error: %2 UnifiedSearchResultNothingFound + No results for No results for @@ -6053,6 +7405,7 @@ Server replied with error: %2 UnifiedSearchResultSectionItem + Search results section %1 Search results section %1 @@ -6060,22 +7413,29 @@ Server replied with error: %2 UserLine + Account actions Account actions + + Log in Log in + + Log out Log out + Remove account Remove account + Switch to account Switch to account @@ -6083,26 +7443,32 @@ Server replied with error: %2 UserStatusMessageView + Apply Apply + Cancel Cancel + Clear Clear + Clear status message after Clear status message after + Status message Status message + What is your status? What is your status? @@ -6110,38 +7476,47 @@ Server replied with error: %2 UserStatusSetStatusView + Appear offline Appear offline + Away Away + Busy Busy + Do not disturb Do not disturb + Invisible Invisible + Mute all notifications Mute all notifications + Online Online + Online status Online status + Status message Status message @@ -6149,30 +7524,37 @@ Server replied with error: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) %n day @@ -6180,6 +7562,7 @@ Server replied with error: %2 + %n hour(s) %n hour @@ -6187,6 +7570,7 @@ Server replied with error: %2 + %n minute(s) %n minute @@ -6194,6 +7578,7 @@ Server replied with error: %2 + %n month(s) %n month @@ -6201,6 +7586,7 @@ Server replied with error: %2 + %n second(s) %n second @@ -6208,6 +7594,7 @@ Server replied with error: %2 + %n year(s) %n year @@ -6218,42 +7605,52 @@ Server replied with error: %2 utility + Always available locally Always available locally + Available online only Available online only + Could not open browser Could not open browser + Could not open email client Could not open email client + Currently available locally Currently available locally + Free up local space Free up local space + Make always available locally Make always available locally + Some available online only Some available online only + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? There was an error when launching the email client to create a new message. Maybe no default email client is configured? @@ -6261,14 +7658,17 @@ Server replied with error: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" The checksum header contained an unknown checksum type "%1" + The checksum header is malformed. The checksum header is malformed. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" diff --git a/translations/client_es.ts b/translations/client_es.ts index dc2c353edb8d7..ba3161e7deabb 100644 --- a/translations/client_es.ts +++ b/translations/client_es.ts @@ -1,56 +1,14 @@ - - - - Agree - Aceptar - - - Back - Volver - - - Necessary data - Datos necesarios - - - Required to ensure that the software can be used as expected - Necesario para garantizar que el software puede utilizarse según lo previsto - - - Save Settings - Guardar ajustes - - - Send anonymous use - Enviar uso anónimo - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. - - ActivityItem + In %1 En %1 + Open %1 locally Abrir %1 localmente @@ -58,10 +16,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ActivityItemContent + Dismiss Descartar + Open file details Abrir detalles del archivo @@ -69,40 +29,40 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ActivityList + Activity list Lista de actividad + No activities yet Aún no hay actividades + Scroll to top Desplazarse hasta la parte superior - - BasicComboBox - - Clear status message menu - Borrar el menú de mensajes de estado - - CallNotificationDialog + Answer Talk call notification Aviso de llamada de Answer Talk + Decline Rechazar + Decline Talk call notification Rechazar la notificación de llamadas de Talk + Talk notification caller avatar Avatar de la notificación de llamada @@ -110,71 +70,89 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Buscando cambios en "%1" + Help Ayuda + Log out Cerrar sesión + + No recently changed files No hay archivos modificados recientemente + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Abrir Escritorio %1 + Open in browser Abrir en el navegador + Pause synchronization Pausar sincronización + Quit sync client Cerrar cliente de sincronización + Recently changed Cambiado recientemente + Settings Configuración + Sync paused Sincronización pausada + Syncing Sincronizando + Syncing %1 Sincronizando %1 + Syncing %1 (%2 left) Sincronizando %1 (quedan %2) + Syncing %1 of %2 Sincronizando %1 de %2 + Syncing %1 of %2 (%3 left) Sicronizando %1 de %2 (quedan %3) @@ -182,10 +160,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ConflictDelegate + Local version Versión local + Server version Versión del servidor @@ -193,46 +173,59 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans CurrentAccountHeaderButton + Account switcher and settings menu Menú para cambio de cuentas y ajustes + Add account Añadir cuenta + Add new account Añadir cuenta nueva + Current account Cuenta actual + Current account avatar Avatar de la cuenta actual + Current account status is do not disturb El estado actual de la cuenta es no molestar + Current account status is online El estado actual de la cuenta es en línea + Exit Salir + + Pause sync for all Pausar sincronización para todos + + Resume sync for all Reanudar sincronización para todos + Settings Ajustes @@ -240,6 +233,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EditFileLocallyLoadingDialog + Opening file for local editing Abriendo archivo para editarlo en local @@ -247,6 +241,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EmojiPicker + No recent emojis No hay emojis recientes @@ -254,6 +249,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Descubriendo los certificados almacenados en su token USB @@ -261,6 +257,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ErrorBox + Error Error @@ -268,6 +265,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileDetailsPage + Dismiss Descartar @@ -275,6 +273,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileDetailsWindow + File details of %1 · %2 Detalles del archivo de %1 · %2 @@ -282,28 +281,25 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderEvictionDialog + Local copies Copias locales + Reload Recargar + Remove local copies Quitar copias locales - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. - - FileProviderFileDelegate + Delete Borrar @@ -311,22 +307,22 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderSettings + Enable virtual files Activar archivos virtuales + General settings Configuración general + Reset virtual files environment Reiniciar el ambiente de archivos virtuales - Signal file provider domain - Dominio del proveedor de archivos de firmas - - + Virtual files settings Configuración de archivos virtuales @@ -334,18 +330,17 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - Evict local copies... - Desalojar las copias locales... - - + Free up space … Liberar espacio … + Local storage use Uso de almacenamiento local @@ -353,20 +348,24 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderSyncStatus + All synced! ¡Todo está sincronizado! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Solicitar una sincronización de cambios para el ambiente VFS. macOS podría ignorar o demorar esta solicitud. + Request sync Solicitar sincronización + Syncing Sincronizando @@ -374,10 +373,12 @@ macOS podría ignorar o demorar esta solicitud. FileSystem + Could not remove folder "%1" No se ha podido eliminar la carpeta "%1" + Error removing "%1": %2 Error al eliminar "%1": %2 @@ -385,22 +386,28 @@ macOS podría ignorar o demorar esta solicitud. Flow2AuthWidget + + An error occurred while connecting. Please try again. Se ha producido un error al conectarse. Por favor, inténtelo de nuevo. + Browser Authentication Autentificación del navegador + Copy Link Copiar enlace + Logo Logo + Switch to your browser to connect your account Cambiar al navegador para conectar con tu cuenta @@ -408,10 +415,12 @@ macOS podría ignorar o demorar esta solicitud. FolderWizardSelectiveSync + Add Folder Sync Añadir sincronización de carpetas + Step 3 of 3: Selektive Synchronisation Paso 3 de 3: Sincronización selectiva @@ -419,18 +428,22 @@ macOS podría ignorar o demorar esta solicitud. FolderWizardSourcePage + &Choose &Elegir + Add Folder Sync Añadir sincronización de carpetas + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + Step 1 of 3: Select local folder Paso 1 de 3: Seleccionar carpeta local @@ -438,30 +451,37 @@ macOS podría ignorar o demorar esta solicitud. FolderWizardTargetPage + Add Folder Sync Añadir sincronización de carpetas + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + Create folder Crear carpeta + Folders Carpetas + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + Refresh Actualizar + Step 2 of 3: Directory in your %1 Paso 2 de 3: Directorio en su %1 @@ -469,14 +489,17 @@ macOS podría ignorar o demorar esta solicitud. MainWindow + Main content Contenido principal + New activities Nuevas actividades + Unified search results list Lista de resultados de la búsqueda unificada @@ -484,6 +507,7 @@ macOS podría ignorar o demorar esta solicitud. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Creado desde la revisión Git <a href="%1">%2</a> en %3, %4 utilizando Qt %5, %6</small></p> @@ -491,14 +515,17 @@ macOS podría ignorar o demorar esta solicitud. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema continua. + The server enforces strict transport security and does not accept untrusted certificates. El servidor hace obligatoria la seguridad estricta en el transporte y no acepta certificados sin confianza. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. El servidor tardó demasiado en responder. Revise su conexión e intente sincronizar de nuevo. Si sigue sin funcionar, contacte con el administrador de su servidor. @@ -506,18 +533,22 @@ macOS podría ignorar o demorar esta solicitud. OCC::Account + File %1 is already locked by %2. El archivo %1 ya está bloqueado por %2. + Lock operation on %1 failed with error %2 La operación de bloqueo en %1 ha fallado con el error %2. + Public Share Link Enlace Compartido Público + Unlock operation on %1 failed with error %2 La operación de desbloqueo en %1 ha fallado con el error %2. @@ -525,30 +556,30 @@ macOS podría ignorar o demorar esta solicitud. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 cuentas se detectaron con un cliente de escritorio antiguo. -¿Deben estas cuentas ser importadas? - - + An account was detected from a legacy desktop client. Should the account be imported? Se detectó una cuenta desde un cliente de escritorio antiguo. ¿Debería importar la cuenta? + Could not import accounts from legacy client configuration. No se pudieron importar las cuentas desde la configuración del cliente antiguo. + Import Importar + + Legacy import Importación heredada + Skip Saltar @@ -556,310 +587,333 @@ Should the account be imported? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. + %1 as %2 %1 como %2 + %1 in use %1 en uso + %1 of %2 in use %1 de %2 en uso + (experimental) (experimental) + <p>Could not create local folder <i>%1</i>.</p> <p>No pudo crear la carpeta local <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>¿De verdad quiere dejar de sincronizar la carpeta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> elminará los archivo.</p> - Apply - Aplicar - - - Apply manual changes - Aplicar cambios manuales - - + + Availability Disponibilidad - Cancel - Cancelar - - + Choose what to sync Elija qué sincronizar + Confirm Folder Sync Connection Removal Confirme la sincronización para la eliminación de la carpeta conectada + Connected to %1. Conectado a %1. - Connected with <server> as <user> - Conectado a <server> como <user> - - + Connecting to %1 … Conectando a %1 ... - Connection settings - Configuración de conexión - - + Could not encrypt folder because the folder does not exist anymore No es posible cifrar la carpeta porque ya no existe + + Create new folder Crear nueva carpeta + Currently there is no storage usage information available. Actualmente no hay información disponible sobre el uso de almacenamiento. + Disable support Desactivar soporte + Disable virtual file support … Desactivar soporte para archivos virtuales … + Disable virtual file support? ¿Desactivar soporte para archivos virtuales? + Display mnemonic Mostrar mnemónico + + Do not encrypt folder No cifrar carpeta + Do you want to forget the end-to-end encryption settings for %1 on this device? ¿Desea olvidar los ajustes de cifrado de extremo a extremo para %1 en este dispositivo? + + Edit Ignored Files Editar archivos ignorados + Enable virtual file support %1 … Activar soporte para archivos virtuales %1 ... + Encrypt Cifrar + + Encrypt folder Cifrar carpeta + Encryption failed Ha fallado el cifrado + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. Se ha configurado el cifrado. Recuerda <b>Cifrar</b> una carpeta para tener cifrado de extremo a extremo cualquier archivo añadido a esta. + End-to-end Encryption Cifrado de extremo a extremo + End-to-end Encryption with Virtual Files Cifrado de extremo a extremo con Archivos Virtuales + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. El cifrado de extremo a extremo ha sido inicializado en esta cuenta con otro dispositivo. <br> Ingrese el mnemonico para que las carpetas cifradas se sincronicen en este dispositivo también. + End-to-end encryption has not been initialized on this account. El cifrado de extremo a extremo a sido iniciado en esta cuenta + End-to-end encryption mnemonic Mnemónico para cifrado de extremo a extremo - Expand Memory - Ampliar la memoria - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0067 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1043 - - + Folder creation failed Ha fallado la creación de la carpeta + Force sync now Forzar la sincronización ahora + Forget encryption setup Olvidar la configuración de cifrado + Forget the end-to-end encryption on this device Olvidar el cifrado de extremo a extremo en este dispositivo + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Al olvidar el cifrado de extremo a extremo se eliminarán los datos sensibles y todos los archivos cifrados de este dispositivo. <br>Sin embargo, los archivos cifrados permanecerán en el servidor y en todos sus otros dispositivos, si se encuentran configurados. + Migrate certificate to a new one Migrar certificado a uno nuevo + No %1 connection configured. No hay ninguna conexión de %1 configurada. + No account configured. No se ha configurado ninguna cuenta. + + Open folder Abrir carpeta + Pause sync Pausar sincronización + Please wait for the folder to sync before trying to encrypt it. Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. + Remove Folder Sync Connection Eliminar carpeta de sincronización conectada + Remove folder sync connection Eliminar la sincronización de carpetas conectadas + Restart sync Reiniciar sync + Resume sync Continuar sincronización + Server %1 is currently being redirected, or your connection is behind a captive portal. El servidor %1 está siendo redirigido actualmente, ó, su conexión está detrás de un portal cautivo. + Server %1 is currently in maintenance mode. El servidor %1 se encuentra en modo mantenimiento. + Server %1 is temporarily unavailable. Servidor %1 no está disponible temporalmente. + Server configuration error: %1 at %2. Error de configuración del servidor: %1 en %2, + Set up encryption Configurar cifrado + Signed out from %1. Cerró sesión desde %1. - Standard file sync - Sincronización de archivos estándar - - + Storage space %1% occupied Espacio de almacenamiento %1% ocupado - Storage space: … - Espacio de almacenamiento: ... - - + Sync Running Sincronización en curso - Synchronize all - Sincronizar todo - - - Synchronize none - No sincronizar nada - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully La carpeta tiene un pequeño problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + The server version %1 is unsupported! Proceed at your own risk. ¡La versión %1 del servidor no está soportada! Si continúas, lo haces bajo tu propio riesgo. + The syncing operation is running.<br/>Do you want to terminate it? La sincronización está en curso.<br/>¿Desea interrumpirla? + There are folders that have grown in size beyond %1MB: %2 Existen carpetas que han aumentado de tamaño más allá de %1MB: %2 + There are folders that were not synchronized because they are external storages: Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: + There are folders that were not synchronized because they are too big or external storages: Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: + There are folders that were not synchronized because they are too big: Hay carpetas que no se han sincronizado porque son demasiado grandes: + This account supports end-to-end encryption, but it needs to be set up first. Esta cuenta soporta cifrado de extremo a extremo, pero debe ser configurado primero. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -872,67 +926,129 @@ La única ventaja de deshabilitar el soporte de archivos virtuales es para la ca Además, esta acción interrumpirá cualquier sincronización en curso. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. <b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Para proteger su Identidad Criptográfica, ciframos la misma con un mnemonico de 12 palabras de diccionario. Por favor, anótelo y consérvelo a salvo. Lo necesitará para configurar la sincronización de carpetas cifradas en sus otros dispositivos. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). - - + Unable to connect to %1. No es posible conectarse con %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Las carpetas no seleccionadas serán <b>eliminadas</b> de su carpeta local y ya no serán sincronizadas en este ordenador - - - Virtual file sync - Sincronización de archivos virtual - - + Warning Aviso + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. Espere a una nueva sincronización, luego cifrala. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? No puede cifrar esta carpeta debido a que el cifrado de extremo a extremo aún no está configurado en este dispositivo. ¿Desea hacerlo ahora mismo? + You need to accept the terms of service at %1. Debe aceptar los términos de servicio en %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Parece que tiene la función de Archivos Virtuales activada en esta carpeta. Por el momento, no es posible descargar implícitamente los archivos virtuales que están cifrados de extremo a extremo. Para obtener la mejor experiencia con los archivos virtuales y el cifrado de extremo a extremo, asegúrese de que la carpeta cifrada está marcada con "Hacer que esté siempre disponible localmente". - + + + Apply + Aplicar + + + + Apply manual changes + Aplicar cambios manuales + + + + + + Cancel + Cancelar + + + + Connected with <server> as <user> + Conectado a <server> como <user> + + + + Connection settings + Configuración de conexión + + + + Expand Memory + Ampliar la memoria + + + + Standard file sync + Sincronización de archivos estándar + + + + + Storage space: … + Espacio de almacenamiento: ... + + + + Synchronize all + Sincronizar todo + + + + Synchronize none + No sincronizar nada + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Las carpetas no seleccionadas serán <b>eliminadas</b> de su carpeta local y ya no serán sincronizadas en este ordenador + + + + Virtual file sync + Sincronización de archivos virtual + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde su navegador. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. + There was an invalid response to an authenticated WebDAV request Ha habido una respuesta no válida a una solicitud autenticada de WebDAV @@ -940,46 +1056,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials Solicitando credenciales + Configuration error Error en la configuración + Connected Conectado + Disconnected Desconectado + Maintenance mode Modo mantenimiento + Need the user to accept the terms of service Necesita el usuario aceptar los términos de servicio + Network error Error en la red + Redirect detected Redirección detectada + Service unavailable Servicio no disponible + Signed out Cerrar sesión + Unknown account state Estado de cuenta desconocido @@ -987,14 +1114,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … Actividades de búsqueda … + For more activities please open the Activity app. Para más detalles, por favor, abre la app Actividades. + Network error occurred: client will retry syncing. Ha ocurrido un error de red: el cliente reintentará la sincronización. @@ -1002,34 +1132,42 @@ Would you like to do this now? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Archivos de certificado (*.p12 *.pfx) + + + + Select a certificate + Seleccione un certificado + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Usar encriptación pkcs12 es muy recomendable, puesto que una copia se guardará en el archivo de configuración. + Browse … Explorar ... + Certificate & Key (pkcs12): Certificado & Key (pkcs12): - Certificate files (*.p12 *.pfx) - Archivos de certificado (*.p12 *.pfx) - - + Certificate password: Contraseña del certificado: + SSL client certificate authentication Certificado de autentificación SSL del cliente - Select a certificate - Seleccione un certificado - - + This server probably requires a SSL client certificate. Probablemente este servidor requiera un certificado SSL del cliente. @@ -1037,32 +1175,39 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported %1 cuentas + %1 folders number of folders imported %1 carpetas + 1 account 1 cuenta + 1 folder 1 carpeta + Continue Continuar + Error accessing the configuration file Error al acceder al archivo de configuración + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1070,35 +1215,43 @@ Would you like to do this now? %3 + Legacy import Importación heredada + Quit Salir + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Algunos ajustes fueron configurados en %1 versiones de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar implica <b>%2 estos ajustes</b>.<br><br>El archivo de configuración actual ya se respaldó en <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Se ha producido un error al acceder al archivo de configuración en %1. Por favor, asegúrese de que su cuenta del sistema puede acceder al archivo. + deleting eliminando + ignoring ignorando + newer newer software version recientes + older older software version antiguos @@ -1107,18 +1260,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: &Contraseña: + &Username: &Usuario: + Authentication Required Se requiere autenticación + Enter username and password for "%1" at %2. Introduce usuario y contraseña para "%1" en %2. @@ -1126,10 +1283,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 Fallo al desbloquear la carpeta cifrada %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -1137,18 +1296,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 can not be downloaded because of a local file name clash! ¡El archivo %1 no se puede descargar a causa de un conflicto con el nombre de un archivo local! + The file %1 is currently in use El archivo %1 se encuentra actualmente en uso + Unable to update metadata of new file %1. error with update metadata of new Win VFS file No fue posible actualizar los metadatos del archivo nuevo %1. @@ -1157,50 +1320,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists El archivo %1 no se puede subir porque ya existe otro con el mismo nombre, solo difiere en las mayúsculas/minúsculas + File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación no válida. No subir al servidor. + File %1 has invalid modified time. Do not upload to the server. El archivo %1 tiene una hora de modificación no válida. No subir al servidor. + File Removed (start upload) %1 Archivo eliminado (comenzar subida) %1 + File contains leading or trailing spaces and couldn't be renamed El archivo tiene espacio iniciales o finales y no pudo ser renombrado + + Local file changed during sync. Un archivo local ha cambiado durante la sincronización. + Local file changed during syncing. It will be resumed. Un archivo local ha cambiado durante la sincronización. Será subido. + Network error: %1 Error de red: %1 + Restoration failed: %1 Fallo al restaurar: %1 + The file %1 is currently in use El archivo %1 se encuentra en uso + The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. @@ -1208,30 +1384,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. No se puede renombrar el archivo porque hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. + Could not rename file. Please make sure you are connected to the server. No se ha podido renombrar el archivo. Por favor, asegúrese de que está conectado al servidor. + Failed to fetch permissions with error %1 Fallo al obtener permisos con error %1 + Filename contains leading and trailing spaces. El nombre del archivo contiene espacios iniciales y finales. + Filename contains leading spaces. El nombre del archivo contiene espacios al inicio. + Filename contains trailing spaces. El nombre del archivo contiene espacios al final. + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permisos para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. @@ -1239,86 +1422,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 no soporta nombres de archivo idénticos con diferencias de capitalización de letras. + + Filename contains illegal characters: %1 + El nombre del archivo contiene caracteres ilegales: %1 + + + + Filename contains leading and trailing spaces. + El nombre del archivo contiene espacios iniciales y finales. + + + + Filename contains leading spaces. + El nombre del archivo contiene espacios al inicio. + + + + Filename contains trailing spaces. + El nombre del archivo contiene espacios al final. + + + + Rename file + Renombrar archivo + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + El archivo "%1" no pudo ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. + + + + Use invalid name + Usar nombre inválido + + + + 0 byte 0 bytes + Case Clash Conflict Conflicto de capitalización + Case clashing file Archivo con conflicto de capitalización + Error Error + Existing file Archivo existente - Filename contains illegal characters: %1 - El nombre del archivo contiene caracteres ilegales: %1 - - - Filename contains leading and trailing spaces. - El nombre del archivo contiene espacios iniciales y finales. - - - Filename contains leading spaces. - El nombre del archivo contiene espacios al inicio. - - - Filename contains trailing spaces. - El nombre del archivo contiene espacios al final. - - + New filename Nuevo nombre de archivo + + Open clashing file Abrir archivo con problema de capitalización + + Open existing file Abrir archivo existente + Please enter a new name for the clashing file: Por favor ingrese un nombre nuevo para el archivo con el problema de capitalización: - Rename file - Renombrar archivo - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - El archivo "%1" no pudo ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. - Use invalid name - Usar nombre inválido - - + file A archivo A + file B archivo B + + today hoy @@ -1326,6 +1534,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database Error al escribir los metadatos en la base de datos @@ -1333,27 +1542,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: Ingrese el PIN del Token USB para certificados: + Enter E2E passphrase Introduce la frase de acceso E2E + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Ingrese código PIN + Invalid PIN. Login failed PIN inválido, falló el inicio de sesión + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! El inicio de sesión al Token falló luego de proporcionar el PIN del usuario. Podría ser inválido o incorrecto. ¡Por favor, inténtelo de nuevo! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, introduzca su frase de cifrado de extremo a extremo:<br><br>Nombre de usuario: %2<br> Cuenta: %3<br> @@ -1361,66 +1576,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte - 0 byte - - - <a href="%1">Open local version</a> - <a href="%1">Abrir versión local</a> - - - <a href="%1">Open server version</a> - <a href="%1">Abrir versión en servidor</a> - - - Click to open the file - Clic para abrir el archivo - - - Conflicting versions of %1. - Versiones en conflicto de %1. - - + Keep both versions Mantener ambas versiones + Keep local version Mantener versión local + + Keep selected version Mantener la versión seleccionada + Keep server version Mantener la versión del servidor - Local version - Versión local - - + Open local version Abrir la versión local + Open server version Abrir la versión en servidor + + + 0 byte + 0 byte + + + + <a href="%1">Open local version</a> + <a href="%1">Abrir versión local</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Abrir versión en servidor</a> + + + + + Click to open the file + Clic para abrir el archivo + + + + + Conflicting versions of %1. + Versiones en conflicto de %1. + + + + Local version + Versión local + + + Server version Versión del servidor + Sync Conflict Conflicto de sincronización + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. ¿Qué versión del archivo quiere mantener?<br/>Si selecciona ambas versiones, al archivo local se le añadirá un número a su nombre + + today hoy @@ -1428,22 +1664,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion Confirmar borrado + Do you want to delete the directory <i>%1</i> and all its contents permanently? ¿Quieres eliminar la carpeta <i>%1</i> y todo su contenido permanentemente? + Do you want to delete the file <i>%1</i> permanently? ¿Quieres eliminar el archivo <i>%1</i> permanentemente? + + Error Error + + Moving file failed: %1 @@ -1455,27 +1698,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Error de autenticación: El usuario o la contraseña son incorrectos + No %1 account configured The placeholder will be the application name. Please keep it No hay cuenta %1 configurada + Please update to the latest server and restart the client. Por favor, actualice a la última versión del servidor y reinicie el cliente. + The configured server for this client is too old La configuración del servidor para este cliente es demasiado antigua + The provided credentials are not correct Las credenciales proporcionadas no son correctas + Timeout Tiempo de espera superado @@ -1483,69 +1732,84 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + + + Agree Aceptar + Form Formulario + Settings Ajustes - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + Back Atrás + Form Formulario + Necessary data Datos necesarios + Required to ensure that the software can be used as expected Necesario para garantizar que el software puede utilizarse según lo previsto + Save Settings Guardar ajustes + Send anonymous use Enviar uso anónimo + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Error al cancelar la eliminación de %1 + Error while canceling deletion of a file Error al cancelar la eliminación de un archivo @@ -1553,18 +1817,23 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! ¡Hubo un error al configurar los metadatos cifrados! + Encrypted metadata setup error: initial signature from server is empty. Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” El servidor devolvió una respuesta inesperada que no se pudo leer. Por favor, contacte con el administrador de su servidor. @@ -1572,22 +1841,27 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Directorio no accesible en el cliente, permiso denegado + Directory not found: %1 Directorio no encontrado: %1 + Error while opening directory %1 Error al abrir el directorio %1 + Error while reading directory %1 Error al leer el directorio %1 + Filename encoding is not valid La codificación del nombre del archivo no es válida @@ -1595,62 +1869,93 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyJob + + + An error occurred during data retrieval. Ocurrió un error mientras se recuperaban los datos. + + An error occurred during setup. Ocurrió un error mientras se hacía la configuración. + + An error occurred trying to synchronise the file to edit locally. Ocurrió un error mientras se intentaba sincronizar el archivo para edición local. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. No fue posible encontrar un archivo para edición local. Asegúrese de que no está excluida a través de la sincronización selectiva. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. No fue posible encontrar un archivo para edición local. Asegúrese de que la ruta es válida y que esta se encuentra sincronizada localmente. + Could not find a remote file info for local editing. Make sure its path is valid. No fue posible encontrar la información del archivo remoto para edición local. Asegúrese de que la ruta es válida. + Could not open %1 No fue posible abrir %1 + + + + + + + + Could not start editing locally. No se pudo iniciar la edición local. + File %1 already locked. El archivo %1 ya está bloqueado. + File %1 could not be locked. El archivo %1 no pudo ser bloqueado. + File %1 now locked. El archivo %1 ahora está bloqueado. + Invalid local file path. Ruta al archivo local inválida. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. El bloqueo se mantendrá por %1 minutos. Puede también desbloquear este archivo manualmente una vez que termine de editarlo. + Please try again. Por favor intente de nuevo. + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡la respuesta de PROPFIND no tiene formato XML! @@ -1658,10 +1963,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyManager + Could not validate the request to open a file from server. No se pudo validar la solicitud para abrir un archivo desde el servidor. + Please try again. Por favor, inténtelo de nuevo. @@ -1669,26 +1976,34 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Ha ocurrido un error intentando verificar la petición para editar localmente. + Could not find an account for local editing. No se ha podido encontrar una cuenta para edición local. + Could not start editing locally. No se ha podido comenzar la edición local. + Invalid file path was provided. Se ha proporcionado una ruta de archivo inválida. + Invalid token received. Se recibió un token inválido. + + + Please try again. Por favor, inténtelo de nuevo. @@ -1696,22 +2011,34 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Error al obtener el ID de la carpeta cifrada. + + + + + + Error fetching metadata. Error al obtener los metadatos. + + + Error locking folder. Error al bloquear la carpeta. + Error parsing or decrypting metadata. Error al analizar o descifrar los metadatos. + Failed to upload metadata Fallo al subir los metadatos @@ -1719,6 +2046,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. No se pueden generar los metadatos para el cifrado, desbloquea la carpeta. @@ -1728,6 +2056,7 @@ Esto podría ser un problema con tu librería OpenSSL OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1736,6 +2065,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 hour(s) ago hours elapsed since file last modified @@ -1744,6 +2074,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 minute(s) ago minutes elapsed since file last modified @@ -1752,6 +2083,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 month(s) ago months elapsed since file last modified @@ -1760,6 +2092,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 second(s) ago seconds elapsed since file last modified @@ -1768,6 +2101,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 year(s) ago years elapsed since file last modified @@ -1776,6 +2110,7 @@ Esto podría ser un problema con tu librería OpenSSL + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1787,22 +2122,28 @@ Esto podría ser un problema con tu librería OpenSSL OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. Se produjo un error inesperado al intentar acceder al servidor. Intente acceder de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. La URL de consulta no comienza con HTTPS a pesar de que la URL de inicio de sesión comenzó con HTTPS. El inicio de sesión no será posible porque esto podría ser un problema de seguridad. Por favor, póngase en contacto con su administrador. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. El servidor no respondió con los datos esperados. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. El servidor no está disponible temporalmente porque está en mantenimiento. Inténtalo de nuevo una vez finalizado el mantenimiento. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. No pudimos analizar la respuesta del servidor. Intente conectarse de nuevo más tarde o contacte con el administrador del servidor si el problema persiste. @@ -1810,38 +2151,48 @@ Esto podría ser un problema con tu librería OpenSSL OCC::Flow2AuthWidget + Copy Link Copiar enlace + + Error Error + Link copied to clipboard. Enlace copiado al portapapeles. + Open Browser Abrir en el navegador + Polling for authorization Pidiendo autorización + Starting authorization Iniciando autorización + Switch to your browser to connect your account Cambiar al navegador para conectar con tu cuenta + Unable to open the Browser, please copy the link to your Browser. No se ha podido abrir el navegador, por favor copie el enlace en su navegador. + Waiting for authorization Esperando autorización @@ -1849,6 +2200,7 @@ Esto podría ser un problema con tu librería OpenSSL OCC::Folder + %1 and %n other file(s) are currently locked. %1 y otro %n archivo está actualmente bloqueado. @@ -1856,6 +2208,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 y otro archivo no pudieron ser sincronizados debido a errores. Para más detalles vea el registro. @@ -1863,6 +2216,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 and %n other file(s) have been added. %1 y %n otro(s) archivo(s) ha(n) sido añadido(s). @@ -1870,6 +2224,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 and %n other file(s) have been removed. %1 y %n otro archivo han sido eliminados @@ -1877,6 +2232,7 @@ Esto podría ser un problema con tu librería OpenSSL + %1 and %n other file(s) have been updated. %1 y otro archivo han sido actualizados. @@ -1884,14 +2240,17 @@ Esto podría ser un problema con tu librería OpenSSL + %1 could not be synced due to an error. See the log for details. %1 no se ha podido sincronizar debido a un error. Para más detalles, vea el registro. + %1 has a sync conflict. Please check the conflict file! Conflicto al sincronizar %1. ¡Por favor compruebe el archivo! + %1 has and %n other file(s) have sync conflicts. %1 y otro archivo han tenido conflictos al sincronizar. @@ -1899,11 +2258,13 @@ Esto podría ser un problema con tu librería OpenSSL + %1 has been added. %1 names a file. %1 ha sido añadido. + %1 has been moved to %2 and %n other file(s) have been moved. %1 ha sido movido a %2 y otro archivo ha sido movido. @@ -1911,15 +2272,18 @@ Esto podría ser un problema con tu librería OpenSSL + %1 has been moved to %2. %1 ha sido movido a %2. + %1 has been removed. %1 names a file. %1 ha sido eliminado. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 ha sido renombrado a %2 y otro archivo ha sido renombrado. @@ -1927,30 +2291,36 @@ Esto podría ser un problema con tu librería OpenSSL + %1 has been renamed to %2. %1 and %2 name files. %1 ha sido renombrado a %2. + %1 has been updated. %1 names a file. %1 ha sido actualizado. + %1 is currently locked. %1 está actualmente bloqueado. + A folder from an external storage has been added. Una carpeta de almacenamiento externo ha sido añadida. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Una carpeta ha sobrepasado el límite establecido de tamaño de %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1959,6 +2329,7 @@ Por favor, confirme si desea proceder con estos borrados. Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1967,10 +2338,12 @@ Por favor, confirme si desea proceder con estos borrados. Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. + A new folder larger than %1 MB has been added: %2. Una carpeta mayor de %1 MB ha sido añadida: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1983,70 +2356,87 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente %1 + Could not read system exclude file No se ha podido leer el archivo de exclusión del sistema + Keep syncing Continuar sincronización + Please choose a different location. %1 isn't a readable folder. Por favor, escoja una ubicación diferente. La carpeta %1 no se puede leer. + Please choose a different location. %1 isn't a valid folder. Por favor, escoja una ubicación diferente. La carpeta %1 no es válida. + Please choose a different location. The folder %1 doesn't exist. Por favor, escoja una ubicación diferente. La carpeta %1 no existe. + Please go in the settings to select it if you wish to download it. Por favor vaya a opciones a seleccionarlo si desea descargar esto. + Proceed with Deletion Proceder a la supresión + Remove all files? ¿Eliminar todos los archivos? + Restore Files from Server Restaurar archivos del servidor + Restore Files to Server Restaurar archivos en el servidor + Stop syncing Detener sincronización + Sync Activity Actividad de la sincronización + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Se ha creado el archivo %1 pero se excluyó de la sincronización con anterioridad. No se sincronizará. + The folder %1 has surpassed the set folder size limit of %2MB. La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. Se ha creado la carpeta %1 pero se excluyó de la sincronización con anterioridad. Los datos en su interior no se sincronizarán. + Virtual file download failed with code "%1", status "%2" and error message "%3" La descarga del archivo virtual ha fallado con código "%1" , estado "%2" y mensaje de error "%3" + Would you like to stop syncing this folder? ¿Desea detener la sincronización de esta carpeta? @@ -2054,26 +2444,32 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente OCC::FolderCreationDialog + %1 Create new folder %1 Crear nueva carpeta + Could not create a folder! Check your write permissions. ¡No se pudo crear la carpeta! Comprueba los permisos de escritura. + + Error + Error + + + Create new folder Crear nueva carpeta + Enter folder name Escriba el nombre de la carpeta - Error - Error - - + Folder already exists Ya existe la carpeta @@ -2081,108 +2477,136 @@ Esto significa que el cliente de sincronización podría no subir inmediatamente OCC::FolderMan + %1 (Sync is paused) %1 (Sincronización en pausa) + (backup %1) (copia de seguridad %1) + (backup) (copia de seguridad) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Se ha encontrado un registro de sincronización antiguo "%1", que no se ha podido eliminar. Por favor, asegúrese de que ninguna aplicación lo está utilizando en este momento. + Could not reset folder state No se ha podido restablecer el estado de la carpeta + Last sync was successful. La última sincronización se ha realizado con éxito. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Por favor, escoja una ubicación diferente. %1 ya se está utilizando como una carpeta de sincronización para %2. + + Please choose a different location. %1 is already being used as a sync folder. Por favor, escoja una ubicación diferente. %1 ya se está utilizando como una carpeta de sincronización. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Por favor, escoja una ubicación diferente. %1 ya se está dentro de una carpeta que se está utilizando como carpeta de sincronización. + Please choose a different location. The path %1 doesn't exist. Por favor, escoja una ubicación diferente. La ruta %1 no existe. + Please choose a different location. The path %1 isn't a folder. Por favor, escoja una ubicación diferente. La ruta %1 no es una carpeta. + Please choose a different location. The selected folder isn't valid. Por favor, escoja una ubicación diferente. La carpeta seleccionada no es válida. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Por favor, escoja una ubicación diferente. No tiene suficientes permisos para escribir a%1. + Preparing for sync. Preparándose para sincronizar. + Setup error. Error de configuración. + Sync finished with unresolved conflicts. La sincronización finalizó pero con conflictos sin resolver. + Sync is paused. La sincronización está en pausa. + Sync is running. Sincronización en funcionamiento. + Sync request was cancelled. La solicitud de sincronización fue cancelada. + Syncing %1 Sincronizando %1 + Syncing %1 (%2 left) Sincronizando %1 (Quedan %2) + Syncing %1 (A few seconds left) Sincronizando %1 (Quedan pocos segundos) + Syncing %1 of %2 Sincronizando %1 de %2 + Syncing %1 of %2 (%3 left) Sicronizando %1 de %2 (quedan %3) + Syncing %1 of %2 (A few seconds left) Sincronizando %1 de %2 (quedan unos segundos) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2193,10 +2617,12 @@ Para resolver este problema: Por favor, quite %1 de alguna de las cuentas y cree Para usuarios avanzados: Este problema puede estar relacionado a múltiples archivos de base de datos de sincronización ubicados en una carpeta. Por favor, chequee en %1 la existencia de archivos .sync_*.db desactualizados o sin usar y elimínelos. + Undefined state. Estado no definido. + Waiting to start syncing. Esperando para comenzar la sincronización. @@ -2204,14 +2630,17 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderStatusDelegate + Add Folder Sync Añadir sincronización de carpetas + File Archivo + Synchronize any other local folder with your %1 Sincroniza cualquier otra carpeta local con tu %1 @@ -2219,113 +2648,141 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 de %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 de %2, archivo %3 de %4 + %5 left, %1 of %2, file %3 of %4 %5 restantes, %1 de %2, archivo %3 de %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Quedan pocos segundos, %1 de %2, archivo %3 de %4 + About to start syncing A punto de comenzar a sincronizar + Checking for changes in local "%1" Buscando cambios en carpeta local "%1" + Checking for changes in remote "%1" Buscando cambios en carpeta remota "%1" + Click this button to add a folder to synchronize. Haga clic en este botón para añadir una carpeta a sincronizar + Could not decrypt! ¡No fue posible descifrar! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Descargando %1/s + Error while loading the list of folders from the server. Error mientras se cargaba la lista de carpetas desde el servidor. + Fetching folder list from server … Obteniendo la lista de carpetas del servidor ... + File %1 of %2 Archivo %1 de %2 + Preparing to sync … Preparando la sincronización ... + Signed out Cerrar sesión + Synchronizing files in local folder Sincronizando archivos en carpeta local + Synchronizing virtual files in local folder Sincronizando archivos virtuales en carpeta local + Syncing local and remote changes Sincronizando cambios locales y remotos + There are unresolved conflicts. Click for details. Hay conflictos sin resolver. Haz clic para más detalles. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Subiendo %1/s + Virtual file support is enabled. El soporte para archivos virtuales está activado. + Waiting for %n other folder(s) … Esperando a %n carpeta … @@ -2333,14 +2790,17 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch + You need to be connected to add a folder Necesita estar conectado para añadir una carpeta + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2348,6 +2808,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWatcher + The watcher did not receive a test notification. El vigilante no recibió una notificación de prueba. @@ -2355,6 +2816,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Este problema sucede habitualmente cuando las "inotify watches" están agotadas. Comprueba el FAQ para más detalles. @@ -2362,10 +2824,12 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizard + Add Folder Sync Connection Añadir conexión para el directorio de sincronización + Add Sync Connection Añadir conexión de sincronización @@ -2373,30 +2837,37 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizardLocalPath + Add Folder Sync Añadir sincronización de carpetas + Choose Seleccione + Click to select a local folder to sync. Haga clic para seleccionar una carpeta local que sincronizar. + Enter the path to the local folder. Introduzca la ubicación de la carpeta local. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + Select the source folder Seleccione la carpeta de origen + Step 1 of 3: Select local folder Paso 1 de 3: Seleccionar carpeta local @@ -2404,62 +2875,78 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizardRemotePath + Add Folder Sync Añadir sincronización de carpetas + Authentication failed accessing %1 Fallo de autenticación al acceder a %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + Choose this to sync the entire account Elija esto para sincronizar la cuenta entera + Create Remote Folder Crear carpeta remota + Create folder Crear carpeta + Enter the name of the new folder to be created below "%1": Introduce el nombre de la nueva carpeta que se creará debajo de "%1": + Failed to create the folder on %1. Please check manually. Fallo al crear la carpeta %1. Por favor, revíselo manualmente. + Failed to list a folder. Error: %1 Fallo al listar una carpeta. Error: %1 + Folder was successfully created on %1. La carpeta ha sido creada con éxito en %1. + + Please choose a different location. %1 is already being synced to %2. Por favor, escoja una ubicación diferente. %1 ya se está sincronizando para %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + Refresh Actualizar + Step 2 of 3: Directory in your %1 Paso 2 de 3: Directorio en su %1 + You are already syncing the subfolder %1 at %2. Ya está sincronizando la subcarpeta %1 en %2 @@ -2467,26 +2954,36 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::FolderWizardSelectiveSync + + + (experimental) (experimental) + Add Folder Sync Añadir sincronización de carpetas + Step 3 of 3: Selektive Synchronisation Paso 3 de 3: Sincronización selectiva + + + Use virtual files instead of downloading content immediately %1 Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 + Virtual files are not supported at the selected location Los archivos virtuales no están soportados en la ubicación seleccionada + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. @@ -2494,22 +2991,7 @@ Para usuarios avanzados: Este problema puede estar relacionado a múltiples arch OCC::GeneralSettings - &Analysis data collection for needs-based design - &Recogida de datos de análisis para un diseño basado en las necesidades - - - &Automatically check for updates - Comprobar &actualizaciones automáticamente - - - &Launch on System Startup - &Ejecutar al iniciar el sistema - - - &Restart && Update - &Reiniciar && Actualizar - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2521,6 +3003,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m Cambiar a una versión anterior no es inmediatamente posible: cambiar de beta a estable significa esperar a la siguiente version estable. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2530,212 +3013,283 @@ Downgrading versions is not possible immediately: changing from stable to enterp Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable a empresarial significa esperar a la nueva versión empresarial. + + Cancel + Cancelar + + + + Change update channel + Cambiar canal de actualización + + + + Changing update channel? + ¿Cambiar canal de actualización? + + + + Debug Archive Created + Archivo de depuración creado + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + ¡Redacte la información considerada sensible antes de compartir!, se creo el archivo de depuración en %1 + + + + Restore to &%1 + Restaurar a &%1 + + + + Server notifications that require attention. + Notificaciones del servidor que requieren atención. + + + + Show call notification dialogs. + Mostrar diálogos de notificación de llamadas. + + + + Show chat notification dialogs. + Mostrar diálogos de notificación de chats. + + + + Show notification when quota usage exceeds 80%. + Mostrar notificación cuando el uso de la cuota supere el 80% + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + El canal determina qué actualizaciones se ofrecerán para instalar: +- estable: contiene versiones probadas consideradas fiables. + + + + + You cannot disable autostart because system-wide autostart is enabled. + No puedes desactivar el inicio automático porque el inicio automático de todo el sistema está activado. + + + + Zip Archives + Archivos Zip + + + + daily + diariamente + + + + enterprise + empresarial + + + + &Automatically check for updates + Comprobar &actualizaciones automáticamente + + + + &Launch on System Startup + &Ejecutar al iniciar el sistema + + + + &Restart && Update + &Reiniciar && Actualizar + + + Advanced Avanzado + Ask for confirmation before synchronizing external storages Pide confirmación antes de sincronizar almacenamientos externos + Ask for confirmation before synchronizing new folders larger than Pedir confirmación antes de sincronizar carpetas nuevas mayores a + Automatically disable synchronisation of folders that overcome limit Desactivar automáticamente la sincronización de carpetas que superen el límite - Cancel - Cancelar - - - Change update channel - Cambiar canal de actualización - - - Changing update channel? - ¿Cambiar canal de actualización? - - + + Check Now Comprobar ahora + + Create Debug Archive Crear archivo de depuración + Data Protection Protección de datos - Debug Archive Created - Archivo de depuración creado - - + Desktop client x.x.x Cliente de escritorio x.x.x + Edit &Ignored Files Editar archivos &ignorados + For System Tray A la bandeja del sistema + General Settings Ajustes generales + + Legal Notice Aviso Legal + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Más información + Move removed files to trash Mover archivos eliminados a la papelera + Necessary data Datos necesarios + Notify when synchronised folders grow larger than specified limit Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado + Open Source Software Software de código abierto + Privacy Policy Política de privacidad - Redact information deemed sensitive before sharing! Debug archive created at %1 - ¡Redacte la información considerada sensible antes de compartir!, se creo el archivo de depuración en %1 - - + Required to ensure that the software can be used as expected Necesario para garantizar que el software puede utilizarse según lo previsto + Restore &Default Restaurar &Default - Restore to &%1 - Restaurar a &%1 - - + Send anonymous use Enviar uso anónimo - Server notifications that require attention. - Notificaciones del servidor que requieren atención. - - + Server poll interval Intervalo de sondeo del servidor + Show &Quota Warning Notifications Mostrar Notificaciones sobre Advertencias de &Cuota + Show Call Notifications Mostrar notificaciones de llamadas + Show Chat Notifications Mostrar las notificaciones de Chat + Show Server &Notifications Mostrar &Notificaciones del Servidor - Show call notification dialogs. - Mostrar diálogos de notificación de llamadas. - - - Show chat notification dialogs. - Mostrar diálogos de notificación de chats. - - - Show notification when quota usage exceeds 80%. - Mostrar notificación cuando el uso de la cuota supere el 80% - - + Show sync folders in &Explorer's navigation pane Mostrar carpetas de sincronización en el panel de navegación de &Explorer - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - El canal determina qué actualizaciones se ofrecerán para instalar: -- estable: contiene versiones probadas consideradas fiables. - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + Update channel Canal de actualización + Updates Actualizaciones + Usage Documentation Documentación de uso + Use &Monochrome Icons Usar iconos &monocromáticos - You cannot disable autostart because system-wide autostart is enabled. - No puedes desactivar el inicio automático porque el inicio automático de todo el sistema está activado. - - - Zip Archives - Archivos Zip - - + + beta beta - daily - diariamente - - - enterprise - empresarial - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) segundos (si <a href="https://github.com/nextcloud/notify_push">Client Push</a> no está disponible) + + stable stable @@ -2743,22 +3297,27 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable OCC::GETFileJob + Connection Timeout Tiempo de espera de conexión agotado + No E-Tag received from server, check Proxy/Gateway No se ha recibido ninguna E-Tag del servidor, revise el proxy/puerta de enlace + Server returned wrong content-range El servidor ha devuelto un content-range erróneo + We received a different E-Tag for resuming. Retrying next time. Se ha recibido una E-Tag distinta para reanudar. Se volverá a intentar la próxima vez. + We received an unexpected download Content-Length. Hemos recibido una longitud inesperada de contenido de la descarga. @@ -2766,6 +3325,7 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2774,14 +3334,17 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable %1 + Password for share required Se requiere contraseña para compartir + Please enter a password for your link share: Por favor, introduce una contraseña para tu enlace compartido: + Sharing error Error al compartir @@ -2789,18 +3352,22 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Haga clic aquí</a> para solicitar una contraseña de aplicación desde la interfaz web. + Enter Password Introduzca la contraseña + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Por favor, introduzca la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> + Reading from keychain failed with error: "%1" La lectura del keychain falló con el error "%1" @@ -2808,49 +3375,50 @@ Cambiar a una versión anterior no es inmediatamente posible: cambiar de estable OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Esta entrada la proporciona el sistema en "%1" y no se puede modificar en esta vista. + + + Files Ignored by Patterns Archivos ignorados por patrones + Global Ignore Settings Ajustes de Ignorar de modo global + Ignored Files Editor Editor de archivos ignorados + Sync hidden files Sincronizar archivos ocultos - - This entry is provided by the system at "%1" and cannot be modified in this view. - Esta entrada la proporciona el sistema en "%1" y no se puede modificar en esta vista. - - + OCC::IgnoreListTableWidget - Add - Añadir - - + Add a new ignore pattern: Añadir un nuevo patrón de ignorar: - Allow Deletion - Permitir borrado - - + Cannot write changes to "%1". No se pudo escribir los cambios a "%1". + Could not open file No se ha podido abrir el archivo + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2859,18 +3427,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. + Ignore Pattern Ignorar patrón + + Add + Añadir + + + + Allow Deletion + Permitir borrado + + + Pattern Patrón + Remove Eliminar + Remove all Eliminar todos @@ -2878,109 +3460,135 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. No se puede renombrar el archivo porque hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. + Checking rename permissions … Comprobando los permisos de para renombrado … + Could not rename file. Please make sure you are connected to the server. No se ha podido renombrar el archivo. Por favor, asegúrese de que está conectado al servidor. + Could not rename local file. %1 No se ha podido renombrar el archivo local. %1 - Error - Error - - + Failed to fetch permissions with error %1 Fallo en la obtención de permisos con error %1 + Filename contains illegal characters: %1 El nombre del archivo contiene caracteres ilegales: %1 - Filename contains leading and trailing spaces. - El nombre del archivo contiene espacios iniciales y finales. - - - Filename contains leading spaces. - El nombre del archivo contiene espacios iniciales. - - - Filename contains trailing spaces. - El nombre del archivo contiene espacios finales. - - - Invalid filename - Nombre de archivo no válido + + Filename contains leading and trailing spaces. + El nombre del archivo contiene espacios iniciales y finales. - New filename - Nuevo nombre de archivo + + Filename contains leading spaces. + El nombre del archivo contiene espacios iniciales. - Please enter a new name for the file: - Por favor, escribe un nuevo nombre para el archivo: + + Filename contains trailing spaces. + El nombre del archivo contiene espacios finales. + Rename file Renombrar archivo + The file "%1" could not be synced because the name contains characters which are not allowed on the server. No se ha podido sincronizar el archivo "%1" porque su nombre contiene caracteres que no están permitidos en el servidor. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. El archivo "%1" no pudo ser sincronizado porque el nombre contiene caracteres no permitidos en este sistema. - The file could not be synced because it contains characters which are not allowed on this system. - El archivo no puede ser sincronizado porque contiene caracteres que no se permiten en el sistema. - - + The following basenames are not allowed: %1 Los siguientes nombres base no están permitidos: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces Los siguientes caracteres no se permiten en el sistema: \ / : ? * " < > | espacios al inicio/final + The following characters are not allowed: %1 Los siguientes caracteres no están permitidos: %1 + The following file extensions are not allowed: %1 Las siguients extensiones de archivo no están permitidas: %1 + The following filenames are not allowed: %1 Los siguientes nombres de archivo no están permitidos: %1 + Use invalid name Utilizar nombre inválido + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tienes permisos para renombrar este archivo. Por favor, dile al autor del archivo que lo renombre. - + + + Error + Error + + + + Invalid filename + Nombre de archivo no válido + + + + New filename + Nuevo nombre de archivo + + + + Please enter a new name for the file: + Por favor, escribe un nuevo nombre para el archivo: + + + + The file could not be synced because it contains characters which are not allowed on this system. + El archivo no puede ser sincronizado porque contiene caracteres que no se permiten en el sistema. + + OCC::LegacyAccountSelectionDialog + Legacy import Importación heredada + Select the accounts to import from the legacy configuration: Seleccione las carpetas a importar desde la configuración heredada: @@ -2988,18 +3596,23 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o posterior.</p> + Close Cerrar + + Legal notice Aviso legal @@ -3007,18 +3620,22 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::LogBrowser + Enable logging to temporary folder Activar la escritura de registros a una carpeta temporal + Log Output Salida del registro + Open folder Abrir carpeta + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3027,6 +3644,7 @@ Ya que los archivos de registro pueden acabar siendo grandes, el cliente creará Si está activado, los registros serán escritos en %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. Este ajuste persiste tras los reinicios del cliente. @@ -3036,10 +3654,14 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> + + Error Error @@ -3047,26 +3669,32 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Ha ocurrido un error durante la configuración. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. No fue posible encontrar un archivo para edición local. Asegúrese de que su ruta es válida y que este se encuentra sincronizado localmente. + Could not get file ID. No se ha podido obtener la ID del archivo. + Could not get file identifier. No se pudo obtener el identificador del archivo. + Could not start editing locally. No se ha podido empezar a editar localmente. + The file identifier is empty. El identificador del archivo está vacío. @@ -3074,117 +3702,150 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::NetworkSettings - Download Bandwidth - Velocidad de descarga - - + HTTP(S) proxy Proxy HTTP(S) - Host - Servidor - - + Hostname of proxy server Nombre del host para servidor proxy + + Password for proxy server + Contraseña para el servidor proxy + + + + SOCKS5 proxy + Proxy SOCKS5 + + + + Username for proxy server + Nombre de usuario para el servidor proxy + + + + Download Bandwidth + Velocidad de descarga + + + + Host + Servidor + + + + KBytes/s KBytes/s + + Limit automatically Limitar automáticamente + + Limit to Limitar a + + Limit to 3/4 of estimated bandwidth Limitar a 3/4 de la velocidad estimada + Manually specify proxy Especificar proxy manualmente + + No limit Ilimitado + No proxy Sin proxy + Note: proxy settings have no effects for accounts on localhost Nota: los ajustes de proxy no tienen efecto para cuentas en el sistema local. - Password for proxy server - Contraseña para el servidor proxy - - + Proxy Settings Configuración del proxy + Proxy server requires authentication El servidor proxy requiere autenticación - SOCKS5 proxy - Proxy SOCKS5 - - + Upload Bandwidth Velocidad de subida + Use system proxy Usar proxy del sistema - - Username for proxy server - Nombre de usuario para el servidor proxy - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización ha fallado.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirmas el reinicio y la actualización, es posible que su ordenador se reinicie para completar la instalación. + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Una nueva versión del programa cliente de %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> + Ask again later Preguntar de nuevo más tarde + Get update Actualizar + New Version Available Nueva versión disponible + Restart and update Reiniciar y actualizar + Skip this time Omitir esta vez + Update Failed La actualización falló + Update manually Actualizar manualmente @@ -3192,58 +3853,72 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OCUpdater + %1 available. Restart application to start the update. %1 disponible. Reinicia la aplicación para empezar la actualización. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Está a punto de ser instalada una nueva actualización para %1 . Es posible que el actualizador solicite privilegios adicionales durante el proceso. Es posible que su ordenador se deba reiniciar para completar la instalación. + Checking update server … Consultando al servidor de actualizaciones ... + Could not check for new updates. No se puede comprobar si hay actualizaciones. + Could not download update. Please open %1 to download the update manually. No se pudo descargar la actualización. Por favor, abra %1 para descargarla manualmente. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. No se puede descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. + Downloading %1 … Descargando %1 … + New %1 is available. Please open %2 to download the update. La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. + New %1 update ready La nueva %1 actualización está lista + No updates available. Your installation is the latest version. No hay actualizaciones disponibles. Su instalación está en la versión más reciente. + Update Check Comprobar si hay actualizaciones + Update status is unknown: Did not check for new updates. Estado de actualización desconocido: no se buscaron nuevas actualizaciones. + You are using the %1 update channel. Your installation is the latest version. Está utilizando el canal de actualización %1. Su instalación está en la versión mas reciente. @@ -3251,55 +3926,72 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 carpeta "%2" está sincronizada con la carpeta local "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 espacio libre + + (%1) (%1) + + (experimental) (experimental) + Connect Conectar + In Finder's "Locations" sidebar section En la sección "Ubicaciones" de la barra lateral del Finder + Local Sync Folder Carpeta local de sincronización + Sync the folder "%1" Sincronizar la carpeta "%1" + There isn't enough free space in the local folder! ¡No hay suficiente espacio libre en la carpeta local! + + Use &virtual files instead of downloading content immediately %1 Usa &archivos virtuales en vez de descargar el contenido inmediatamente %1 + Virtual files are not supported at the selected location Los archivos virtuales no están soportados en la ubicación seleccionada + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + Warning: The local folder is not empty. Pick a resolution! Advertencia: La carpeta local no está vacía. ¡Elija una solución! @@ -3307,26 +3999,32 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro <em>%1</em>. ¿Cómo desea proceder?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Fallo al conectar con la dirección del servidor seguro especificado. ¿Cómo desea proceder?</p></body></html> + Configure client-side TLS certificate Configurar certificado TLS del cliente + Connection failed La conexión ha fallado + Retry unencrypted over HTTP (insecure) Reintentar sin cifrado sobre HTTP (inseguro) + Select a different URL Seleccionar una URL diferente @@ -3334,71 +4032,88 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1:%2 + Account %1: %2 Cuenta %1: %2 + Account synchronization is disabled La sincronización está deshabilitada + Checking for changes in local "%1" Buscando cambios en carpeta local "%1" + Checking for changes in remote "%1" Buscando cambios en carpeta remota "%1" + Disconnected from %1 Desconectado de %1 + Disconnected from accounts: Desconectado desde cuentas: + Please sign in Por favor, inicie sesión + Terms of service Términos de servicio + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. El servidor en la cuenta %1 usa una versión no soportada %2. El uso de este cliente con versiones de servidor no soportadas no ha sido probado y es potencialmente peligroso. Continúa bajo tu propio riesgo. + There are no sync folders configured. No hay carpetas configuradas para sincronizar. + Unsupported Server Version Versión del servidor no soportada + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Su cuenta %1 requiere que acepte los términos de servicio de su servidor. Será redirigido a %2 para indicar que los ha leído y está de acuerdo. + macOS VFS for %1: A problem was encountered. macOS VFS para %1: Se ha encontrado un problema. + macOS VFS for %1: Last sync was successful. macOS VFS para %1: la última sincronización fue exitosa. + macOS VFS for %1: Sync is running. macOS VFS para %1: Sincronización en progreso. @@ -3406,14 +4121,17 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudHttpCredsPage + &Email &Correo electrónico + Connect to %1 Conectarse a %1 + Enter user credentials Introduzca las credenciales de usuario @@ -3421,6 +4139,8 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Es imposible leer la hora de modificación del archivo en conflicto %1 @@ -3428,18 +4148,23 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudSetupPage + &Next > &Siguiente > + Could not load certificate. Maybe wrong password? No se ha podido guardar el certificado. ¿Quizás la contraseña sea incorrecta? + + Server address does not seem to be valid La dirección del servidor no es válida + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name El link a su interfaz web %1 cuando la abra en el navegador. @@ -3448,118 +4173,150 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b>¡La cuenta basada en proveedor de archivos %1 fue creada exitosamente! </b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Carpeta de sincronización local %1 creada con éxito</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">La creación de la carpeta remota ha fallado, probablemente porque las credenciales proporcionadas son incorrectas.</font><br/>Por favor, vuelva atrás y compruebe sus credenciales.</p> + A sync connection from %1 to remote directory %2 was set up. Se ha configarado una conexión de sincronización desde %1 al directorio remoto %2 + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde el navegador. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. No se pudo eliminar y restaurar la carpeta porque ella o un archivo dentro de ella está abierto por otro programa. Por favor, cierre la carpeta o el archivo y pulsa en reintentar o cancelar la instalación. + Connection to %1 could not be established. Please check again. No se ha podido establecer la conexión con %1. Por favor, compruébelo de nuevo. + Could not create local folder %1 No se ha podido crear la carpeta local %1 + Creating local sync folder %1 … Creando carpeta de sincronización local %1 ... + Error: %1 Error: %1 + Failed to connect to %1 at %2:<br/>%3 Fallo al conectar %1 a %2:<br/>%3 + Folder rename failed Error al renombrar la carpeta + Invalid URL URL no válida. + Local sync folder %1 already exists, setting it up for sync.<br/><br/> La carpeta de sincronización local %1 ya existe, configurándola para la sincronización.<br/><br/> + No remote folder specified! ¡No se ha especificado ninguna carpeta remota! + OK OK + Remote folder %1 created successfully. Carpeta remota %1 creado correctamente. + + Remote folder %1 creation failed with error <tt>%2</tt>. Creación %1 de carpeta remota ha fallado con el error <tt>%2</tt>. + Successfully connected to %1! ¡Conectado con éxito a %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La petición autenticada al servidor ha sido redirigida a "%1". La URL es errónea, el servidor está mal configurado. + + The folder creation resulted in HTTP error code %1 La creación de la carpeta ha producido el código de error HTTP %1 + The remote folder %1 already exists. Connecting it for syncing. La carpeta remota %1 ya existe. Conectándola para sincronizacion. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> ¡La creación de la carpeta remota ha fallado debido a que las credenciales proporcionadas son incorrectas!<br/>Por favor, vuelva atrás y compruebe sus credenciales</p> + There was an invalid response to an authenticated WebDAV request Ha habido una respuesta no válida a una solicitud autenticada de WebDAV + Timeout while trying to connect to %1 at %2. Tiempo de espera agotado mientras se intentaba conectar a %1 en %2 + + Trying to connect to %1 at %2 … Intentando conectar a %1 desde %2 ... + creating folder on Nextcloud: %1 Creando carpeta en Nextcloud: %1 + failed. ha fallado. @@ -3567,45 +4324,55 @@ Nótese que usar cualquier opción de recolección de registros a través de lí OCC::OwncloudWizard + Add %1 account Añadir %1 cuenta + Back Next button text in new account wizard Atrás + Cancel Cancelar + Enable experimental feature? ¿Activar característica experimental? + Enable experimental placeholder mode Activar modo experimental de marcador de posición + Next Next button text in new account wizard Siguiente + Proxy Settings Proxy Settings button text in new account wizard Configuraciones del Proxy + Skip folders configuration Omitir la configuración de carpetas + Stay safe Mantente a salvo + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3625,10 +4392,12 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PasswordInputDialog + Password for share required Se requiere la contraseña para el recurso compartido + Please enter a password for your share: Por favor, introduce una contraseña para tu recurso compartido: @@ -3636,6 +4405,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PollJob + Invalid JSON reply from the poll URL Respuesta JSON invalida de la poll URL @@ -3643,166 +4413,210 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. No puede ser renombrado o subido. + Cannot modify encrypted item because the selected certificate is not valid. No se puede modificar el item cifrado ya que el certificado seleccionado no es válido. + Cannot sync due to invalid modification time No se puede sincronizar debido a una hora de modificación no válida + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Conflicto de capitalización: Se descargó el archivo del servidor y se renombró para evitar el conflicto. + Conflict: Server version downloaded, local copy renamed and not uploaded. Conflicto: Versión del servidor descargada, la copia local ha sido renombrada pero no se ha podido subir. + Could not upload file, because it is open in "%1". No es posible subir el archivo, porque está abierto en "%1". + Error while deleting file record %1 from the database Error mientras se borraba el registro de archivo %1 de la base de datos + Error while reading the database Error mientras se leía la base de datos + File has extension reserved for virtual files. El archivo tiene una extensión reservada para archivos virtuales. + File is listed on the ignore list. El archivo está en la lista de ignorados. + File is not accessible on the server. server error El archivo no es accesible en el servidor. + File name contains at least one invalid character El nombre del archivo contiene al menos un carácter no válido + File name is a reserved name on this file system. El nombre de archivo es un nombre reservado en este sistema de archivos. + File names containing the character "%1" are not supported on this file system. %1: the invalid character Los nombres de archivo que contienen el carácter "%1" no están soportados en este sistema de archivos. + File names ending with a period are not supported on this file system. Los nombres de archivo que terminan con un punto no son compatibles con este sistema de archivos. + File/Folder is ignored because it's hidden. El archivo o carpeta es ignorado porque está oculto. + Filename contains leading and trailing spaces. El nombre del archivo contiene espacios iniciales y finales. + Filename contains leading spaces. El nombre del archivo contiene espacios iniciales. + Filename contains trailing spaces. El nombre del archivo contiene espacios finales. + Filename is too long. El nombre del archivo es demasiado largo. + Folder is not accessible on the server. server error La carpeta no es accesible en el servidor. + Folder name contains at least one invalid character El nombre de la carpeta contiene al menos un carácter inválido + Folder name is a reserved name on this file system. El nombre de carpeta es un nombre reservado en este sistema de archivos. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Los nombres de carpeta que contienen el carácter "%1" no están soportados en este sistema de archivos. + Ignored because of the "choose what to sync" blacklist Ignorado porque se encuentra en la lista negra de «elija qué va a sincronizar» + + Moved to invalid target, restoring Movido a un lugar no válido, restaurando + Not allowed because you don't have permission to add files in that folder No permitido porque no tienes permiso para añadir archivos a esa carpeta. + Not allowed because you don't have permission to add subfolders to that folder No permitido porque no tienes permiso para añadir subcarpetas a esa carpeta. + Not allowed to remove, restoring No está permitido borrar, restaurando + Not allowed to upload this file because it is read-only on the server, restoring No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando. + Reason: the entire filename is forbidden. Motivo: el nombre de archivo completo no está permitido. + Reason: the file has a forbidden extension (.%1). Motivo: el archivo tiene una extensión no permitida (.%1). + Reason: the filename contains a forbidden character (%1). Motivo: el nombre del archivo contiene un carácter no permitido (%1). + Reason: the filename has a forbidden base name (filename start). Motivo: el nombre de archivo tiene un nombre base (inicio del nombre del archivo) no permitido. + Stat failed. Stat ha fallado. + Symbolic links are not supported in syncing. Los enlaces simbólicos no están soportados en la sincronización. + The filename cannot be encoded on your file system. El nombre de archivo no se puede codificar en tu sistema de archivos. + The filename is blacklisted on the server. El nombre del archivo está prohibido en el servidor. + Upload of %1 exceeds %2 of space left in folder %3. La carga de %1 excede %2 del espacio disponible en la carpeta %3. + Upload of %1 exceeds %2 of space left in personal files. La carga de %1 excede %2 del espacio disponible en los archivos personales. @@ -3810,26 +4624,38 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateDirectory + Could not delete file %1 from local DB No se pudo eliminar el archivo %1 de la DB local + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación no válida + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File is currently in use El archivo se encuentra en uso + + + + + + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 + + unknown exception excepción inválida @@ -3837,54 +4663,70 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 cannot be downloaded because encryption information is missing. El archivo %1 no puede ser descargado porque falta la información de cifrado, + File %1 downloaded but it resulted in a local file name clash! ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! + + File %1 has invalid modified time reported by server. Do not save it. El servidor informa que el archivo %1 tiene una hora de modificación no válida. No lo guardes. + + File has changed since discovery El archivo ha cambiado desde que fue descubierto + File was deleted from server Se ha eliminado el archivo del servidor + Free space on disk is less than %1 El espacio libre en el disco es inferior a %1 + The download would reduce free local disk space below the limit La descarga reducirá el espacio libre local por debajo del límite. + The downloaded file is empty, but the server said it should have been %1. El archivo descargado está vacío, aunque el servidor dijo que debía ocupar %1. + The file %1 is currently in use El archivo %1 se encuentra en uso + The file could not be downloaded completely. No se ha podido descargar el archivo completamente. @@ -3892,10 +4734,12 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateItemJob + ; Restoration Failed: %1 ; Fallo al restaurar: %1 + A file or folder was removed from a read only share, but restoring failed: %1 Un archivo o directorio ha sido eliminado de una carpeta compartida de solo lectura pero la recuperación ha fallado: %1 @@ -3903,30 +4747,39 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateLocalMkdir + Could not create folder %1 No se pudo crear la carpeta %1 + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Folder %1 cannot be created because of a local file or folder name clash! ¡La carpeta %1 no se pudo crear a causa de un conflicto con el nombre de un archivo o carpeta local! + The file %1 is currently in use El archivo %1 se encuentra en uso + + + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 + could not delete file %1, error: %2 no se ha podido borrar el archivo %1, error: %2 + unknown exception excepción inválida @@ -3934,14 +4787,19 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateLocalRemove + Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local + Could not remove %1 because of a local file name clash No se ha podido eliminar %1 por causa de un conflicto con el nombre de un archivo local + + + Temporary error when removing local item removed from server. Error temporal al quitar ítem local que fue eliminado del servidor. @@ -3949,38 +4807,49 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateLocalRename + Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local + + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local + + Error setting pin state Error al configurar el estado fijado + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Failed to propagate directory rename in hierarchy Fallo al propagar el renombrado de carpeta en la jerarquía + Failed to rename file Fallo al renombrar el archivo + File %1 downloaded but it resulted in a local file name clash! ¡El archivo %1 se descargó pero resultó en un conflicto con el nombre de un archivo local! + Folder %1 cannot be renamed because of a local file or folder name clash! La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. + The file %1 is currently in use El archivo %1 se encuentra en uso @@ -3988,10 +4857,12 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -3999,6 +4870,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -4006,18 +4878,22 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Error al escribir los metadatos en la base de datos: %1 + Failed to encrypt a folder %1 Fallo al cifrar una carpeta %1 + The file %1 is currently in use El archivo %1 se encuentra en uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 201, pero se recibió "%1 %2". @@ -4025,34 +4901,44 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateRemoteMove + Could not delete file record %1 from local DB No fue posible borrar el registro del archivo %1 de la base de datos local + Could not get file %1 from local DB No se pudo obtener el archivo %1 de la DB local + Could not rename %1 to %2, error: %3 No se puede renombrar %1 a %2, error: %3 + Error setting pin state Error al configurar el estado fijado + + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Error writing metadata to the database Error al escribir los metadatos en la base de datos + + The file %1 is currently in use El archivo %1 se encuentra en uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Esperado 201, pero recibido "%1 %2". @@ -4060,46 +4946,60 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateUploadFileCommon + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Failed to unlock encrypted folder. Fallo al desbloquear la carpeta cifrada. + Failed to upload encrypted file. Fallo al subir el archivo cifrado. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists El archivo %1 no se puede subir porque ya existe otro con el mismo nombre. Puede que sólo haya diferencias de mayúsculas/minúsculas + + + File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación no válida. No subir al servidor. + File Removed (start upload) %1 Archivo eliminado (comenzar subida) %1 + Local file changed during sync. Un archivo local ha sido modificado durante la sincronización. + Local file changed during syncing. It will be resumed. Un archivo local ha cambiado durante la sincronización. Se reanudará. + The file %1 is currently in use El archivo %1 se encuentra en uso + Unable to upload an item with invalid characters No se puede subir un elemento con caracteres no válidos + + Upload of %1 exceeds the quota for the folder La subida %1 excede el límite de tamaño de la carpeta @@ -4107,32 +5007,39 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateUploadFileNG + File is not accessible on the server. server error El archivo no es accesible en el servidor. + Folder is not accessible on the server. server error La carpeta no es accesible en el servidor. + Local file changed during sync. Un archivo local fue modificado durante la sincronización. + Missing File ID from server ID perdido del archivo del servidor + Poll URL missing Falta la URL de la encuesta + The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. + Unexpected return code from server (%1) Respuesta inesperada del servidor (%1) @@ -4140,18 +5047,22 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::PropagateUploadFileV1 + Local file changed during sync. Un archivo local ha sido modificado durante la sincronización. + Poll URL missing Falta la URL de la encuesta + The local file was removed during sync. El archivo local ha sido eliminado durante la sincronización. + The server did not acknowledge the last chunk. (No e-tag was present) El servidor no ha reconocido la última parte. (No había una e-tag presente) @@ -4159,22 +5070,27 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ProxyAuthDialog + Password: Contraseña: + Proxy authentication required Autenticación de proxy necesaria + Proxy: Proxy: + The proxy server needs a username and password. El servidor de proxy necesita de un usuario y contraseña. + Username: Nombre de usuario: @@ -4182,6 +5098,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::SelectiveSyncDialog + Choose What to Sync Escoja qué sincronizar @@ -4189,26 +5106,33 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Se ha producido un error al cargar la lista de carpetas. + Deselect remote folders you do not wish to synchronize. Deseleccione las carpetas remotas que no desea sincronizar. + Loading … Cargando ... + Name Nombre + + No subfolders currently on the server. No hay subcarpetas actualmente en el servidor. + Size Tamaño @@ -4216,10 +5140,12 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ServerNotificationHandler + Dismiss Descartar + Reply Responder @@ -4227,14 +5153,17 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::sesSnackBar + Error Error + Success Éxito + Warning Aviso @@ -4242,23 +5171,28 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud Configuración de %1 + Account Cuenta + General General + New account Nueva cuenta + Settings Ajustes @@ -4266,19 +5200,24 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Resultados de búsqueda global + No results found No se encontraron resultados + + Search globally Buscar globalmente @@ -4286,6 +5225,7 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ShareManager + Error Error @@ -4293,38 +5233,47 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::ShareModel + %1 days %1 días + 1 day 1 día + Could not find local folder for %1 No se ha podido encontrar una carpeta local para %1 + Internal link Enlace interno + Link share Compartición de enlace + Secure file drop Entrega segura de archivos + Secure file drop link Enlace para entrega de archivos segura + Share link Compartir enlace + Today Hoy @@ -4332,22 +5281,28 @@ Esta es un modo nuevo y experimental. Si decides usarlo, por favor, informa de c OCC::SocketApi + + Activity Actividad + Context menu share Compartir en menú contextual + Copy internal link Copiar enlace interno + Copy private link to clipboard Copiar enlace privado al portapapeles + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4356,18 +5311,22 @@ Server replied with error: %2 El servidor respondió con el error: %2 + Delete Eliminar + Delete local changes Borra cambios en local + Encrypt Cifrar + Expires in %1 minutes remaining time before lock expires @@ -4376,82 +5335,104 @@ El servidor respondió con el error: %2 + Failed to encrypt folder Fallo al cifrar la carpeta + Failed to encrypt folder at "%1" No se pudo cifrar carpeta en "%1" + Folder encrypted successfully Se cifró la carpeta exitosamente + I shared something with you He compartido algo contigo + Leave this share Abandonar este recurso compartido + Lock file Bloquear archivo + Locked by %1 Bloqueado por %1 + Move and rename … Mover y renombrar … + Move and upload … Mover y subir … + Move, rename and upload … Mover, renombrar y subir … + + Open in browser Abrir en navegador + Resharing this file is not allowed No está permitido compartir de nuevo + Resharing this folder is not allowed No está permitido compartir de nuevo esta carpeta + Resolve conflict … Resolver conflicto … + Select new location … Seleccione nueva ubicación … + Send private link by email … Enviar enlace privado por correo electrónico ... + + Share options Opciones de compartir + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. La cuenta %1 no tiene el cifrado de extremo a extremo configurado. Por favor configure esto en sus opciones de cuenta para habilitar el cifrado de carpetas. + The following folder was encrypted successfully: "%1" La siguiente carpeta se cifró con éxito: "%1" + Unlock file Desbloquear archivo @@ -4459,98 +5440,122 @@ El servidor respondió con el error: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (autofirmado) + <h3>Certificate Details</h3> <h3>Detalles del certificado</h3> + <h3>Fingerprints</h3> <h3>Firma</h3> + <h3>Issuer</h3> <h3>Emisor</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Notificación:</b> Este certificado fue aprobado manualmente</p> + Certificate information: Información del certificado: + Common Name (CN): Nombre común (NC): + Country: País: + Expires on: Caduca el: + Issued on: Emitido en: + Issuer: Emisor: + No support for SSL session tickets/identifiers No admite tickets de sesión/identificadores SSL + Organization (O): Organización (O): + Organizational Unit (OU): Unidad organizativa (UO): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Nº de serie: + Server version: %1 Versión del servidor: %1 + State/Province: Estado/Provincia: + Subject Alternative Names: Nombres alternativos del sujeto: + The connection is not secure La conexión no es segura + This connection is NOT secure as it is not encrypted. Esta conexión NO ES SEGURA, pues no está cifrada. + This connection is encrypted using %1 bit %2. Esta conexión está cifrada con %1 bit %2. @@ -4558,122 +5563,156 @@ El servidor respondió con el error: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;no especificado&gt; + Additional errors: Errores adicionales: + Cannot connect securely to <i>%1</i>: No puedo conectar de forma segura a <i>%1</i>: + + Country: %1 País: %1 + Effective Date: %1 Fecha de vigencia: %1 + Expiration Date: %1 Fecha de caducidad: %1 + Fingerprint (SHA-256): <tt>%1</tt> Huella digital (SHA-256):<tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Huella digital (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Huella dactilar (SHA1): <tt>%1</tt> + Issuer: %1 Emisor: %1 + + Organization: %1 Organización: %1 - Trust this certificate anyway - Confiar en este certificado de todas maneras - - + + Unit: %1 Unidad: %1 + Untrusted Certificate Certificado sin verificar + with Certificate %1 con certificado %1 - + + + Trust this certificate anyway + Confiar en este certificado de todas maneras + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (no realizado por el error anterior, intente de nuevo en %2) + Cannot open the sync journal No es posible abrir el diario de sincronización + Could not set file record to local DB: %1 No fue posible establecer el registro del archivo a la base de datos local: %1 + Could not update file metadata: %1 No se pudo actualizar los metadatos del archivo: %1 + Could not update file: %1 No se pudo actualizar el archivo: %1 + Could not update virtual file metadata: %1 No se ha podido actualizar los metadatos del archivo virtual: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Poco espacio libre en disco: La descarga lo reducirá por debajo del %1, deberia abortar. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Solo %1 disponible, se necesita por lo menos %2 para comenzar + There is insufficient space available on the server for some uploads. No hay suficiente espacio libre en el servidor para algunas subidas. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Imposible abrir o crear la BBDD local de sync. Asegurese de que tiene permisos de escritura en la carpeta de sync. + Unable to read from the sync journal. No se ha podido leer desde el registro de sincronización + Unable to read the blacklist from the local database No se pudo leer la lista de bloqueo de la base de datos local + Unresolved conflict. Conflicto sin resolver. + Using virtual files with suffix, but suffix is not set Usando archivos virtuales con sufijo, pero el sufijo no está establecido @@ -4681,58 +5720,76 @@ El servidor respondió con el error: %2 OCC::SyncStatusSummary + %1 of %2 %1 de %2 + %1 of %2 · %3 left %1 de %2 · quedan %3 + + + All synced! ¡Todo está sincronizado! + Checking folder changes Comprobando cambios en la carpeta + + + Offline No conectado + See below for errors Comprueba abajo los errores + See below for warnings Comprueba abajo los avisos + Some files could not be synced! ¡Algunos archivos no pueden ser sincronizados! + Some files couldn't be synced! ¡Algunos archivos no han podido ser sincronizados! + Sync paused Sincronización pausada + Syncing Sincronizando + Syncing changes Sincronizando cambios + Syncing file %1 of %2 Sincronizando archivo %1 de %2 + You need to accept the terms of service Debe aceptar los términos de servicio @@ -4740,43 +5797,55 @@ El servidor respondió con el error: %2 OCC::Systray + Add account Agregar cuenta + Download Descargar + Exit %1 Salir %1 + Help Ayuda + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Abrir Escritorio %1 + + Pause sync Pausar sincronización + Pause sync for all Pausar sincronización para todo + + Resume sync Continuar sincronización + Resume sync for all Continuar sincronización a todos + Settings Ajustes @@ -4784,22 +5853,27 @@ El servidor respondió con el error: %2 OCC::TermsOfServiceCheckWidget + Copy Link Copiar enlace + Link copied to clipboard. Enlace copiado al portapapeles + Open Browser Abrir Navegador + Polling Sondeando + Waiting for terms to be accepted Esperando a que los términos de servicio sean aceptados @@ -4807,90 +5881,115 @@ El servidor respondió con el error: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Versión del Cliente de Escritorio %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Usando el plugin de archivos virtuales: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Esta versión ha sido suministrada por %1.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0067 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1043 - Help-Link - https://wl.hidrive.com/easy/0118 + + Login_URL + https://storage.ionos.es - Help-Link_STRATO - https://static.hidrive.com/next/1013 + + Login_URL_STRATO + https://storage.ionos.es + LegalNotice-Link https://wl.hidrive.com/easy/0014 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1023 - Login_URL - https://storage.ionos.es - - - Login_URL_STRATO - https://storage.ionos.es - - + MoreInformation-Link https://wl.hidrive.com/easy/0017 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1013 + OpenSource-Link https://wl.hidrive.com/easy/0016 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0015 + Privacy-Link_STRATO https://static.hidrive.com/next/1003 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Versión del Cliente de Escritorio %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Usando el plugin de archivos virtuales: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Esta versión ha sido suministrada por %1.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0118 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1013 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Fallo al recuperar los proveedores. + Failed to fetch search providers for '%1'. Error: %2 Fallo al recuperar los proveedores de búsqueda para '%1'. Error: %2 + Search has failed for '%1'. Error: %2 La búsqueda ha fallado para '%1'. Error: %2 + Search has failed for '%2'. La búsqueda ha fallado para '%2'. @@ -4898,14 +5997,17 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Fallo al finalizar ítem. + Failed to unlock encrypted folder. Fallo al desbloquear carpeta cifrada. + Failed to update folder metadata. Fallo al actualizar los metadatos de la carpeta. @@ -4913,33 +6015,43 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 + Could not fetch public key for user %1 No se pudo obtener la llave pública para el usuario %1 + Could not find root encrypted folder for folder %1 No se ha podido encontrar la carpeta cifrada para la carpeta %1 + + + + + + + + + Error updating metadata for a folder %1 Error al actualizar los metadatos de una carpeta %1 + Failed to unlock a folder. Fallo al desbloquear una carpeta. OCC::User - - %1 notifications - %1 notificaciones - + %n notification(s) %n notificación @@ -4947,44 +6059,55 @@ El servidor respondió con el error: %2 + End-to-end certificate needs to be migrated to a new one El certificado de extremo a extremo debe ser migrado a uno nuevo + Open %1 Assistant in browser The placeholder will be the application name. Please keep it Abrir Asistente %1 en el navegador + Open %1 Talk in browser The placeholder will be the application name. Please keep it Abrir Conversación de Talk %1 en el navegador + Public Share Link Enlace Compartido Público + Quota Warning - %1 percent or more storage in use Advertencia de Cuota - Se está utilizando un porcentaje de almacenamiento del %1 o mayor + Quota is updated; %1 percent of the total space is used. La cuota ha sido actualizada; El porcentaje de uso del espacio total es %1. + Rename file Renombrar archivo + + Resolve conflict Resolver conflicto + Retry all uploads Reintentar todas las subidas + Trigger the migration Iniciar la migración @@ -4992,26 +6115,32 @@ El servidor respondió con el error: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>¿De verdad quieres eliminar la conexión con la cuenta <i>%1</i>?</p><p><b>Aviso:</b> Esto <b>no eliminará</b> ningún archivo.</p> + Cancel Cancelar + Confirm Account Removal Confirma la eliminación de cuenta + Leave share Quitar recurso compartido + Remove account Eliminar cuenta + Remove connection Eliminar vinculación @@ -5019,6 +6148,7 @@ El servidor respondió con el error: %2 OCC::UserStatusSelectorModel + %n day(s) %n día @@ -5026,6 +6156,7 @@ El servidor respondió con el error: %2 + %n hour(s) %n hora @@ -5033,6 +6164,7 @@ El servidor respondió con el error: %2 + %n minute(s) %n minuto @@ -5040,54 +6172,70 @@ El servidor respondió con el error: %2 + 1 hour 1 hora + 30 minutes 30 minutos + 4 hours 4 horas + Could not clear status message. Make sure you are connected to the server. No se ha podido borrar el mensaje de estado. Asegúrese de que está conectado al servidor. + Could not fetch predefined statuses. Make sure you are connected to the server. No se han podido recuperar los estados predefinidos. Asegúrese de que está conectado al servidor. + Could not fetch status. Make sure you are connected to the server. No se ha podido obtener el estado. Asegúrese de que está conectado al servidor. + Could not set status. Make sure you are connected to the server. No se ha podido establecer el estado. Asegúrese de que está conectado al servidor. + + Don't clear No borrar + Emojis are not supported. Some status functionality may not work. La característica de emojis no está soportada. Es posible que algunas características de estado del usuario no funcionen. + Less than a minute Hace menos de un minuto + Status feature is not supported. You will not be able to set your status. La característica de estado no está soportada. No podrá establecer su estado. + + This week Esta semana + + Today Hoy @@ -5095,14 +6243,17 @@ El servidor respondió con el error: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1 es una unidad. No soporta archivos virtuales. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1 es una unidad de red. No soporta archivos virtuales. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Por favor seleccione un ubicación diferente. %1no es un sistema de archivos NTFS. No soporta archivos virtuales. @@ -5110,30 +6261,37 @@ El servidor respondió con el error: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 no pudo ser descargado. + + Error downloading %1 + Error descargando %1 + + + > More details > Más detalles + Could not be downloaded No se pudo descargar + Download error Error de descarga + Error downloading Error al descargar - Error downloading %1 - Error descargando %1 - - + More details Más detalles @@ -5141,6 +6299,8 @@ El servidor respondió con el error: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una fecha de modificación no válida. @@ -5148,6 +6308,8 @@ El servidor respondió con el error: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una fecha de modificación no válida. @@ -5155,10 +6317,12 @@ El servidor respondió con el error: %2 OCC::WebEnginePage + Invalid certificate detected Certificado inválido detectado + The host "%1" provided an invalid certificate. Continue? El host "%1" ha entregado un certificado no válido. ¿Continuar? @@ -5166,6 +6330,7 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> @@ -5173,22 +6338,27 @@ El servidor respondió con el error: %2 OCC::WelcomePage - Form - Formulario - - + Host your own server Aloja tu propio servidor + Keep your data secure and under your control Mantén tus datos seguros y bajo tu control + + Form + Formulario + + + Log in Iniciar sesión + Sign up with provider Iniciar sesión a través de un proveedor @@ -5196,27 +6366,33 @@ El servidor respondió con el error: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy Proxy HTTP(S) + Hostname of proxy server Nombre de servidor del servidor proxy + Password for proxy server Contraseña para el servidor proxy + Proxy Settings Dialog window title for proxy settings Configuraciones del Proxy + SOCKS5 proxy Proxy SOCKS5 + Username for proxy server Nombre de usuario para el servidor proxy @@ -5224,55 +6400,68 @@ El servidor respondió con el error: %2 OwncloudAdvancedSetupPage + &Local Folder Carpeta &local + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. + Ask before syncing folders larger than Preguntar antes sincronizar carpetas mayores de + Choose different folder Elegir una carpeta diferente + Choose what to sync Elija qué sincronizar + Erase local folder and start a clean sync Borrar carpeta local e iniciar una sincronización limpia + Keep local data Mantener datos locales + Local Folder Carpeta Local + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Nombre del servidor + Sync Logo Sync Logo + Synchronize everything from server Sincronizar todo desde el servidor + Username Nombre de usuario @@ -5280,10 +6469,12 @@ El servidor respondió con el error: %2 OwncloudHttpCredsPage + &Password &Contraseña + &Username &Nombre de usuario @@ -5291,10 +6482,12 @@ El servidor respondió con el error: %2 OwncloudSetupPage + Server address Nombre del servidor + This is the link to your %1 web interface when you open it in the browser. Este es el link a su interfaz web %1 cuando la abra en el navegador. @@ -5302,145 +6495,170 @@ El servidor respondió con el error: %2 progress + Deleted Eliminado + Deleting Eliminando + Downloaded Descargado + Downloading Descargando + + Error Error + Filesystem access error Error de acceso al sistema de archivos + Ignored Ignorado + Ignoring Ignorando + Moved to %1 Movido a %1 + Moving Moviendo + Replaced by virtual file Reemplazado por un archivo virtual + Server version downloaded, copied changed local file into case conflict conflict file Se descargó la versión del servidor, se copió el archivo local cambiado hacia archivo con conflictos de capitalización + Server version downloaded, copied changed local file into conflict file Versión del servidor descargada, se ha copiado el fichero local cambiado al fichero en conflicto + + Unknown Desconocido + Updated end-to-end encryption metadata Metadatos de cifrado de extremo a extremo actualizados + Updated local metadata Actualizados metadatos locales + Updated local virtual files metadata Actualizados los metadatos de los archivos virtuales locales + Updating end-to-end encryption metadata Actualizando metadatos de cifrado extremo a extremo + Updating local metadata Actualizando los metadatos locales + Updating local virtual files metadata Actualizando los metadatos de los archivos virtuales locales + Uploaded Subido + Uploading Subiendo + Virtual file created Archivo virtual creado - - updating local virtual files metadata - Actualización de los metadatos de los archivos virtuales locales - ProxySettings + Form Formulario + Host Servidor + Manually specify proxy Especificar proxy manualmente + No proxy Sin proxy + Note: proxy settings have no effects for accounts on localhost Nota: las configuraciones del proxy no tienen efectos para las cuentas en localhost + Proxy Settings Configuraciones del Proxy + Proxy server requires authentication El servidor proxy requiere autenticación + Use system proxy Utilizar el proxy del sistema QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5449,6 +6667,7 @@ El servidor respondió con el error: %2 + %nh delay in hours after an activity @@ -5457,6 +6676,7 @@ El servidor respondió con el error: %2 + %nmin delay in minutes after an activity @@ -5465,174 +6685,222 @@ El servidor respondió con el error: %2 + 1min one minute after activity date and time 1min - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema persiste. + + Some time ago + Hace tiempo - Could not create debug archive in selected location! - No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + in the future + en el futuro - Error deleting the file - Error al eliminar el archivo + + now + ahora + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + + + New folder + Nueva carpeta + + Could not create debug archive in selected location! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + + Failed to create debug archive Error al crear el archivo de depuración - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Parece estar utilizando un proxy que requiere autenticación. Por favor, verifique las configuraciones de su proxy y las credenciales. Si necesita ayuda, contacte al administrador de su servidor. + + Synced %1 + Sincronizado %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Está tomando mucho tiempo conectarse al servidor. Por favor, intente nuevamente más tarde. Si necesita ayuda, contacte al administrador de su servidor. + + You changed %1 + Ha cambiado %1 - New folder - Nueva carpeta + + You created %1 + Ha creado %1 - Paths beginning with '#' character are not supported in VFS mode. - Las rutas que comienzan con el carácter '#' no están soportadas en el modo VFS. + + You deleted %1 + Ha eliminado %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Los archivos en el servidor cambiaron mientras Ud. trabajaba. Por favor, intente sincronizar nuevamente. Contacte al administrador de su servidor si el problema persiste. + + You renamed %1 + Ha renombrado %1 - Some time ago - Hace tiempo + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Se produjo un error inesperado. Intente sincronizar de nuevo o contacte con el administrador del servidor si el problema persiste. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Algo ha salido mal en el servidor. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor si el problema persiste. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Parece estar utilizando un proxy que requiere autenticación. Por favor, verifique las configuraciones de su proxy y las credenciales. Si necesita ayuda, contacte al administrador de su servidor. - Synced %1 - Sincronizado %1 + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Está tomando mucho tiempo conectarse al servidor. Por favor, intente nuevamente más tarde. Si necesita ayuda, contacte al administrador de su servidor. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - La dirección que se utilizó para hacer la solicitud es demasiado grande para que el servidor pueda utilizarla. Por favor, trate de acortar la información que está enviando, o, contacte al administrador de su servidor para que le asista. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Los archivos en el servidor cambiaron mientras Ud. trabajaba. Por favor, intente sincronizar nuevamente. Contacte al administrador de su servidor si el problema persiste. - The directory %1 cannot be part of your sync directory. Please choose another folder. - El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Algo ha salido mal en el servidor. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor si el problema persiste. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + La dirección que se utilizó para hacer la solicitud es demasiado grande para que el servidor pueda utilizarla. Por favor, trate de acortar la información que está enviando, o, contacte al administrador de su servidor para que le asista. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. El archivo es demasiado grande para ser cargado. Podría necesitar escoger un archivo más pequeño, o, contactar al administrador de su servidor para que le asista. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. La solicitud no pudo ser completada debido a que algunas condiciones no se cumplieron. Por favor, intente sincronizar nuevamente más tarde. Si necesita asistencia, por favor, contacte al administrador de su servidor. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. Está solicitud está tardando más de lo usual. Por favor, intente sincronizar nuevamente. Si todavía no funciona, comuníquese con el administrador de su servidor. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. El recurso al que está intentando acceder está actualmente bloqueado y no puede ser modificado. Por favor, intente cambiarlo más tarde, o, contacte al administrador de su servidor para que le asista. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. El servidor no pudo procesar su solicitud ya que alguna información era, o bien incorrecta o estaba incompleta. Por favor, intente sincronizar nuevamente más tarde, o, contacte al administrador de su servidor para que le asista. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. El servidor no tiene suficiente espacio para completar su solicitud. Por favor, verifique el nivel de cuota restante que tiene su usuario contactando al administrador de su servidor. + The server does not recognize the request method. Please contact your server administrator for help. Es servidor no reconoce el método de la solicitud. Por favor, contacte al administrador de su servidor para que le ayude. + The server does not support the version of the connection being used. Contact your server administrator for help. El servidor no soporta la versión de la conexión en uso. Contacte al administrador de su servidor para que le ayude. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. El servidor está ocupado ahora mismo. Por favor, intenta conectar de nuevo en unos minutos o contacta con el administrador del servidor si es urgente. + This file type isn’t supported. Please contact your server administrator for assistance. Este tipo de archivo no está soportado. Por favor, contacte al administrador de su servidor para que le asista. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. Esta carpeta o archivo ya no están disponibles. Si necesita asistencia, por favor, contacte al administrador de su servidor. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. Esta solicitud no pudo ser completada por que le faltan algunas condiciones requeridas. Por favor, intente nuevamente más tarde, o, contacte al administrador de su servidor para que le ayude. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. No pudimos encontrar lo que está buscando. Puede haber sido movido o eliminado. Si necesita ayuda, contacte al administrador de su servidor. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. No pudimos procesar su solicitud. Por favor, intente sincronizar nuevamente más tarde. Si esto sigue sucediendo, contacte al administrador de su servidor para buscar ayuda. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. Estamos teniendo problemas conectándonos al servidor. Por favor, intente nuevamente en breve. Si el problema persiste, el administrador de su servidor puede ayudarle. - You changed %1 - Ha cambiado %1 - - - You created %1 - Ha creado %1 - - - You deleted %1 - Ha eliminado %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. No tiene acceso a este recurso. Si cree que es un error, por favor, contacte al administrador de su servidor. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. No tiene permisos para acceder a este recurso. Si cree que esto es un error, contacte al administrador de su servidor para que le asista. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. Ha hecho demasiadas solicitudes. Por favor, espere e intente de nuevo. Si sigue viendo esto, el administrador de su servidor le podrá ayudar. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. Debe iniciar sesión para continuar. Si tiene problema con sus credenciales, por favor, comuníquese con el administrador de su servidor. - You renamed %1 - Ha renombrado %1 - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Su red necesita autenticación adicional. Por favor, verifique su conexión. Contacte al administrador de su servidor para que le ayude si el problema persiste. - in the future - en el futuro + + Error deleting the file + Error al eliminar el archivo - now - ahora + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + Las rutas que comienzan con el carácter '#' no están soportadas en el modo VFS. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5641,26 +6909,32 @@ El servidor respondió con el error: %2 + All local versions Todas las versiones locales + All server versions Todas las versiones del servidor + Cancel Cancelar + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Decida si quiere mantener la versión local, la versión del servidor, o ambas. Si escoge ambas, se le añadirá un número al nombre del archivo local. + Resolve conflicts Resolver conflictos + Solve sync conflicts Resolver conflictos de sincronización @@ -5668,6 +6942,7 @@ El servidor respondió con el error: %2 SesErrorBox + Error Error @@ -5675,14 +6950,17 @@ El servidor respondió con el error: %2 SesTrayHeader + Open Nextcloud in browser Abrir HiDrive Next en el navegador + Open local or team folders Abrir carpetas locales o de equipo + Website Sitio web @@ -5690,10 +6968,12 @@ El servidor respondió con el error: %2 ShareDelegate + Copied! ¡Copiado! + Share options Opciones de compartir @@ -5701,66 +6981,78 @@ El servidor respondió con el error: %2 ShareDetailsPage + Add another link Añadir otro enlace + Allow resharing Permitir que otros compartan + + Allow upload and editing Permitir la subida y edición + An error occurred setting the share password. Ocurrió un error al establecer la contraseña del recurso compartido + Copy share link Copiar enlace de recurso compartido + Custom Permissions Permisos personalizados + Enter a note for the recipient Ingrese una nota para el destinatario - Enter the note to recipient - Introducir la nota al destinatario - - + File drop (upload only) Entrega de archivos (solo carga) + Hide download Ocultar descarga + Note to recipient Nota para el destinatario + Password protection Protección por contraseña + Set expiration date Fijar fecha de caducidad + Share link copied! ¡Enlace compartido copiado! + Unshare Dejar de compartir + View only Solo lectura @@ -5768,10 +7060,12 @@ El servidor respondió con el error: %2 ShareeSearchField + Search for users or groups… Buscar usuarios o grupos… + Sharing is not available for this folder Compartir no está disponible para esta carpeta @@ -5779,30 +7073,37 @@ El servidor respondió con el error: %2 ShareView + Expires in %1 Caduca en %1 + Password required for new share Se requiere una contraseña para el nuevo recurso compartido + Share password Contraseña del recurso compartido + Shared with you by %1 Compartido con Ud. por %1 + Sharing is disabled Compartir está deshabilitado + Sharing is disabled. Compartir está deshabilitado. + This item cannot be shared. Este ítem no puede ser compartido. @@ -5810,6 +7111,7 @@ El servidor respondió con el error: %2 SyncJournalDb + Failed to connect database. Fallo en la conexión a la base de datos. @@ -5817,14 +7119,17 @@ El servidor respondió con el error: %2 SyncStatus + Open browser Abrir navegador + Resolve conflicts Resolver conflictos + Sync now Sincronizar ahora @@ -5832,10 +7137,12 @@ El servidor respondió con el error: %2 TalkReplyTextField + Reply to … Responder a … + Send reply to chat message Enviar respuesta al mensaje de chat @@ -5843,14 +7150,17 @@ El servidor respondió con el error: %2 TermsOfServiceCheckWidget + Logo Logotipo + Switch to your browser to accept the terms of service Cambie al navegador para aceptar los términos de servicio + Terms of Service Términos de Servicio @@ -5858,42 +7168,52 @@ El servidor respondió con el error: %2 theme + Error occurred during setup Ha ocurrido un error durante la configuración + Error occurred during sync Ha ocurrido un error durante la sincronización + Preparing to sync Preparando para sincronizar + Stopping sync Deteniendo la sincronización + Sync is paused La sincronización está en pausa. + Sync is running Sincronizado en proceso + Sync status is unknown Estado de sincronización desconocido + Sync was successful La sincronización fue exitosa + Sync was successful but some files were ignored La sincronización fue exitosa, pero se han ignorado algunos archivos + Waiting to start syncing Esperando para empezar la sincronización @@ -5901,30 +7221,37 @@ El servidor respondió con el error: %2 TrayFoldersMenuButton + Files Archivos + Open %1 in file explorer Abrir %1 en el explorador de archivos + Open local folder Abrir carpeta local + Open local folder "%1" Abrir carpeta local "%1" + Open local or team folders Abrir carpetas locales o de equipo + Open team folder "%1" Abrir carpeta del equipo "%1" + User group and local folders menu Menú de usuario de carpetas de grupo o locales @@ -5932,42 +7259,52 @@ El servidor respondió con el error: %2 TrayWindowAccountMenu + Account switcher and settings menu Menú para cambio de cuentas y ajustes + Add account Añadir cuenta + Current account Cuenta actual + Current account avatar Avatar de la cuenta actual + Current account status is do not disturb El estado actual de la cuenta es no molestar + Current account status is online El estado actual de la cuenta es en línea + Exit Salir + Pause sync for all Pausar sincronización para todos + Resume sync for all Reanudar sincronización para todos + Settings Configuración @@ -5975,14 +7312,17 @@ El servidor respondió con el error: %2 TrayWindowHeader + More apps Más apps + Open %1 in browser Abrir %1 en el navegador + Open local or team folders Abrir carpetas locales o de equipo @@ -5990,22 +7330,27 @@ El servidor respondió con el error: %2 TrayWindowHeaderBar + More apps Más apps + Open %1 in browser Abrir %1 en el navegador + Open Nextcloud in browser Abrir HiDrive Next en el navegador + Open local or team folders Abrir carpetas locales o de equipo + Website Sitio web @@ -6013,6 +7358,7 @@ El servidor respondió con el error: %2 UnifiedSearchInputContainer + Search files, messages, events … Buscando archivos, mensajes, eventos … @@ -6020,6 +7366,7 @@ El servidor respondió con el error: %2 UnifiedSearchPlaceholderView + Start typing to search Comience a escribir para buscar @@ -6027,6 +7374,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Cargar más resultados @@ -6034,6 +7382,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Árbol de resultados de la búsqueda @@ -6041,6 +7390,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultListItem + Load more results Cargar más resultados @@ -6048,6 +7398,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultNothingFound + No results for No se encontraron resultados para @@ -6055,6 +7406,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultSectionItem + Search results section %1 Sección de resultados de búsqueda %1 @@ -6062,22 +7414,29 @@ El servidor respondió con el error: %2 UserLine + Account actions Acciones de la cuenta + + Log in Iniciar sesión + + Log out Cerrar sesión + Remove account Eliminar cuenta + Switch to account Cambiar a la cuenta @@ -6085,26 +7444,32 @@ El servidor respondió con el error: %2 UserStatusMessageView + Apply Aplicar + Cancel Cancelar + Clear Borrar + Clear status message after Borrar mensaje de estado tras + Status message Mensaje de estado + What is your status? Cuál es tu estado? @@ -6112,38 +7477,47 @@ El servidor respondió con el error: %2 UserStatusSetStatusView + Appear offline Desconectado + Away Ausente + Busy Ocupado/a + Do not disturb No molestar + Invisible Invisible + Mute all notifications Silenciar todas las notificaciones + Online En línea + Online status Estado en línea + Status message Mensaje de estado @@ -6151,30 +7525,37 @@ El servidor respondió con el error: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) %n día @@ -6182,6 +7563,7 @@ El servidor respondió con el error: %2 + %n hour(s) %n hora @@ -6189,6 +7571,7 @@ El servidor respondió con el error: %2 + %n minute(s) %n minuto @@ -6196,6 +7579,7 @@ El servidor respondió con el error: %2 + %n month(s) %n mes @@ -6203,6 +7587,7 @@ El servidor respondió con el error: %2 + %n second(s) %n segundo @@ -6210,6 +7595,7 @@ El servidor respondió con el error: %2 + %n year(s) %n año @@ -6220,42 +7606,52 @@ El servidor respondió con el error: %2 utility + Always available locally Siempre disponible localmente + Available online only Disponible solo en línea + Could not open browser No se ha podido abrir el navegador + Could not open email client No se ha podido abrir el cliente de correo electrónico + Currently available locally Disponible localmente ahora + Free up local space Liberar espacio local + Make always available locally Hacer que esté siempre localmente disponible + Some available online only Algunos solo disponibles en línea + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Se ha producido un error al lanzar el navegador para ir a la URL: %1 , ¿puede ser que no tenga ningún navegador por defecto? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Se ha producido un error al lanzar el cliente de correo electrónico para crear un nuevo mensaje. ¿Puede ser que no haya ningún cliente de correo electrónico configurado? @@ -6263,14 +7659,17 @@ El servidor respondió con el error: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" El encabezado del checksum contenía un tipo de comprobación desconocido: "%1" + The checksum header is malformed. El encabezado de checksum está malformado. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" El archivo descargado no coincide con la suma de comprobación (checksum), se reanudará. "%1" != "%2" diff --git a/translations/client_es_MX.ts b/translations/client_es_MX.ts index 108d74cfbb108..dfc78a3601ade 100644 --- a/translations/client_es_MX.ts +++ b/translations/client_es_MX.ts @@ -1,56 +1,14 @@ - - - - Agree - Aceptar - - - Back - Volver - - - Necessary data - Datos necesarios - - - Required to ensure that the software can be used as expected - Necesario para garantizar que el software puede utilizarse según lo previsto - - - Save Settings - Guardar ajustes - - - Send anonymous use - Enviar uso anónimo - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. - - ActivityItem + In %1 En %1 + Open %1 locally Abrir %1 localmente @@ -58,10 +16,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ActivityItemContent + Dismiss Descartar + Open file details Abrir detalles del archivo @@ -69,40 +29,40 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ActivityList + Activity list Lista de actividad + No activities yet Sin actividades todavía + Scroll to top - - BasicComboBox - - Clear status message menu - Borrar el menú de mensajes de estado - - CallNotificationDialog + Answer Talk call notification Aviso de llamada de Answer Talk + Decline Rechazar + Decline Talk call notification Rechazar la notificación de llamadas de Talk + Talk notification caller avatar Avatar de la notificación de llamada @@ -110,71 +70,89 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Comprobando cambios en "%1" + Help Ayuda + Log out Cerrar sesión + + No recently changed files No hay archivos modificados recientemente + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. + Open in browser Abrir en el navegador + Pause synchronization Pausar sincronización + Quit sync client Cerrar cliente de sincronización + Recently changed Modificados recientemente + Settings Configuración + Sync paused Sincronización pausada + Syncing Sincronizando + Syncing %1 Sincronizando %1 + Syncing %1 (%2 left) Sincronizando %1 (%2 restantes) + Syncing %1 of %2 Sincronizando %1 de %2 + Syncing %1 of %2 (%3 left) @@ -182,10 +160,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ConflictDelegate + Local version Versión local + Server version Versión del servidor @@ -193,46 +173,59 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans CurrentAccountHeaderButton + Account switcher and settings menu + Add account Añadir cuenta + Add new account Añadir nueva cuenta + Current account Cuenta actual + Current account avatar Avatar de la cuenta actual + Current account status is do not disturb El estado actual de la cuenta es no molestar + Current account status is online El estado actual de la cuenta es en línea + Exit Salir + + Pause sync for all Pausar sincronización para todos + + Resume sync for all Reanudar sincronización para todos + Settings Configuraciones @@ -240,6 +233,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EditFileLocallyLoadingDialog + Opening file for local editing Abriendo archivo para edición local @@ -247,6 +241,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EmojiPicker + No recent emojis No hay emoticonos recientes @@ -254,6 +249,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token @@ -261,6 +257,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans ErrorBox + Error Error @@ -268,6 +265,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileDetailsPage + Dismiss Descartar @@ -275,6 +273,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileDetailsWindow + File details of %1 · %2 Detalles del archivo %1 · %2 @@ -282,28 +281,25 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderEvictionDialog + Local copies + Reload Recargar + Remove local copies - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - La sincronización rápida sólo sincronizará los cambios en archivos y carpetas dentro de las carpetas que se han explorado. Esto puede incrementar significativamente la capacidad de respuesta en la configuración inicial de archivos virtuales. Sin embargo, esto provocará descargas redundantes de archivos movidos a carpetas inexploradas. - - FileProviderFileDelegate + Delete Borrar @@ -311,22 +307,22 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderSettings + Enable virtual files Activar archivos virtuales + General settings Configuración general + Reset virtual files environment - Signal file provider domain - Dominio del proveedor de archivos de firmas - - + Virtual files settings Configuración de archivos virtuales @@ -334,18 +330,17 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB de %2 GB de archivos remotos sincronizados - Evict local copies... - Desalojar las copias locales... - - + Free up space … + Local storage use Uso de almacenamiento local @@ -353,19 +348,23 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans FileProviderSyncStatus + All synced! ¡Todo está sincronizado! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. + Request sync + Syncing Sincronizando @@ -373,10 +372,12 @@ macOS may ignore or delay this request. FileSystem + Could not remove folder "%1" No se pudo eliminar la carpeta "%1" + Error removing "%1": %2 Error al eliminar "%1": %2 @@ -384,22 +385,28 @@ macOS may ignore or delay this request. Flow2AuthWidget + + An error occurred while connecting. Please try again. Ocurrió un error al conectar. Por favor, inténtelo de nuevo. + Browser Authentication Autentificación del navegador + Copy Link Copiar enlace + Logo Logotipo + Switch to your browser to connect your account Cambiar al navegador para conectar con su cuenta @@ -407,10 +414,12 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync + Add Folder Sync Añadir sincronización de carpetas + Step 3 of 3: Selektive Synchronisation Paso 3 de 3: Sincronización selectiva @@ -418,18 +427,22 @@ macOS may ignore or delay this request. FolderWizardSourcePage + &Choose &Elegir + Add Folder Sync Añadir sincronización de carpetas + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + Step 1 of 3: Select local folder Paso 1 de 3: Seleccionar carpeta local @@ -437,30 +450,37 @@ macOS may ignore or delay this request. FolderWizardTargetPage + Add Folder Sync Añadir sincronización de carpetas + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + Create folder Crear carpeta + Folders Carpetas + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + Refresh Actualizar + Step 2 of 3: Directory in your %1 Paso 2 de 3: Directorio en su %1 @@ -468,14 +488,17 @@ macOS may ignore or delay this request. MainWindow + Main content + New activities + Unified search results list @@ -483,6 +506,7 @@ macOS may ignore or delay this request. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Construido de la revisión Git <a href="%1">%2</a> en %3, %4 usando Qt %5, %6</small></p> @@ -490,14 +514,17 @@ macOS may ignore or delay this request. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + The server enforces strict transport security and does not accept untrusted certificates. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. @@ -505,18 +532,22 @@ macOS may ignore or delay this request. OCC::Account + File %1 is already locked by %2. El archivo %1 ya está bloqueado por %2. + Lock operation on %1 failed with error %2 La operación de bloqueo en %1 falló con el error %2 + Public Share Link + Unlock operation on %1 failed with error %2 La operación de desbloqueo en %1 falló con el error %2 @@ -524,29 +555,29 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 cuentas se detectaron con un cliente de escritorio antiguo. -¿Deben estas cuentas ser importadas? - - + An account was detected from a legacy desktop client. Should the account be imported? + Could not import accounts from legacy client configuration. No se pudieron importar las cuentas desde la configuración del cliente antiguo. + Import Importar + + Legacy import Importación antigua + Skip Omitir @@ -554,310 +585,333 @@ Should the account be imported? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) de %2 en uso. Algunas carpetas, como carpetas de red o compartidas, podrían tener límites diferentes. + %1 as %2 %1 como %2 + %1 in use %1 en uso + %1 of %2 in use %1 de %2 en uso + (experimental) (experimental) + <p>Could not create local folder <i>%1</i>.</p> <p>No se pudo crear la carpeta local <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>¿Realmente quieres dejar de sincronizar la carpeta <i>%1</i>?<p><b>Nota:</b> Esto <b>no</b> borrará ningún archivo.</p> - Apply - Aplicar - - - Apply manual changes - Aplicar cambios manuales - - + + Availability Disponibilidad - Cancel - Cancelar - - + Choose what to sync Elige que sincronizar + Confirm Folder Sync Connection Removal Confirmar la Eliminación de la Conexión de Sincronización de Carpeta + Connected to %1. Conectado a %1. - Connected with <server> as <user> - Conectado con <server> como <user> - - + Connecting to %1 … Conectando a %1 … - Connection settings - Configuración de la conexión - - + Could not encrypt folder because the folder does not exist anymore No se pudo cifrar la carpeta porque ya no existe + + Create new folder Crear nueva carpeta + Currently there is no storage usage information available. Actualmente no hay información disponible del espacio usado. + Disable support Deshabilitar soporte + Disable virtual file support … Desactivar soporte de archivos virtuales … + Disable virtual file support? ¿Desactivar soporte de archivos virtuales? + Display mnemonic Mostrar mnemotécnica + + Do not encrypt folder No cifrar la carpeta + Do you want to forget the end-to-end encryption settings for %1 on this device? + + Edit Ignored Files Editar archivos ignorados + Enable virtual file support %1 … Habilitar el soporte de archivos virtuales %1 … + Encrypt Cifrar + + Encrypt folder Cifrar la carpeta + Encryption failed El cifrado falló + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + End-to-end Encryption Cifrado punto a punto + End-to-end Encryption with Virtual Files Cifrado punto a punto con archivos virtuales + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + End-to-end encryption has not been initialized on this account. + End-to-end encryption mnemonic Mnemotécnico de cifrado punto a punto - Expand Memory - Ampliar la memoria - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0067 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1043 - - + Folder creation failed Falló la creación de la carpeta + Force sync now Forzar la sincronización ahora + Forget encryption setup + Forget the end-to-end encryption on this device + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Migrate certificate to a new one + No %1 connection configured. No hay %1 conexión configurada. + No account configured. No hay cuentas configuradas. + + Open folder Abrir carpeta + Pause sync Pausar sincronización + Please wait for the folder to sync before trying to encrypt it. Por favor, espere a que la carpeta se sincronice antes de intentar cifrarla. + Remove Folder Sync Connection Eliminar la Conexión de Sincronización de la Carpeta + Remove folder sync connection Eliminar la conexión de sincronización de carpetas + Restart sync Reiniciar sincronización + Resume sync Reanudar sincronización + Server %1 is currently being redirected, or your connection is behind a captive portal. El servidor %1 está siendo redirigido o su conexión está detrás de un portal cautivo. + Server %1 is currently in maintenance mode. Actualmente el servidor %1 se encuentra en modo mantenimiento. + Server %1 is temporarily unavailable. El servidor %1 se encuntra temporalmente no disponible + Server configuration error: %1 at %2. Error de configuración del servidor: %1 en %2. + Set up encryption Configurar cifrado + Signed out from %1. Cerraste sesión en %1. - Standard file sync - Sincronización de archivos estándar - - + Storage space %1% occupied Espacio de almacenamiento %1% ocupado - Storage space: … - Espacio de almacenamiento: … - - + Sync Running Sincronización en curso - Synchronize all - Sincronizar todo - - - Synchronize none - Sincronizar nada - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully La carpeta tiene un problema de sincronización menor. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully La carpeta tiene un problema de sincronización. El cifrado de esta carpeta será posible cuando se haya sincronizado correctamente. + The server version %1 is unsupported! Proceed at your own risk. ¡La versión del servidor %1 no está soportada! Proceda bajo su propio riesgo. + The syncing operation is running.<br/>Do you want to terminate it? La operación de sincronización está en curso. <br/>¿Deseas terminarla? + There are folders that have grown in size beyond %1MB: %2 Existen carpetas que han aumentado de tamaño más allá de %1MB: %2 + There are folders that were not synchronized because they are external storages: Hay carpetas que no se han sincronizado porque están en el almacenamiento externo: + There are folders that were not synchronized because they are too big or external storages: Hay carpetas que no se han sincronizado porque son demasiado grandes o están en el almacenamiento externo: + There are folders that were not synchronized because they are too big: Hay carpetas que no se han sincronizado porque son demasiado grandes: + This account supports end-to-end encryption, but it needs to be set up first. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -870,66 +924,128 @@ This action will abort any currently running synchronization. Esta acción abortará cualquier sincronización en curso. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Esto cifrará su carpeta y todos los archivos contenidos en ella. Ya no se podrá acceder a estos archivos sin su clave de cifrado. <b>Este proceso no es reversible. ¿Seguro que quiere continuar?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - Para proteger tu identidad criptográfica, la ciframos con una regla mnemotécnica de 12 palabras del diccionario. Por favor, anótalas y mantenlas a salvo. Estas palabras serán necesarias para añadir otros dispositivos a su cuenta (como un teléfono móvil o un portátil). - - + Unable to connect to %1. No se pudo conectar a %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Las carpetas no marcadas serán <b>eliminadas</b> de tu sistema de archivos local y ya no serán sincronizados a esta computadora - - - Virtual file sync - Sincronización de archivos virtuales - - + Warning Advertencia + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. No puede cifrar una carpeta con contenidos, por favor, elimine los archivos. Espere a una nueva sincronización, luego cifre la carpeta. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? + You need to accept the terms of service at %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Parece que tiene habilitada la función de archivos virtuales en esta carpeta. En este momento no es posible descargar implícitamente archivos virtuales cifrados punto a punto. Para obtener la mejor experiencia con archivos virtuales y cifrado punto a punto, asegúrese que la carpeta cifrada esté marcada con "Hacer disponible localmente siempre". - + + + Apply + Aplicar + + + + Apply manual changes + Aplicar cambios manuales + + + + + + Cancel + Cancelar + + + + Connected with <server> as <user> + Conectado con <server> como <user> + + + + Connection settings + Configuración de la conexión + + + + Expand Memory + Ampliar la memoria + + + + Standard file sync + Sincronización de archivos estándar + + + + + Storage space: … + Espacio de almacenamiento: … + + + + Synchronize all + Sincronizar todo + + + + Synchronize none + Sincronizar nada + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Las carpetas no marcadas serán <b>eliminadas</b> de tu sistema de archivos local y ya no serán sincronizados a esta computadora + + + + Virtual file sync + Sincronización de archivos virtuales + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso denegado por el servidor. Para verificar que tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio desde el navegador. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. + There was an invalid response to an authenticated WebDAV request Hubo una respuesta inválida a una solicitud WebDAV autentificada @@ -937,46 +1053,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials Solicitando Credenciales + Configuration error Error de configuración + Connected Conectado + Disconnected Desconectado + Maintenance mode Modo Mantenimiento + Need the user to accept the terms of service + Network error Error de red + Redirect detected Redirección detectada + Service unavailable Servicio no disponible + Signed out Sesión cerrada + Unknown account state Estado de la cuenta no conocido @@ -984,14 +1111,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … Obteniendo actividades … + For more activities please open the Activity app. Para más actividades, por favor abra la aplicación de actividades. + Network error occurred: client will retry syncing. Ocurrió un error de red: el cliente reintentará la sincronización. @@ -999,34 +1129,42 @@ Would you like to do this now? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Archivos de certificado (*.p12 *.pfx) + + + + Select a certificate + Seleccionar un certificado + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Es altamente recomendado un paquete de cifrado pkcs12 dado que una copia se guardará en el archivo de configuración. + Browse … Navegar … + Certificate & Key (pkcs12): Certificado y llave (pkcs12): - Certificate files (*.p12 *.pfx) - Archivos de certificado (*.p12 *.pfx) - - + Certificate password: Contraseña del certificado: + SSL client certificate authentication Autenticación del certificado del cliente SSL - Select a certificate - Seleccionar un certificado - - + This server probably requires a SSL client certificate. Este servidor probablemente requiere un certificado del cliente SSL. @@ -1034,32 +1172,39 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported %1 cuentas + %1 folders number of folders imported %1 carpetas + 1 account 1 cuenta + 1 folder 1 carpeta + Continue Continuar + Error accessing the configuration file Error al acceder el archivo de configuración + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1067,35 +1212,43 @@ Would you like to do this now? %3 + Legacy import Importación antigua + Quit Salir + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Algunas configuraciones fueron configuradas en versiones %1 de este cliente y utilizan características que no están disponibles en esta versión.<br><br>Continuar significará que <b>%2 estas configuraciones</b>.<br><br>El archivo de configuración actual ya se ha respaldado en <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ocurrió un error al acceder al archivo de configuración en %1. Por favor, revise que su cuenta de sistema pueda acceder al archivo. + deleting eliminando + ignoring ignorando + newer newer software version más reciente + older older software version más antiguo @@ -1104,18 +1257,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: &Contraseña: + &Username: &Usuario: + Authentication Required Se requiere de autenticación + Enter username and password for "%1" at %2. Ingrese el usuario y la contraseña para "%1" en %2. @@ -1123,10 +1280,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "Falló %1 al desbloquear la carpeta cifrada %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El código HTTP devuelto por el servidor es erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -1134,18 +1293,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 can not be downloaded because of a local file name clash! + The file %1 is currently in use + Unable to update metadata of new file %1. error with update metadata of new Win VFS file @@ -1154,50 +1317,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists No se puede cargar el archivo %1 porque ya existe otro archivo con el mismo nombre, con diferencias únicamente en mayúsculas y minúsculas + File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. + File %1 has invalid modified time. Do not upload to the server. El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. + File Removed (start upload) %1 Archivo eliminado (inicio de carga) %1 + File contains leading or trailing spaces and couldn't be renamed + + Local file changed during sync. El archivo local cambió durante la sincronización. + Local file changed during syncing. It will be resumed. El archivo local cambió durante la sincronización. Se reanudará. + Network error: %1 Error de red: %1 + Restoration failed: %1 Falló la restauración: %1 + The file %1 is currently in use El archivo %1 está actualmente en uso + The local file was removed during sync. El archivo local fue eliminado durante la sincronización. @@ -1205,30 +1381,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. No se puede renombrar el archivo porque ya hay uno con el mismo nombre en el servidor. Por favor, elija otro nombre. + Could not rename file. Please make sure you are connected to the server. No se pudo renombrar el archivo. Asegúrese de estar conectado al servidor. + Failed to fetch permissions with error %1 Error al obtener permisos con error %1 + Filename contains leading and trailing spaces. El nombre de archivo contiene espacios al principio y al final. + Filename contains leading spaces. El nombre de archivo contiene espacios al principio. + Filename contains trailing spaces. El nombre de archivo contiene espacios al final. + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. @@ -1236,86 +1419,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 no admite nombres de archivo iguales con diferencias únicamente en mayúsculas y minúsculas. + + Filename contains illegal characters: %1 + El nombre de archivo contiene caracteres no permitidos: %1 + + + + Filename contains leading and trailing spaces. + El nombre de archivo contiene espacios al principio y al final. + + + + Filename contains leading spaces. + El nombre de archivo contiene espacios al principio. + + + + Filename contains trailing spaces. + El nombre de archivo contiene espacios al final. + + + + Rename file + Renombrar archivo + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + No se puede sincronizar el archivo "%1" porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. + + + + Use invalid name + Usar nombre inválido + + + + 0 byte 0 bytes + Case Clash Conflict Conflicto de mayúsculas/minúsculas + Case clashing file Archivo en conflicto de mayúsculas/minúsculas + Error Error + Existing file Archivo existente - Filename contains illegal characters: %1 - El nombre de archivo contiene caracteres no permitidos: %1 - - - Filename contains leading and trailing spaces. - El nombre de archivo contiene espacios al principio y al final. - - - Filename contains leading spaces. - El nombre de archivo contiene espacios al principio. - - - Filename contains trailing spaces. - El nombre de archivo contiene espacios al final. - - + New filename Nuevo nombre de archivo + + Open clashing file Abrir archivo en conflicto + + Open existing file Abrir archivo existente + Please enter a new name for the clashing file: Por favor, ingrese un nuevo nombre para el archivo en conflicto: - Rename file - Renombrar archivo - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - No se puede sincronizar el archivo "%1" porque genera un conflicto de mayúsculas/minúsculas con un archivo existente en este sistema. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. El archivo no puede ser sincronizado porque genera un conflicto de capitalización con un archivo que ya existe en este sistema. - Use invalid name - Usar nombre inválido - - + file A archivo A + file B archivo B + + today hoy @@ -1323,6 +1531,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database Error al escribir metadatos a la base de datos @@ -1330,27 +1539,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: + Enter E2E passphrase Ingresar frase de contraseña E2E + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Invalid PIN. Login failed + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Por favor, ingrese su frase de cifrado punto a punto:<br><br>Usuario: %2<br> Cuenta: %3<br> @@ -1358,66 +1573,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte - 0 bytes - - - <a href="%1">Open local version</a> - <a href="%1">Abrir versión local</a> - - - <a href="%1">Open server version</a> - <a href="%1">Abrir versión del servidor</a> - - - Click to open the file - Haga clic para abrir el archivo - - - Conflicting versions of %1. - Versiones en conflicto de %1. - - + Keep both versions Mantener ambas versiones + Keep local version Mantener la versión local + + Keep selected version Mantener la versión seleccionada + Keep server version Mantener la versión del servidor - Local version - Versión local - - + Open local version Abrir la versión local + Open server version Abrir la versión del servidor + + + 0 byte + 0 bytes + + + + <a href="%1">Open local version</a> + <a href="%1">Abrir versión local</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Abrir versión del servidor</a> + + + + + Click to open the file + Haga clic para abrir el archivo + + + + + Conflicting versions of %1. + Versiones en conflicto de %1. + + + + Local version + Versión local + + + Server version Versión del servidor + Sync Conflict Conflicto de sincronización + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. ¿Qué versión del archivo desea conservar?<br/>Si selecciona ambas versiones, el archivo local tendrá un número agregado al nombre. + + today hoy @@ -1425,22 +1661,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion Confirmar eliminación + Do you want to delete the directory <i>%1</i> and all its contents permanently? ¿Deseas eliminar el directorio <i>%1</i> y todo su contenido permanentemente? + Do you want to delete the file <i>%1</i> permanently? ¿Desea eliminar el archivo <i>%1</i> permanentemente? + + Error Error + + Moving file failed: %1 @@ -1452,27 +1695,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Error de autenticación: El usuario o contraseña están equivocados. + No %1 account configured The placeholder will be the application name. Please keep it + Please update to the latest server and restart the client. Por favor actualiza a la versión más reciente del servidor y reinicia el cliente. + The configured server for this client is too old El servidor configurado para este cliente es demasiado antiguo + The provided credentials are not correct Las credenciales proporcionadas no son correctas + Timeout Tiempo de espera @@ -1480,69 +1729,84 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. + + + Agree Aceptar + Form Formulario + Settings Ajustes - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://wl.hidrive.com/easy/0015'>política de privacidad</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Esta aplicación utiliza tecnologías de seguimiento. Al hacer clic en Aceptar, usted acepta el tratamiento de sus datos anónimos. Puede ajustar sus opciones en cualquier momento a través de la configuración. <br/> <br/>Puede encontrar información sobre el procesamiento de datos y más en nuestra <a href='https://static.hidrive.com/next/1003'>política de privacidad</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. +Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. + + + Back Volver + Form Formulario + Necessary data Datos necesarios + Required to ensure that the software can be used as expected Necesario para garantizar que el software puede utilizarse según lo previsto + Save Settings Guardar ajustes + Send anonymous use Enviar uso anónimo + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Recopilamos datos de carácter anónimo para la optimización de nuestra aplicación. -Para ello, utilizamos soluciones de software de distintos socios. Deseamos transmitirte total transparencia y libertad de decisión acerca de la recopilación y el tratamiento de tu uso anónimo. Puedes modificar tu configuración en la opción del menú «Protección de datos» en cualquier momento. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Error al cancelar la eliminación de %1 + Error while canceling deletion of a file Error al cancelar la eliminación de un archivo @@ -1550,18 +1814,23 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! ¡Hubo un error al configurar los metadatos cifrados! + Encrypted metadata setup error: initial signature from server is empty. Error de configuración de metadatos encriptados: la firma inicial del servidor está vacía. + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” @@ -1569,22 +1838,27 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Directorio no accesible en el cliente, permiso denegado + Directory not found: %1 Directorio no encontrado: %1 + Error while opening directory %1 Error al abrir el directorio %1 + Error while reading directory %1 Error al leer el directorio %1 + Filename encoding is not valid La codificación del nombre de archivo es inválida @@ -1592,62 +1866,93 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyJob + + + An error occurred during data retrieval. Ocurrió un error durante la recuperación de datos. + + An error occurred during setup. Ocurrió un error durante la configuración. + + An error occurred trying to synchronise the file to edit locally. Ocurrió un error al intentar sincronizar el archivo para editarlo localmente. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. No se pudo encontrar un archivo para edición local. Asegúrese que no está excluido a través de la sincronización selectiva. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. No se pudo encontrar un archivo para edición local. Asegúrese que su ruta sea válida y esté sincronizado localmente. + Could not find a remote file info for local editing. Make sure its path is valid. No se pudo encontrar la información del archivo remoto para edición local. Asegúrese que su ruta sea válida. + Could not open %1 No se pudo abrir %1 + + + + + + + + Could not start editing locally. No se pudo iniciar la edición local. + File %1 already locked. El archivo %1 ya está bloqueado. + File %1 could not be locked. No se pudo bloquear el archivo %1. + File %1 now locked. El archivo %1 está ahora bloqueado. + Invalid local file path. Ruta al archivo local inválida. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. El bloqueo durará %1 minutos. También puede desbloquear este archivo manualmente una vez que haya terminado de editarlo. + Please try again. Por favor, intente de nuevo. + Server error: PROPFIND reply is not XML formatted! Error del servidor: ¡La respuesta PROPFIND no tiene formato XML! @@ -1655,10 +1960,12 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyManager + Could not validate the request to open a file from server. No se pudo validar la solicitud para abrir un archivo desde el servidor. + Please try again. Por favor, intente de nuevo. @@ -1666,26 +1973,34 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Ocurrió un error al intentar verificar la solicitud de edición local. + Could not find an account for local editing. No se pudo encontrar una cuenta para la edición local. + Could not start editing locally. No se pudo iniciar la edición local. + Invalid file path was provided. Se proporcionó una ruta de archivo inválida. + Invalid token received. Se recibió un token inválido. + + + Please try again. Por favor, intente de nuevo. @@ -1693,22 +2008,34 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Error al obtener el identificador de la carpeta cifrada. + + + + + + Error fetching metadata. Error al obtener los metadatos. + + + Error locking folder. Error al bloquear la carpeta. + Error parsing or decrypting metadata. Error al analizar gramaticalmente o descifrar los metadatos. + Failed to upload metadata No se pudieron subir los metadatos @@ -1716,6 +2043,7 @@ Para ello, utilizamos soluciones de software de distintos socios. Deseamos trans OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. No se pueden generar los metadatos para el cifrado, desbloqueando la carpeta. @@ -1725,6 +2053,7 @@ Esto podría ser un problema con su librería OpenSSL. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1733,6 +2062,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 hour(s) ago hours elapsed since file last modified @@ -1741,6 +2071,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 minute(s) ago minutes elapsed since file last modified @@ -1749,6 +2080,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 month(s) ago months elapsed since file last modified @@ -1757,6 +2089,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 second(s) ago seconds elapsed since file last modified @@ -1765,6 +2098,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 year(s) ago years elapsed since file last modified @@ -1773,6 +2107,7 @@ Esto podría ser un problema con su librería OpenSSL. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1784,22 +2119,28 @@ Esto podría ser un problema con su librería OpenSSL. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. La URL del servidor devuelta no comienza con HTTPS a pesar de que la URL de inicio de sesión sí comenzó con HTTPS. El inicio de sesión es posible porque esto podría ser un problema de seguridad. Por favor, contacte a su administrador. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. @@ -1807,38 +2148,48 @@ Esto podría ser un problema con su librería OpenSSL. OCC::Flow2AuthWidget + Copy Link Copiar enlace + + Error Error + Link copied to clipboard. Enlace copiado al portapapeles. + Open Browser Abrir en el navegador + Polling for authorization Verificando autorización + Starting authorization Empezando autorización + Switch to your browser to connect your account Cambiar al navegador para conectar con su cuenta + Unable to open the Browser, please copy the link to your Browser. No se pudo abrir el navegador, por favor copie el enlace en su navegador. + Waiting for authorization Esperando autorización @@ -1846,6 +2197,7 @@ Esto podría ser un problema con su librería OpenSSL. OCC::Folder + %1 and %n other file(s) are currently locked. %1 y %n otro(s) archivo(s) están actualmente bloqueados. @@ -1853,6 +2205,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 y %n otro(s) archivo(s) no puideron ser sincronizado por errores. Consulta la bitácora para más detalles. @@ -1860,6 +2213,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 and %n other file(s) have been added. Se han añadido %1 y %n otro(s) archivo(s). @@ -1867,6 +2221,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 and %n other file(s) have been removed. @@ -1874,6 +2229,7 @@ Esto podría ser un problema con su librería OpenSSL. + %1 and %n other file(s) have been updated. %1 y %n otro(s) archivo(s) han sido actualizados. @@ -1881,14 +2237,17 @@ Esto podría ser un problema con su librería OpenSSL. + %1 could not be synced due to an error. See the log for details. %1 no pudo ser sincronizado por un error. Consulta la bitácora para más detalles. + %1 has a sync conflict. Please check the conflict file! %1 tiene un conflicto de sincronización. ¡Por favor verifica el archivo con conflicto! + %1 has and %n other file(s) have sync conflicts. %1 y %n otro(s) archivo(s) tienen confictos de sincronización. @@ -1896,11 +2255,13 @@ Esto podría ser un problema con su librería OpenSSL. + %1 has been added. %1 names a file. %1 ha sido añadido. + %1 has been moved to %2 and %n other file(s) have been moved. %1 se ha movido a %2 y %n otro(s) archivo(s) han sido movidos. @@ -1908,15 +2269,18 @@ Esto podría ser un problema con su librería OpenSSL. + %1 has been moved to %2. %1 se ha movido a %2. + %1 has been removed. %1 names a file. %1 ha sido eliminado. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 ha sido renombrado como %2 y %n otro(s) archivo(s) han sido renombrados. @@ -1924,30 +2288,36 @@ Esto podría ser un problema con su librería OpenSSL. + %1 has been renamed to %2. %1 and %2 name files. %1 ha sido renombrado a %2. + %1 has been updated. %1 names a file. %1 ha sido actualizado. + %1 is currently locked. %1 está actualmente bloqueado. + A folder from an external storage has been added. Una carpeta de almacenamiento externo ha sido añadida. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Una carpeta ha sobrepasado el límite establecido de tamaño de %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1956,6 +2326,7 @@ Por favor, confirme si desea proceder con estos borrados. Alternativamente, puede restaurar todos los archivos borrados subiendo desde la carpeta '%1' al servidor. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1964,10 +2335,12 @@ Por favor, confirme si desea proceder con estos borrados. Alternativamente, puedes restaurar todos los archivos borrados descargándolos del servidor. + A new folder larger than %1 MB has been added: %2. Una carpeta mayor de %1 MB ha sido añadida: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1980,70 +2353,87 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l %1 + Could not read system exclude file No fue posible leer el archivo de exclusión del sistema + Keep syncing Continuar sincronización + Please choose a different location. %1 isn't a readable folder. + Please choose a different location. %1 isn't a valid folder. + Please choose a different location. The folder %1 doesn't exist. + Please go in the settings to select it if you wish to download it. Por favor ve a las configuraciones para seleccionarlo si deseas descargarlo. + Proceed with Deletion Proceder a la supresión + Remove all files? ¿Eliminar todos los archivos? + Restore Files from Server Restaurar archivos del servidor + Restore Files to Server Restaurar archivos en el servidor + Stop syncing Detener sincronización + Sync Activity Sincronizar Actividad + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. El archivo %1 fue creado pero fue excluido de la sincronización previamente. No se sincronizará. + The folder %1 has surpassed the set folder size limit of %2MB. La carpeta %1 ha sobrepasado el límite establecido de tamaño de %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. La carpeta %1 fue creada pero fue excluida de la sincronización previamente. Los datos dentro de ella no se sincronizarán. + Virtual file download failed with code "%1", status "%2" and error message "%3" La descarga del archivo virtual falló con el código "%1" , estado "%2" y mensaje de error "%3" + Would you like to stop syncing this folder? ¿Desea detener la sincronización de esta carpeta? @@ -2051,26 +2441,32 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l OCC::FolderCreationDialog + %1 Create new folder %1 Crear nueva carpeta + Could not create a folder! Check your write permissions. ¡No se pudo crear la carpeta! Verifique sus permisos de escritura. + + Error + Error + + + Create new folder Crear nueva carpeta + Enter folder name Ingrese el nombre de la carpeta - Error - Error - - + Folder already exists La carpeta ya existe @@ -2078,108 +2474,136 @@ Esto significa que el cliente de sincronización podría no cargar los cambios l OCC::FolderMan + %1 (Sync is paused) %1 (La sincronización está pausada) + (backup %1) (copia de seguridad %1) + (backup) (copia de seguridad) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Se encontró un antiguo registro de sincronización "%1", pero no se pudo eliminar. Por favor, asegúrese que ninguna aplicación lo esté utilizando actualmente. + Could not reset folder state No fue posible restablecer el estado de la carpeta + Last sync was successful. La última sincronización fue exitosa. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url + + Please choose a different location. %1 is already being used as a sync folder. + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Please choose a different location. The path %1 doesn't exist. + Please choose a different location. The path %1 isn't a folder. + Please choose a different location. The selected folder isn't valid. + + Please choose a different location. You don't have enough permissions to write to %1. folder location + Preparing for sync. Preparando para sincronizar. + Setup error. Error de configuración. + Sync finished with unresolved conflicts. La sincronización finalizó pero con conflictos sin resolver. + Sync is paused. La sincronización está pausada. + Sync is running. La Sincronización está en curso. + Sync request was cancelled. La solicitud de sincronización fue cancelada. + Syncing %1 Sincronizando %1 + Syncing %1 (%2 left) Sincronizando %1 (%2 restantes) + Syncing %1 (A few seconds left) + Syncing %1 of %2 Sincronizando %1 de %2 + Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (A few seconds left) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2187,10 +2611,12 @@ For advanced users: this issue might be related to multiple sync database files + Undefined state. Estado indefinido. + Waiting to start syncing. Agurardando para iniciar la sincronización. @@ -2198,14 +2624,17 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate + Add Folder Sync Añadir sincronización de carpetas + File Archivo + Synchronize any other local folder with your %1 Sincroniza cualquier otra carpeta local con tu %1 @@ -2213,113 +2642,141 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 de %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 de %2, archivo %3 de %4 + %5 left, %1 of %2, file %3 of %4 faltan %5 , %1 de %2, archivo %3 de %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Quedan unos segundos, %1 de %2, archivo %3 de %4 + About to start syncing A punto de comenzar la sincronización + Checking for changes in local "%1" Verificando cambios en "%1" local + Checking for changes in remote "%1" Verificando cambios en "%1" remoto + Click this button to add a folder to synchronize. Haz click en este botón para agregar una carpeta a sincronizar. + Could not decrypt! ¡No se pudo desencriptar! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Descargando %1/s + Error while loading the list of folders from the server. Se presentó un error al cargar la lista de carpetas desde el servidor. + Fetching folder list from server … Obteniendo la lista de carpetas desde el servidor ... + File %1 of %2 Archivo %1 de %2 + Preparing to sync … Preparándose para sincronizar ... + Signed out Sesión cerrada + Synchronizing files in local folder Sincronizando archivos en la carpeta local + Synchronizing virtual files in local folder Sincronizando archivos virtuales en la carpeta local + Syncing local and remote changes Sincronizando cambios locales y remotos + There are unresolved conflicts. Click for details. Hay conflictos sin resolver. Haz click para más detalles. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Cargando %1/s + Virtual file support is enabled. El soporte de archivos virtuales está habilitado. + Waiting for %n other folder(s) … @@ -2327,14 +2784,17 @@ For advanced users: this issue might be related to multiple sync database files + You need to be connected to add a folder Neceistas estar conectado para agregar una carpeta + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2342,6 +2802,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcher + The watcher did not receive a test notification. El observador no recibió una notificación de prueba. @@ -2349,6 +2810,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Este problema suele ocurrir cuando las notificaciones inotify se agotan. Consulte las preguntas frecuentes para más detalles. @@ -2356,10 +2818,12 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard + Add Folder Sync Connection Agregar Conexión de Carpeta de Sincronización + Add Sync Connection Agregar Conexión de Sincronización @@ -2367,30 +2831,37 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath + Add Folder Sync Añadir sincronización de carpetas + Choose Seleccione + Click to select a local folder to sync. Haz click para seleccionar una carpeta local a sincronizar. + Enter the path to the local folder. Ingresa la ruta a la carpeta local. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecciona una carpeta de tu disco duro que deba estar permanentemente conectada a tu %1. Todos los archivos y subcarpetas se cargan y sincronizan automáticamente. + Select the source folder Selecciona la carpeta fuente + Step 1 of 3: Select local folder Paso 1 de 3: Seleccionar carpeta local @@ -2398,62 +2869,78 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardRemotePath + Add Folder Sync Añadir sincronización de carpetas + Authentication failed accessing %1 La autenticación fallo al acceder %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Ambas carpetas están permanentemente vinculadas y sus respectivos contenidos se sincronizan y actualizan automáticamente. + Choose this to sync the entire account Selecciona esta opción para sincronizar la cuenta completa + Create Remote Folder Crea la Carpeta Remota + Create folder Crear carpeta + Enter the name of the new folder to be created below "%1": Introduce el nombre de la nueva carpeta que se creará debajo de "%1": + Failed to create the folder on %1. Please check manually. Se presentó una falla al crear la carpeta en %1. Por favor verifica manualmente. + Failed to list a folder. Error: %1 Se presentó una falla al enlistar la carpeta. Error: %1 + Folder was successfully created on %1. La carpeta se creó exitosamente en %1. + + Please choose a different location. %1 is already being synced to %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Por favor, ahora seleccione o cree una carpeta de destino en su %1 donde el contenido debe ser cargado y sincronizado. + Refresh Actualizar + Step 2 of 3: Directory in your %1 Paso 2 de 3: Directorio en su %1 + You are already syncing the subfolder %1 at %2. @@ -2461,26 +2948,36 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardSelectiveSync + + + (experimental) (experimental) + Add Folder Sync Añadir sincronización de carpetas + Step 3 of 3: Selektive Synchronisation Paso 3 de 3: Sincronización selectiva + + + Use virtual files instead of downloading content immediately %1 Usa archivos virtuales en vez de descargar el contenido inmediatamente %1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. @@ -2488,22 +2985,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design - &Recogida de datos de análisis para un diseño basado en las necesidades - - - &Automatically check for updates - Comprobar &actualizaciones automáticamente - - - &Launch on System Startup - &Lanzar al Iniciar el Sistema - - - &Restart && Update - &Reinicia && Actualiza - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2512,6 +2994,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2519,210 +3002,281 @@ Downgrading versions is not possible immediately: changing from stable to enterp + + Cancel + Cancelar + + + + Change update channel + Cambiar el canal de actualizaciones + + + + Changing update channel? + ¿Cambiar el canal de actualizaciones? + + + + Debug Archive Created + Archivo de depuración creado + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + + + + + Restore to &%1 + + + + + Server notifications that require attention. + Notificaciones del servidor que requieren atención. + + + + Show call notification dialogs. + Mostrar diálogos de notificación de llamadas. + + + + Show chat notification dialogs. + + + + + Show notification when quota usage exceeds 80%. + + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + + + + + You cannot disable autostart because system-wide autostart is enabled. + No puede desactivar el inicio automático porque el inicio automático a nivel de sistema está habilitado. + + + + Zip Archives + Comprimir archivos + + + + daily + diariamente + + + + enterprise + empresarial + + + + &Automatically check for updates + Comprobar &actualizaciones automáticamente + + + + &Launch on System Startup + &Lanzar al Iniciar el Sistema + + + + &Restart && Update + &Reinicia && Actualiza + + + Advanced Avanzado + Ask for confirmation before synchronizing external storages Pide confirmación antes de sincronizar almacenamientos externos + Ask for confirmation before synchronizing new folders larger than Pedir confirmación antes de sincronizar carpetas nuevas mayores a + Automatically disable synchronisation of folders that overcome limit Desactivar automáticamente la sincronización de carpetas que superen el límite - Cancel - Cancelar - - - Change update channel - Cambiar el canal de actualizaciones - - - Changing update channel? - ¿Cambiar el canal de actualizaciones? - - + + Check Now Comprobar ahora + + Create Debug Archive Crear archivo de depuración + Data Protection Protección de datos - Debug Archive Created - Archivo de depuración creado - - + Desktop client x.x.x Cliente de escritorio x.x.x + Edit &Ignored Files Editar Archivos &Ignorados + For System Tray Para la Bandeja del Sistema + General Settings Configuraciones generales + + Legal Notice Aviso legal + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Más información + Move removed files to trash Mover archivos eliminados a la papelera + Necessary data Datos necesarios + Notify when synchronised folders grow larger than specified limit Notificar cuando las carpetas sincronizadas aumenten su tamaño más allá del límite especificado + Open Source Software Software de código abierto + Privacy Policy Política de privacidad - Redact information deemed sensitive before sharing! Debug archive created at %1 - - - + Required to ensure that the software can be used as expected Necesario para garantizar que el software puede utilizarse según lo previsto + Restore &Default - Restore to &%1 - - - + Send anonymous use Enviar uso anónimo - Server notifications that require attention. - Notificaciones del servidor que requieren atención. - - + Server poll interval + Show &Quota Warning Notifications + Show Call Notifications Mostrar notificaciones de llamadas + Show Chat Notifications + Show Server &Notifications Mostrar &notificaciones del servidor - Show call notification dialogs. - Mostrar diálogos de notificación de llamadas. - - - Show chat notification dialogs. - - - - Show notification when quota usage exceeds 80%. - - - + Show sync folders in &Explorer's navigation pane Mostrar carpetas de sincronización en el panel de navegación de &Explorer - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Esto nos ayuda a optimizar el software y a identificar mejor las caídas del sistema y los errores inesperados. + Update channel Canal de actualizaciones + Updates Actualizaciones + Usage Documentation Documentación de uso + Use &Monochrome Icons Usar Íconos &Monocromáticos - You cannot disable autostart because system-wide autostart is enabled. - No puede desactivar el inicio automático porque el inicio automático a nivel de sistema está habilitado. - - - Zip Archives - Comprimir archivos - - + + beta beta - daily - diariamente - - - enterprise - empresarial - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + stable estable @@ -2730,22 +3284,27 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GETFileJob + Connection Timeout El tiempo de la conexión expiró + No E-Tag received from server, check Proxy/Gateway No se recibió un E-Tag del servidor, verifica el Proxy/Gateway + Server returned wrong content-range El servidor regreso un rango de contenido equivocado + We received a different E-Tag for resuming. Retrying next time. Recibimos una E-Tag diferente para reanudar. Reintentando la proxima vez. + We received an unexpected download Content-Length. Recibimos una longitud de contenido de descarga inesperada. @@ -2753,6 +3312,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2761,14 +3321,17 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 + Password for share required Se requiere contraseña para el recurso compartido + Please enter a password for your link share: Por favor, ingrese una contraseña para el enlace compartido: + Sharing error Error al compartir @@ -2776,18 +3339,22 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Haz click aqui</a> para solicitar una contraseña de aplicación desde la interface Web. + Enter Password Ingresa la Contraseña + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Por favor, ingrese la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br> + Reading from keychain failed with error: "%1" La lectura del llavero falló con el error: '%1' @@ -2795,49 +3362,50 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Esta entrada es proporcionada por el sistema en "%1" y no se puede modificar en esta vista. + + + Files Ignored by Patterns Archivos Ignorados por Patrones + Global Ignore Settings Configuraciones a Ignorar Globales + Ignored Files Editor Editor de Archivos Ignorados + Sync hidden files Sincronizando archivos ocultos - - This entry is provided by the system at "%1" and cannot be modified in this view. - Esta entrada es proporcionada por el sistema en "%1" y no se puede modificar en esta vista. - - + OCC::IgnoreListTableWidget - Add - Añadir - - + Add a new ignore pattern: Añadir un nuevo patrón de ignorar: - Allow Deletion - Permitir eliminación - - + Cannot write changes to "%1". No se pueden escribir los cambios en "%1". + Could not open file No se puede abrir el archivo + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2846,18 +3414,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre una carpeta. Esto es útil para los metadatos. + Ignore Pattern Ignorar patrón + + Add + Añadir + + + + Allow Deletion + Permitir eliminación + + + Pattern Patrón + Remove Eliminar + Remove all Eliminar todo @@ -2865,109 +3447,135 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. No se puede renombrar el archivo porque ya hay un archivo con el mismo nombre en el servidor. Por favor, elija otro nombre. + Checking rename permissions … Comprobando los permisos de renombramiento ... + Could not rename file. Please make sure you are connected to the server. No se pudo renombrar el archivo. Por favor, asegúrese de estar conectado al servidor. + Could not rename local file. %1 No se pudo renombrar el archivo local. %1 - Error - Error - - + Failed to fetch permissions with error %1 Error al obtener los permisos con el error %1 + Filename contains illegal characters: %1 El nombre de archivo contiene caracteres no permitidos: %1 + Filename contains leading and trailing spaces. El nombre de archivo contiene espacios al principio y al final. + Filename contains leading spaces. El nombre de archivo contiene espacios al principio. + Filename contains trailing spaces. El nombre de archivo contiene espacios al final. - Invalid filename - Nombre de archivo inválido - - - New filename - Nuevo nombre de archivo - - - Please enter a new name for the file: - Por favor, ingrese un nuevo nombre para el archivo: - - + Rename file Renombrar archivo + The file "%1" could not be synced because the name contains characters which are not allowed on the server. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. No se pudo sincronizar el archivo "%1" porque el nombre contiene caracteres que no están permitidos en este sistema. - The file could not be synced because it contains characters which are not allowed on this system. - No se pudo sincronizar el archivo porque contiene caracteres que no están permitidos en este sistema. - - + The following basenames are not allowed: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + The following characters are not allowed: %1 + The following file extensions are not allowed: %1 + The following filenames are not allowed: %1 + Use invalid name Usar nombre inválido + You don't have the permission to rename this file. Please ask the author of the file to rename it. No tiene permiso para renombrar este archivo. Por favor, solicite al autor del archivo que lo renombre. - + + + Error + Error + + + + Invalid filename + Nombre de archivo inválido + + + + New filename + Nuevo nombre de archivo + + + + Please enter a new name for the file: + Por favor, ingrese un nuevo nombre para el archivo: + + + + The file could not be synced because it contains characters which are not allowed on this system. + No se pudo sincronizar el archivo porque contiene caracteres que no están permitidos en este sistema. + + OCC::LegacyAccountSelectionDialog + Legacy import Importación antigua + Select the accounts to import from the legacy configuration: @@ -2975,18 +3583,23 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Bajo la Licencia Pública General de GNU (GPL) versión 2.0 o cualquier versión posterior.</p> + Close Cerrar + + Legal notice Aviso legal @@ -2994,18 +3607,22 @@ Los objetos cuyo borrado esté permitido se eliminarán si impiden que se borre OCC::LogBrowser + Enable logging to temporary folder Habilitar el registro en la carpeta temporal + Log Output Salida de la Bitácora + Open folder Abrir carpeta + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3014,6 +3631,7 @@ Dado que los archivos de registro pueden crecer bastante, el cliente creará uno Si está habilitado, los registros se escribirán en %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. Esta configuración persiste entre reinicios del cliente. @@ -3023,10 +3641,14 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>El archivo "%1"<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no se puede</b> guardar!</nobr> + + Error Error @@ -3034,26 +3656,32 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Ocurrió un error durante la configuración. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. No se pudo encontrar un archivo para edición local. Asegúrese que su ruta sea válida y esté sincronizado localmente. + Could not get file ID. No se pudo obtener el identificador del archivo. + Could not get file identifier. No se pudo obtener el identificador del archivo. + Could not start editing locally. No se pudo iniciar la edición local. + The file identifier is empty. El identificador del archivo está vacío. @@ -3061,117 +3689,150 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::NetworkSettings - Download Bandwidth - Ancho de banda para Descarga - - + HTTP(S) proxy Proxy HTTP(S) - Host - Servidor - - + Hostname of proxy server Nombre del servidor proxy + + Password for proxy server + Contraseña del servidor proxy + + + + SOCKS5 proxy + Proxy SOCKS5 + + + + Username for proxy server + Nombre de usuario del servidor proxy + + + + Download Bandwidth + Ancho de banda para Descarga + + + + Host + Servidor + + + + KBytes/s KBytes/s + + Limit automatically Limitar automáticamente + + Limit to Limitar a + + Limit to 3/4 of estimated bandwidth Limitar a 3/4 del ancho de banda estimado + Manually specify proxy Especificar proxy manualmente + + No limit Sin límite + No proxy Sin proxy + Note: proxy settings have no effects for accounts on localhost Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local - Password for proxy server - Contraseña del servidor proxy - - + Proxy Settings Configuraciones del Proxy + Proxy server requires authentication El servidor Proxy requiere de autenticación - SOCKS5 proxy - Proxy SOCKS5 - - + Upload Bandwidth Ancho de banda para Carga + Use system proxy Usar el sistema de proxy - - Username for proxy server - Nombre de usuario del servidor proxy - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Una nueva versión del Cliente %1 está disponible pero el proceso de actualización falló.</p><p><b>%2</b> se ha descargado. La versión instalada es %3. Si confirma el reinicio y la actualización, es posible que su computadora se reinicie para completar la instalación.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Una nueva versión del Cliente %1 está disponible.</p><p><b>%2</b> está disponible para descargar. La versión instalada es la %3.</p> + Ask again later Preguntar de nuevo más tarde + Get update Obtener la actualización + New Version Available Nueva versión disponible + Restart and update Reiniciar y actualizar + Skip this time Omitir esta vez + Update Failed La actualización falló + Update manually Actualizar manualmente @@ -3179,58 +3840,72 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OCUpdater + %1 available. Restart application to start the update. %1 disponible. Reinicie la aplicación para iniciar la actualización. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Una nueva actualización para %1 está a punto de ser instalada. El programa de actualización puede solicitar privilegios adicionales durante el proceso. Puede ser que deba reiniciar su computadora para completar la instalación. + Checking update server … Verificando el servidor de actualizaciones ... + Could not check for new updates. No fue posible verificar nuevas actualizaciones. + Could not download update. Please open %1 to download the update manually. No se pudo descargar la actualización. Por favor, abra %1 para descargar la actualización manualmente. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. No se pudo descargar la actualización. Por favor, abra <a href='%1'>%1</a> para descargar la actualización manualmente. + Downloading %1 … Descargando %1 … + New %1 is available. Please open %2 to download the update. La nueva %1 está disponible. Por favor, abra %2 para descargar la actualización. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. La nueva %1 está disponible. Por favor, abra<a href='%2'>%2</a> para descargar la actualización. + New %1 update ready La nueva actualización de %1 está lista + No updates available. Your installation is the latest version. + Update Check Verificar Actualizaciones + Update status is unknown: Did not check for new updates. Estado de la actualización desconocido. No se verificó si había nuevas actualizaciones. + You are using the %1 update channel. Your installation is the latest version. @@ -3238,55 +3913,72 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 carpeta "%2" está sincronizada con la carpeta local "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 de espacio libre + + (%1) (%1) + + (experimental) (experimental) + Connect Conectar + In Finder's "Locations" sidebar section + Local Sync Folder Carpeta de Sincronización Local + Sync the folder "%1" Sincronizar la carpeta "%1" + There isn't enough free space in the local folder! ¡No hay espacio suficiente en la carpeta local! + + Use &virtual files instead of downloading content immediately %1 Usar archivos &virtuales en lugar de descargar el contenido de inmediato %1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Los archivos virtuales no son compatibles con la carpeta raíz de la partición de Windows como carpeta local. Por favor, elija una subcarpeta válida bajo la letra de la unidad. + Warning: The local folder is not empty. Pick a resolution! Advertencia: La carpeta local no está vacía. ¡Elija una resolución! @@ -3294,26 +3986,32 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Se presentó una falla al conectarse a la dirección del servidor seguro <em>%1</em>. ¿Cómo deseas proceder?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p> Se presentó una falla al conectarse a la direccón especificada del servidor seguro. ¿Como deseas proceder?</p></body></html> + Configure client-side TLS certificate Configurar el certificado TLS del lado del cliente + Connection failed Falló la conexión + Retry unencrypted over HTTP (insecure) Reintentar no encriptado sobre HTTP (inseguro) + Select a different URL Selecciona una liga diferente @@ -3321,71 +4019,88 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Cuenta %1 : %2 + Account synchronization is disabled La sincronización de cuentas está deshabilitada + Checking for changes in local "%1" Buscando cambios en el local "%1" + Checking for changes in remote "%1" Buscando cambios en el remoto "%1" + Disconnected from %1 Desconectado de %1 + Disconnected from accounts: Desconectado de las cunetas: + Please sign in Por favor inicia sesión + Terms of service + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. El servidor de la cuenta %1 ejecuta una versión no soportada %2. Usar este cliente con versiones del servidor no soportadas no ha sido probado y puede ser peligroso. Proceda bajo su propio riesgo. + There are no sync folders configured. No se han configurado carpetas para sincronizar + Unsupported Server Version Versión del Servidor No Soportada + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + macOS VFS for %1: A problem was encountered. macOS VFS para %1: Ocurrió un problema. + macOS VFS for %1: Last sync was successful. macOS VFS para %1: La última sincronización fue exitosa. + macOS VFS for %1: Sync is running. macOS VFS para %1: Sincronización en progreso. @@ -3393,14 +4108,17 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudHttpCredsPage + &Email &Correo electrónico + Connect to %1 Conectar a %1 + Enter user credentials Ingresar las credenciales del usuario @@ -3408,6 +4126,8 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 No se puede obtener la hora de modificación para el archivo en conflicto %1 @@ -3415,18 +4135,23 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudSetupPage + &Next > &Siguiente> + Could not load certificate. Maybe wrong password? No se pudo cargar el certificado. ¿Quizás la contraseña sea incorrecta? + + Server address does not seem to be valid La dirección del servidor parece ser inválida + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name El enlace a su interfaz web de %1 cuando lo abre en el navegador. @@ -3435,118 +4160,150 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>¡La carpeta de sincronización local %1 fue creada exitosamente!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Conectado exitosamente a %1: %2 versión %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">La creación de la carpeta remota falló probablemente porque las credenciales proporcionadas son incorrectas. </font><br/> Por favor regresa y verifica tus credenciales.</p> + A sync connection from %1 to remote directory %2 was set up. Una conexión de sincronización de %1 al directorio remoto %2 fue establecida. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Acceso prohibido por el servidor. Para verificar que tengas el acceso correcto, <a href="%1">haz click aquí</a> para acceder al servicio con tu navegador. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. No se puede eliminar ni hacer una copia de seguridad de la carpeta porque la carpeta o un archivo dentro de ella está abierto en otro programa. Por favor, cierre la carpeta o el archivo y pulse reintentar o cancelar la instalación. + Connection to %1 could not be established. Please check again. No se pudo establecer la conexión a %1. Por favor verifica de nuevo. + Could not create local folder %1 No fue posible crear la carpeta local %1 + Creating local sync folder %1 … Creando carpeta de sincronización local %1 ... + Error: %1 Error: %1 + Failed to connect to %1 at %2:<br/>%3 Hubo una falla al conectarse a %1 en %2: <br/>%3 + Folder rename failed Falla al renombrar la carpeta + Invalid URL URL Inválido + Local sync folder %1 already exists, setting it up for sync.<br/><br/> La carpeta de sincronización local %1 ya existe, preparandola para la sincronización. <br/><br/> + No remote folder specified! ¡No se especificó la carpeta remota! + OK Ok + Remote folder %1 created successfully. La carpeta remota %1 fue creada exitosamente. + + Remote folder %1 creation failed with error <tt>%2</tt>. La creación de la carpeta remota %1 falló con el error <tt>%2</tt>. + Successfully connected to %1! ¡Conectado exitosamente a %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La solicitud autentificada al servidor fue redirigida a "%1". La URL es incorrecta, el servidor está mal configurado. + + The folder creation resulted in HTTP error code %1 La creación de la carpeta dio como resultado el código de error HTTP %1 + The remote folder %1 already exists. Connecting it for syncing. La carpeta remota %1 ya existe. Conectandola para sincronizar. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> ¡La creación de la carpeta remota falló porque las credenciales proporcionadas están mal!<br/> Por favor regresa y verifica tus credenciales.</p> + There was an invalid response to an authenticated WebDAV request Hubo una respuesta inválida a una solicitud WebDAV autentificada + Timeout while trying to connect to %1 at %2. Expiró el tiempo al tratar de conectarse a %1 en %2. + + Trying to connect to %1 at %2 … Intentando conectar a %1 desde %2 ... + creating folder on Nextcloud: %1 creando carpeta en Nextcloud: %1 + failed. falló. @@ -3554,45 +4311,55 @@ Tenga en cuenta que usar la línea de comandos para el registro anulará esta co OCC::OwncloudWizard + Add %1 account Añadir %1 cuenta + Back Next button text in new account wizard Volver + Cancel Cancelar + Enable experimental feature? ¿Habilitar la característica experimental? + Enable experimental placeholder mode Habilitar el modo experimental de marcadores de posición + Next Next button text in new account wizard + Proxy Settings Proxy Settings button text in new account wizard Configuraciones del Proxy + Skip folders configuration Omitir las carpetas de configuración + Stay safe Manténgase seguro + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3612,10 +4379,12 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PasswordInputDialog + Password for share required Se requiere la contraseña para el recurso compartido + Please enter a password for your share: Por favor, ingrese una contraseña para el recurso compartido: @@ -3623,6 +4392,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PollJob + Invalid JSON reply from the poll URL JSON de respuesta invalido de la URL de encuesta. @@ -3630,166 +4400,210 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. + Cannot modify encrypted item because the selected certificate is not valid. + Cannot sync due to invalid modification time No se puede sincronizar debido a una hora de modificación inválida + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Conflicto de coincidencia de mayúsculas/minúsculas: Se descargó el archivo del servidor y se renombró para evitar el conflicto. + Conflict: Server version downloaded, local copy renamed and not uploaded. Conflicto: Se descargó la versión del servidor, se renombró la copia local y no se cargó. + Could not upload file, because it is open in "%1". No se puede cargar el archivo, porque está abierto en "%1". + Error while deleting file record %1 from the database Error al eliminar el registro de archivo %1 de la base de datos + Error while reading the database Error al leer la base de datos + File has extension reserved for virtual files. El archivo tiene una extensión reservada para archivos virtuales. + File is listed on the ignore list. El archivo está en la lista de ignorados. + File is not accessible on the server. server error + File name contains at least one invalid character El nombre de archivo contiene al menos un caracter inválido + File name is a reserved name on this file system. + File names containing the character "%1" are not supported on this file system. %1: the invalid character + File names ending with a period are not supported on this file system. Los nombres de archivo con punto final no son compatibles en este sistema de archivos. + File/Folder is ignored because it's hidden. El archivo/carpeta es ignorado porque está oculto. + Filename contains leading and trailing spaces. El nombre de archivo contiene espacios al principio y al final. + Filename contains leading spaces. El nombre de archivo contiene espacios al principio. + Filename contains trailing spaces. El nombre de archivo contiene espacios al final. + Filename is too long. El nombre de archivo es demasiado largo. + Folder is not accessible on the server. server error + Folder name contains at least one invalid character + Folder name is a reserved name on this file system. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character + Ignored because of the "choose what to sync" blacklist Ignorado debido a la lista negra de "elegir qué sincronizar" + + Moved to invalid target, restoring Movido a un destino inválido, restaurando + Not allowed because you don't have permission to add files in that folder No permitido porque no tiene permiso para añadir archivos a esa carpeta. + Not allowed because you don't have permission to add subfolders to that folder No permitido porque no tiene permiso para añadir subcarpetas a esa carpeta. + Not allowed to remove, restoring No se permite eliminar, restaurando + Not allowed to upload this file because it is read-only on the server, restoring No está permitido subir este archivo porque es de sólo lectura en el servidor, restaurando. + Reason: the entire filename is forbidden. + Reason: the file has a forbidden extension (.%1). + Reason: the filename contains a forbidden character (%1). + Reason: the filename has a forbidden base name (filename start). + Stat failed. Error de estado. + Symbolic links are not supported in syncing. Los enlaces simbólicos no están soportados en la sincronización. + The filename cannot be encoded on your file system. El nombre de archivo no se puede codificar en su sistema de archivos. + The filename is blacklisted on the server. El nombre de archivo está prohibido en el servidor. + Upload of %1 exceeds %2 of space left in folder %3. + Upload of %1 exceeds %2 of space left in personal files. @@ -3797,26 +4611,38 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateDirectory + Could not delete file %1 from local DB + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File is currently in use El archivo se encuentra en uso + + + + + + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 + + unknown exception @@ -3824,54 +4650,70 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local + Could not get file %1 from local DB + Error updating metadata: %1 Error al actualizar los metadatos: %1 + File %1 cannot be downloaded because encryption information is missing. No se puede descargar el archivo %1 porque falta información del cifrado. + File %1 downloaded but it resulted in a local file name clash! ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! + + File %1 has invalid modified time reported by server. Do not save it. El servidor reportó que el archivo %1 tiene una hora de modificación inválida. No lo guarde. + + File has changed since discovery El archivo ha cambiado desde que fue descubierto + File was deleted from server El archivo fue borrado del servidor + Free space on disk is less than %1 El espacio disponible en disco es menos del 1% + The download would reduce free local disk space below the limit La descarga reduciría el espacio local disponible por debajo del límite + The downloaded file is empty, but the server said it should have been %1. El archivo descargado está vacío, pero el servidor dijo que debería tener %1. + The file %1 is currently in use El archivo %1 se encuentra en uso + The file could not be downloaded completely. El archivo no pudo ser descargado por completo. @@ -3879,10 +4721,12 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateItemJob + ; Restoration Failed: %1 ; La Restauración Falló: %1 + A file or folder was removed from a read only share, but restoring failed: %1 Un archivo o carpeta fue eliminado de un elemento compartido de solo lectura, pero la restauracion falló: %1 @@ -3890,30 +4734,39 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateLocalMkdir + Could not create folder %1 No se pudo crear la carpeta %1 + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Folder %1 cannot be created because of a local file or folder name clash! ¡No se puede crear la carpeta %1 debido a un conflicto de nombre con un archivo o carpeta local! + The file %1 is currently in use El archivo %1 se encuentra en uso + + + The folder %1 cannot be made read-only: %2 La carpeta %1 no se puede hacer de sólo lectura: %2 + could not delete file %1, error: %2 no fue posible borrar el archivo %1, error: %2 + unknown exception @@ -3921,14 +4774,19 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateLocalRemove + Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local + Could not remove %1 because of a local file name clash No fue posible eliminar %1 porque hay un conflicto con el nombre de archivo local + + + Temporary error when removing local item removed from server. @@ -3936,38 +4794,49 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateLocalRename + Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local + + Could not get file %1 from local DB + + Error setting pin state Error al configurar el estado fijado + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Failed to propagate directory rename in hierarchy No se pudo propagar el renombrado del directorio en la jerarquía + Failed to rename file No se pudo renombrar el archivo + File %1 downloaded but it resulted in a local file name clash! ¡El archivo %1 se descargó pero generó un conflicto con un nombre de archivo local! + Folder %1 cannot be renamed because of a local file or folder name clash! La carpeta %1 no puede renombrarse debido a un conflicto de nombres de archivos o carpetas locales. + The file %1 is currently in use El archivo %1 está actualmente en uso @@ -3975,10 +4844,12 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Código de HTTP equivocado regresado por el servidor. Se esperaba 204, pero se recibió "%1 %2". @@ -3986,6 +4857,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". El servidor devolvió un código HTTP erróneo. Se esperaba 204, pero se recibió "%1 %2". @@ -3993,18 +4865,22 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Error al escribir los metadatos en la base de datos: %1 + Failed to encrypt a folder %1 No se pudo cifrar una carpeta %1 + The file %1 is currently in use El archivo %1 está actualmente en uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". @@ -4012,34 +4888,44 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateRemoteMove + Could not delete file record %1 from local DB No se pudo eliminar el registro de archivo %1 de la base de datos local + Could not get file %1 from local DB + Could not rename %1 to %2, error: %3 No se pudo renombrar %1 a %2, error: %3 + Error setting pin state Error al configurar el estado fijado + + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Error writing metadata to the database Error al escribir los metadatos a la base de datos + + The file %1 is currently in use El archivo %1 está actualmente en uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Código equivocado de HTTP regresado por el servidor. Se esperaba 201, pero se recibió "%1 %2". @@ -4047,46 +4933,60 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateUploadFileCommon + Error updating metadata: %1 Error al actualizar los metadatos: %1 + Failed to unlock encrypted folder. No se pudo desbloquear la carpeta cifrada. + Failed to upload encrypted file. No se pudo cargar el archivo cifrado. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists El archivo %1 no puede ser cargado porque existe otro archivo con el mismo nombre, con diferencias en su uso de mayúsculas / minúsculas + + + File %1 has invalid modification time. Do not upload to the server. El archivo %1 tiene una hora de modificación inválida. No se debe cargar en el servidor. + File Removed (start upload) %1 Archivo eliminado (comenzar la carga) %1 + Local file changed during sync. El archivo local cambio durante la sincronización. + Local file changed during syncing. It will be resumed. El archivo local cambió durante la sincronización. Se resumirá. + The file %1 is currently in use El archivo %1 está actualmente en uso + Unable to upload an item with invalid characters No se puede cargar un elemento con caracteres inválidos + + Upload of %1 exceeds the quota for the folder La subida %1 excede el límite de tamaño de la carpeta @@ -4094,32 +4994,39 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateUploadFileNG + File is not accessible on the server. server error + Folder is not accessible on the server. server error + Local file changed during sync. El archivo local cambió durante la sincronización. + Missing File ID from server El ID de archivo no está en el servidor + Poll URL missing Falta la URL de encuesta + The local file was removed during sync. El archivo local se eliminó durante la sincronización. + Unexpected return code from server (%1) Código de retorno del servidor inesperado (%1) @@ -4127,18 +5034,22 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::PropagateUploadFileV1 + Local file changed during sync. El archivo local cambió durante la sincronización + Poll URL missing Falta la URL de encuesta + The local file was removed during sync. El archivo local se eliminó durante la sincronización. + The server did not acknowledge the last chunk. (No e-tag was present) El servidor no confirmó el último pedazo. (No hay una e-tag presente) @@ -4146,22 +5057,27 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ProxyAuthDialog + Password: Contraseña: + Proxy authentication required Se requiere de autenticación del Proxy + Proxy: Proxy: + The proxy server needs a username and password. El servidor de proxy necesita un usuario y contraseña. + Username: Nombre de usuario: @@ -4169,6 +5085,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::SelectiveSyncDialog + Choose What to Sync Elige qué sincronizar @@ -4176,26 +5093,33 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Se presentó un error al cargar la lista de sub carpetas. + Deselect remote folders you do not wish to synchronize. Deselecciona las carpetas remotas que no desees sincronizar. + Loading … Cargando ... + Name Nombre + + No subfolders currently on the server. Actualmente no hay subcarpetas en el servidor. + Size Tamaño @@ -4203,10 +5127,12 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ServerNotificationHandler + Dismiss Descartar + Reply Responder @@ -4214,14 +5140,17 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::sesSnackBar + Error Error + Success Éxito + Warning Advertencia @@ -4229,23 +5158,28 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud Configuración de %1 + Account Cuenta + General General + New account Nueva cuenta + Settings Configuraciones @@ -4253,19 +5187,24 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Resultados de búsqueda global + No results found No se encontraron resultados + + Search globally Búsqueda global @@ -4273,6 +5212,7 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ShareManager + Error Error @@ -4280,38 +5220,47 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::ShareModel + %1 days + 1 day + Could not find local folder for %1 No se pudo encontrar una carpeta local para %1 + Internal link Enlace interno + Link share Compartir enlace + Secure file drop Entrega de archivos segura + Secure file drop link Enlace seguro para entrega de archivos + Share link Compartir enlace + Today Hoy @@ -4319,22 +5268,28 @@ Este es un modo nuevo y experimental. Si decide usarlo, por favor informe cualqu OCC::SocketApi + + Activity Actividad + Context menu share Compartir desde el menú contextual + Copy internal link Copiar enlace interno + Copy private link to clipboard Copiar la liga privada al portapapeles + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4343,18 +5298,22 @@ Server replied with error: %2 El servidor respondió con el error: %2 + Delete Borrar + Delete local changes Borrar cambios locales + Encrypt Cifrar + Expires in %1 minutes remaining time before lock expires @@ -4363,82 +5322,104 @@ El servidor respondió con el error: %2 + Failed to encrypt folder No se pudo cifrar la carpeta + Failed to encrypt folder at "%1" No se pudo cifrar la carpeta en "%1" + Folder encrypted successfully Carpeta cifrada exitosamente + I shared something with you Te compartí algo + Leave this share Dejar este recurso compartido + Lock file Bloquear archivo + Locked by %1 Bloqueado por %1 + Move and rename … Mover y renombrar … + Move and upload … Mover y cargar ... + Move, rename and upload … Mover, renombrar y cargar ... + + Open in browser Abrir en el navegador + Resharing this file is not allowed No se permite volver a compartir este archivo + Resharing this folder is not allowed No se permite volver a compartir esta carpeta + Resolve conflict … Resolver conflicto … + Select new location … Seleccionar nueva ubicación ... + Send private link by email … Enviar enlace privado por correo electrónico ... + + Share options Opciones de uso compartido + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. La cuenta %1 no tiene configurado el cifrado punto a punto. Por favor, configúrelo en su cuenta para habilitar el cifrado de carpetas. + The following folder was encrypted successfully: "%1" La siguiente carpeta fue cifrada correctamente: "%1" + Unlock file Desbloquear archivo @@ -4446,98 +5427,122 @@ El servidor respondió con el error: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (auto-firmado) + <h3>Certificate Details</h3> <h3>Detalles del Certificado</h3> + <h3>Fingerprints</h3> <h3>Huellas</h3> + <h3>Issuer</h3> <h3>Quien emitió</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Nota:</b> Este certificado fue aprobado manualmente</p> + Certificate information: Información del certificado: + Common Name (CN): Nombre Común (CN): + Country: País: + Expires on: Expira el: + Issued on: Reportado en: + Issuer: Quien emitió: + No support for SSL session tickets/identifiers No hay soporte para tickets/identificadores de sesiones SSL + Organization (O): Organización (O): + Organizational Unit (OU): Unidad Organizacional (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Serial: + Server version: %1 Versión del servidor: %1 + State/Province: Estado/Provincia: + Subject Alternative Names: Nombres Alternativos del Asunto: + The connection is not secure La conexión no es segura + This connection is NOT secure as it is not encrypted. Esta conexión NO ES SEGURA, pues no está cifrada. + This connection is encrypted using %1 bit %2. Esta conexión está cifrada con %1 bit %2. @@ -4545,122 +5550,156 @@ El servidor respondió con el error: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;no especificado&gt; + Additional errors: Errores adicionales: + Cannot connect securely to <i>%1</i>: No se puede conectar de forma segura a <i>%1</i>: + + Country: %1 País: %1 + Effective Date: %1 Fecha Efectiva: %1 + Expiration Date: %1 Fecha de Expiración: %1 + Fingerprint (SHA-256): <tt>%1</tt> Huella digital (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Huella digital (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Huekka (SHA1):<tt>%1</tt> + Issuer: %1 Emitido por: %1 + + Organization: %1 Organización: %1 - Trust this certificate anyway - Confiar en este certificado de cualquier modo - - + + Unit: %1 Unidad: %1 + Untrusted Certificate Certificado No de Confianza + with Certificate %1 con Certificado %1 - + + + Trust this certificate anyway + Confiar en este certificado de cualquier modo + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (omitido por un error previo, intentando de nuevo en %2) + Cannot open the sync journal No se puede abrir el diario de sincronización + Could not set file record to local DB: %1 No se pudo establecer el registro del archivo en la base de datos local: %1 + Could not update file metadata: %1 No se pudieron actualizar los metadatos del archivo: %1 + Could not update file: %1 No se pudo actualizar el archivo: %1 + Could not update virtual file metadata: %1 No se pudieron actualizar los metadatos del archivo virtual: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Espacio en disco bajo: Las descargas que podrían reducir el espacio por debajo de %1 se omitieron. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Solo tiene %1 disponible, se necesita de al menos %2 para iniciar + There is insufficient space available on the server for some uploads. No hay espacio disponible en el servidor para algunas cargas. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. No fue posible abrir o crear la base de datos de sincronización local. Asegúrate de que tengas permisos de escritura en la carpeta de sincronización. + Unable to read from the sync journal. No es posible leer desde el diario de sincronización. + Unable to read the blacklist from the local database No fue posible leer la lista negra de la base de datos local + Unresolved conflict. Conflicto no resuelto. + Using virtual files with suffix, but suffix is not set Usando archivos virtuales con sufijo, pero el sufijo no está establecido @@ -4668,58 +5707,76 @@ El servidor respondió con el error: %2 OCC::SyncStatusSummary + %1 of %2 %1 de %2 + %1 of %2 · %3 left %1 de %2 · %3 restantes + + + All synced! ¡Todo está sincronizado! + Checking folder changes Comprobando cambios en la carpeta + + + Offline Sin conexión + See below for errors Ver los errores abajo + See below for warnings Ver las advertencias abajo + Some files could not be synced! ¡Algunos archivos no pudieron sincronizarse! + Some files couldn't be synced! ¡Algunos archivos no pudieron sincronizarse! + Sync paused Sincronización pausada + Syncing Sincronizando + Syncing changes Sincronizando cambios + Syncing file %1 of %2 Sincronizando archivo %1 de %2 + You need to accept the terms of service @@ -4727,43 +5784,55 @@ El servidor respondió con el error: %2 OCC::Systray + Add account Agregar cuenta + Download Descargar + Exit %1 Salir de %1 + Help Ayuda + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. + + Pause sync Pausar sincronización + Pause sync for all Pausar sincronización para todos + + Resume sync Reanudar sincronización + Resume sync for all Reanudar sincronización para todos + Settings Configuraciones @@ -4771,22 +5840,27 @@ El servidor respondió con el error: %2 OCC::TermsOfServiceCheckWidget + Copy Link Copiar enlace + Link copied to clipboard. Enlace copiado al portapapeles. + Open Browser Abrir en el navegador + Polling + Waiting for terms to be accepted @@ -4794,90 +5868,115 @@ El servidor respondió con el error: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Usando el complemento para archivos virtuales: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Esta versión fue suministrada por %1.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0067 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1043 - Help-Link - https://wl.hidrive.com/easy/0118 + + Login_URL + https://storage.ionos.es - Help-Link_STRATO - https://static.hidrive.com/next/1013 + + Login_URL_STRATO + https://storage.ionos.es + LegalNotice-Link https://wl.hidrive.com/easy/0014 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1023 - Login_URL - https://storage.ionos.es - - - Login_URL_STRATO - https://storage.ionos.es - - + MoreInformation-Link https://wl.hidrive.com/easy/0017 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1013 + OpenSource-Link https://wl.hidrive.com/easy/0016 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0015 + Privacy-Link_STRATO https://static.hidrive.com/next/1003 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Usando el complemento para archivos virtuales: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Esta versión fue suministrada por %1.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0118 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1013 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. No se pudieron obtener los proveedores. + Failed to fetch search providers for '%1'. Error: %2 No se pudieron obtener los proveedores de búsqueda para '%1'. Error: %2 + Search has failed for '%1'. Error: %2 La búsqueda falló para '%1'. Error: %2 + Search has failed for '%2'. La búsqueda falló para '%2'. @@ -4885,14 +5984,17 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Fallo al finalizar ítem. + Failed to unlock encrypted folder. Fallo al desbloquear carpeta cifrada. + Failed to update folder metadata. No se pudieron actualizar los metadatos de la carpeta. @@ -4900,33 +6002,43 @@ El servidor respondió con el error: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 No se ha podido añadir o eliminar el usuario %1 para acceder a la carpeta %2 + Could not fetch public key for user %1 No se pudo obtener la llave pública para el usuario %1 + Could not find root encrypted folder for folder %1 No se pudo encontrar la raíz de la carpeta cifrada para la carpeta %1 + + + + + + + + + Error updating metadata for a folder %1 Error al actualizar los metadatos de una carpeta %1 + Failed to unlock a folder. No se pudo desbloquear una carpeta. OCC::User - - %1 notifications - %1 notificaciones - + %n notification(s) @@ -4934,44 +6046,55 @@ El servidor respondió con el error: %2 + End-to-end certificate needs to be migrated to a new one + Open %1 Assistant in browser The placeholder will be the application name. Please keep it + Open %1 Talk in browser The placeholder will be the application name. Please keep it + Public Share Link + Quota Warning - %1 percent or more storage in use + Quota is updated; %1 percent of the total space is used. + Rename file Renombrar archivo + + Resolve conflict Resolver conflicto + Retry all uploads Reintentar todas las subidas + Trigger the migration @@ -4979,26 +6102,32 @@ El servidor respondió con el error: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>¿Realmente desea eliminar la conexión a la cuenta <i>%1</i>?</p><p><b>Nota:</b> Esto <b>no</b> eliminará ningún archivo.</p> + Cancel Cancelar + Confirm Account Removal Confirmar la eliminación de la cuenta + Leave share + Remove account + Remove connection Eliminar conexión @@ -5006,6 +6135,7 @@ El servidor respondió con el error: %2 OCC::UserStatusSelectorModel + %n day(s) @@ -5013,6 +6143,7 @@ El servidor respondió con el error: %2 + %n hour(s) @@ -5020,6 +6151,7 @@ El servidor respondió con el error: %2 + %n minute(s) @@ -5027,54 +6159,70 @@ El servidor respondió con el error: %2 + 1 hour 1 hora + 30 minutes 30 minutos + 4 hours 4 horas + Could not clear status message. Make sure you are connected to the server. No se pudo limpiar el mensaje de estado. Asegúrese de estar conectado al servidor. + Could not fetch predefined statuses. Make sure you are connected to the server. No se pudieron obtener los estados predefinidos. Asegúrese de estar conectado al servidor. + Could not fetch status. Make sure you are connected to the server. No se pudo obtener el estado. Asegúrese de estar conectado al servidor. + Could not set status. Make sure you are connected to the server. No se pudo establecer el estado. Asegúrese de estar conectado al servidor. + + Don't clear No limpiar + Emojis are not supported. Some status functionality may not work. Los emoticonos no están soportados. Algunas funcionalidades de estado pueden no funcionar. + Less than a minute Menos de un minuto + Status feature is not supported. You will not be able to set your status. La característica de estados no está soportada. No podrá establecer su estado. + + This week Esta semana + + Today Hoy @@ -5082,14 +6230,17 @@ El servidor respondió con el error: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. @@ -5097,30 +6248,37 @@ El servidor respondió con el error: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. no se pudo descargar %1. + + Error downloading %1 + Error al descargar %1 + + + > More details > Más detalles + Could not be downloaded + Download error Error al descargar + Error downloading Error al descargar - Error downloading %1 - Error al descargar %1 - - + More details Más detalles @@ -5128,6 +6286,8 @@ El servidor respondió con el error: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida @@ -5135,6 +6295,8 @@ El servidor respondió con el error: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Error al actualizar los metadatos debido a una hora de modificación inválida @@ -5142,10 +6304,12 @@ El servidor respondió con el error: %2 OCC::WebEnginePage + Invalid certificate detected Certificado inválido detectado + The host "%1" provided an invalid certificate. Continue? El anfitrión "%1" proporcionó un certificado inválido. ¿Continuar? @@ -5153,6 +6317,7 @@ El servidor respondió con el error: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Se ha cerrado la sesión de su cuenta %1 en %2. Vuelva a iniciar sesión.</b> @@ -5160,22 +6325,27 @@ El servidor respondió con el error: %2 OCC::WelcomePage - Form - Formulario - - + Host your own server Aloje su propio servidor + Keep your data secure and under your control Mantenga sus datos seguros y bajo control + + Form + Formulario + + + Log in Iniciar sesión + Sign up with provider Registrarse con un proveedor @@ -5183,27 +6353,33 @@ El servidor respondió con el error: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy Proxy HTTP(S) + Hostname of proxy server Nombre del servidor proxy + Password for proxy server Contraseña del servidor proxy + Proxy Settings Dialog window title for proxy settings Configuraciones del Proxy + SOCKS5 proxy Proxy SOCKS5 + Username for proxy server Nombre de usuario del servidor proxy @@ -5211,55 +6387,68 @@ El servidor respondió con el error: %2 OwncloudAdvancedSetupPage + &Local Folder Carpeta &Local + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si esta casilla está marcada, el contenido existente en la carpeta local se borrará para iniciar una sincronización limpia desde el servidor.</p><p>No marque esta casilla si el contenido local debe cargarse en la carpeta de los servidores.</p></body></html>. + Ask before syncing folders larger than Preguntar antes sincronizar carpetas mayores a + Choose different folder Elegir una carpeta diferente + Choose what to sync Elige qué sincronizar + Erase local folder and start a clean sync Borrar la carpeta local y comenzar una sincronización limpia + Keep local data Mantener los datos locales + Local Folder Carpeta local + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Dirección del servidor + Sync Logo Logotipo de sincronización + Synchronize everything from server Sincronizar todo desde el servidor + Username Nombre de usuario @@ -5267,10 +6456,12 @@ El servidor respondió con el error: %2 OwncloudHttpCredsPage + &Password &Contraseña + &Username &Nombre de Usuario @@ -5278,10 +6469,12 @@ El servidor respondió con el error: %2 OwncloudSetupPage + Server address Dirección del servidor + This is the link to your %1 web interface when you open it in the browser. Este es el enlace a su interfaz web de %1 cuando lo abre en el navegador. @@ -5289,145 +6482,170 @@ El servidor respondió con el error: %2 progress + Deleted Borrado + Deleting Eliminando + Downloaded Descargado + Downloading Descargando + + Error Error + Filesystem access error Error de acceso al sistema de archivos + Ignored Ignorado + Ignoring Ignorando + Moved to %1 Se movió a %1 + Moving Moviendo + Replaced by virtual file Reemplazado por un archivo virtual + Server version downloaded, copied changed local file into case conflict conflict file Versión del servidor descargada, archivo local modificado copiado al archivo en conflicto de mayúsculas/minúsculas + Server version downloaded, copied changed local file into conflict file Versión del servidor descargada, se copío el archivo local cambiado a un archivo en conflicto + + Unknown Desconocido + Updated end-to-end encryption metadata + Updated local metadata Actualizando los metadatos locales + Updated local virtual files metadata Actualizados los metadatos de los archivos virtuales locales + Updating end-to-end encryption metadata + Updating local metadata Actualizando los metadatos locales + Updating local virtual files metadata Actualizando los metadatos locales de los archivos virtuales + Uploaded Cargado + Uploading Cargando + Virtual file created Archivo virtual creado - - updating local virtual files metadata - Actualización de los metadatos de los archivos virtuales locales - ProxySettings + Form Formulario + Host Servidor + Manually specify proxy Especificar proxy manualmente + No proxy Sin proxy + Note: proxy settings have no effects for accounts on localhost Nota: la configuración del proxy no tiene efecto para las cuentas en el sistema local + Proxy Settings Configuraciones del Proxy + Proxy server requires authentication El servidor Proxy requiere de autenticación + Use system proxy Usar el sistema de proxy QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5436,6 +6654,7 @@ El servidor respondió con el error: %2 + %nh delay in hours after an activity @@ -5444,6 +6663,7 @@ El servidor respondió con el error: %2 + %nmin delay in minutes after an activity @@ -5452,174 +6672,222 @@ El servidor respondió con el error: %2 + 1min one minute after activity date and time - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + + Some time ago + Hace algún tiempo - Could not create debug archive in selected location! - No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + in the future + en el futuro - Error deleting the file - + + now + ahora + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + + + New folder + Nueva carpeta + + Could not create debug archive in selected location! + No se ha podido crear el archivo de depuración en la ubicación seleccionada. + + + Failed to create debug archive Error al crear el archivo de depuración - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - + + Synced %1 + Sincronizado %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - + + You changed %1 + Cambió %1 - New folder - Nueva carpeta + + You created %1 + Creó %1 - Paths beginning with '#' character are not supported in VFS mode. - Las rutas que empiecen con el caracter '#' no están soportadas en el modo VFS. + + You deleted %1 + Eliminó %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + + You renamed %1 + Renombró %1 + + + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Some time ago - Hace algún tiempo + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Synced %1 - Sincronizado %1 + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - The directory %1 cannot be part of your sync directory. Please choose another folder. - El directorio %1 no puede formar parte de su directorio de sincronización. Por favor, elija otra carpeta. + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + The server does not recognize the request method. Please contact your server administrator for help. + The server does not support the version of the connection being used. Contact your server administrator for help. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + This file type isn’t supported. Please contact your server administrator for assistance. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - You changed %1 - Cambió %1 - - - You created %1 - Creó %1 - - - You deleted %1 - Eliminó %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - You renamed %1 - Renombró %1 + + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. + - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. + + Error deleting the file - in the future - en el futuro + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - now - ahora + + Paths beginning with '#' character are not supported in VFS mode. + Las rutas que empiecen con el caracter '#' no están soportadas en el modo VFS. - + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5628,26 +6896,32 @@ El servidor respondió con el error: %2 + All local versions Todas las versiones locales + All server versions Todas las versiones del servidor + Cancel Cancelar + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Elija si quiere mantener la versión local, la versión del servidor o ambas. Si elige ambas, el archivo local tendrá un número añadido a su nombre. + Resolve conflicts Resolver conflictos + Solve sync conflicts Resolver los conflictos de sincronización @@ -5655,6 +6929,7 @@ El servidor respondió con el error: %2 SesErrorBox + Error Error @@ -5662,14 +6937,17 @@ El servidor respondió con el error: %2 SesTrayHeader + Open Nextcloud in browser Abrir HiDrive Next en el navegador + Open local or team folders + Website Sitio web @@ -5677,10 +6955,12 @@ El servidor respondió con el error: %2 ShareDelegate + Copied! ¡Copiado! + Share options Opciones de uso compartido @@ -5688,66 +6968,78 @@ El servidor respondió con el error: %2 ShareDetailsPage + Add another link Añadir otro enlace + Allow resharing Permitir volver a compartir + + Allow upload and editing Permitir la carga y edición + An error occurred setting the share password. Ocurrió un error al establecer la contraseña del recurso compartido + Copy share link Copiar enlace de recurso compartido + Custom Permissions Permisos personalizados + Enter a note for the recipient - Enter the note to recipient - Introducir la nota al destinatario - - + File drop (upload only) Soltar archivo (sólo carga) + Hide download Ocultar descarga + Note to recipient Nota al destinatario + Password protection + Set expiration date Establecer fecha de caducidad + Share link copied! ¡Enlace compartido copiado! + Unshare Dejar de compartir + View only Sólo lectura @@ -5755,10 +7047,12 @@ El servidor respondió con el error: %2 ShareeSearchField + Search for users or groups… Buscar usuarios o grupos... + Sharing is not available for this folder Compartir no está disponible para esta carpeta @@ -5766,30 +7060,37 @@ El servidor respondió con el error: %2 ShareView + Expires in %1 + Password required for new share Se requiere una contraseña para el nuevo recurso compartido + Share password Contraseña del recurso compartido + Shared with you by %1 + Sharing is disabled Compartir está deshabilitado + Sharing is disabled. Compartir está deshabilitado. + This item cannot be shared. No se puede compartir este elemento. @@ -5797,6 +7098,7 @@ El servidor respondió con el error: %2 SyncJournalDb + Failed to connect database. No se pudo conectar a la base de datos. @@ -5804,14 +7106,17 @@ El servidor respondió con el error: %2 SyncStatus + Open browser + Resolve conflicts Resolver conflictos + Sync now Sincronizar ahora @@ -5819,10 +7124,12 @@ El servidor respondió con el error: %2 TalkReplyTextField + Reply to … Responder a ... + Send reply to chat message Enviar respuesta al mensaje de chat @@ -5830,14 +7137,17 @@ El servidor respondió con el error: %2 TermsOfServiceCheckWidget + Logo Logotipo + Switch to your browser to accept the terms of service + Terms of Service @@ -5845,42 +7155,52 @@ El servidor respondió con el error: %2 theme + Error occurred during setup Ocurrió un error durante la configuración + Error occurred during sync Ocurrió un error durante la sincronización + Preparing to sync Preparando para sincronizar + Stopping sync Deteniendo la sincronización + Sync is paused La sincronización está pausada + Sync is running La Sincronización está en curso + Sync status is unknown Estado de sincronización desconocido + Sync was successful La sincronización fue exitosa + Sync was successful but some files were ignored La sincronización fue exitosa pero algunos archivos fueron ignorados + Waiting to start syncing Esperando para empezar la sincronización @@ -5888,30 +7208,37 @@ El servidor respondió con el error: %2 TrayFoldersMenuButton + Files Archivos + Open %1 in file explorer Abrir %1 en el explorador de archivos + Open local folder Abrir carpeta local + Open local folder "%1" Abrir carpeta local "%1" + Open local or team folders + Open team folder "%1" + User group and local folders menu Menú de carpetas de grupo de usuarios y local @@ -5919,42 +7246,52 @@ El servidor respondió con el error: %2 TrayWindowAccountMenu + Account switcher and settings menu + Add account Añadir cuenta + Current account Cuenta actual + Current account avatar Avatar de la cuenta actual + Current account status is do not disturb El estado actual de la cuenta es no molestar + Current account status is online El estado actual de la cuenta es en línea + Exit Salir + Pause sync for all Pausar sincronización para todos + Resume sync for all Reanudar sincronización para todos + Settings Configuración @@ -5962,14 +7299,17 @@ El servidor respondió con el error: %2 TrayWindowHeader + More apps + Open %1 in browser + Open local or team folders @@ -5977,22 +7317,27 @@ El servidor respondió con el error: %2 TrayWindowHeaderBar + More apps + Open %1 in browser + Open Nextcloud in browser Abrir HiDrive Next en el navegador + Open local or team folders + Website Sitio web @@ -6000,6 +7345,7 @@ El servidor respondió con el error: %2 UnifiedSearchInputContainer + Search files, messages, events … Buscar archivos, mensajes, eventos ... @@ -6007,6 +7353,7 @@ El servidor respondió con el error: %2 UnifiedSearchPlaceholderView + Start typing to search @@ -6014,6 +7361,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Cargar más resultados @@ -6021,6 +7369,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Esqueleto de resultados de búsqueda. @@ -6028,6 +7377,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultListItem + Load more results Cargar más resultados @@ -6035,6 +7385,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultNothingFound + No results for No hay resultados para @@ -6042,6 +7393,7 @@ El servidor respondió con el error: %2 UnifiedSearchResultSectionItem + Search results section %1 Sección de resultados de búsqueda %1 @@ -6049,22 +7401,29 @@ El servidor respondió con el error: %2 UserLine + Account actions Acciones de la cuenta + + Log in Iniciar sesión + + Log out Salir de la sesión + Remove account + Switch to account Cambiar a la cuenta @@ -6072,26 +7431,32 @@ El servidor respondió con el error: %2 UserStatusMessageView + Apply Aplicar + Cancel Cancelar + Clear + Clear status message after + Status message + What is your status? @@ -6099,38 +7464,47 @@ El servidor respondió con el error: %2 UserStatusSetStatusView + Appear offline + Away + Busy + Do not disturb + Invisible + Mute all notifications + Online + Online status + Status message @@ -6138,30 +7512,37 @@ El servidor respondió con el error: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) @@ -6169,6 +7550,7 @@ El servidor respondió con el error: %2 + %n hour(s) @@ -6176,6 +7558,7 @@ El servidor respondió con el error: %2 + %n minute(s) @@ -6183,6 +7566,7 @@ El servidor respondió con el error: %2 + %n month(s) @@ -6190,6 +7574,7 @@ El servidor respondió con el error: %2 + %n second(s) @@ -6197,6 +7582,7 @@ El servidor respondió con el error: %2 + %n year(s) @@ -6207,42 +7593,52 @@ El servidor respondió con el error: %2 utility + Always available locally Disponible localmente siempre + Available online only Disponible sólo en línea + Could not open browser No fue posible abrir el navegador + Could not open email client No fue posible abir el cliente de correo electrónico + Currently available locally Disponible localmente ahora + Free up local space Liberar espacio local + Make always available locally Hacer que esté siempre disponible localmente + Some available online only Algunos sólo disponibles en línea + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Se presentó un error al abir el navegador para ir a la URL %1. ¿Tal vez no hay un navegador por omisión cofigurado? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Se presentó un error al abrir el cliente de correo electrónico para crear un nuevo mensaje. ¿Tal vez no se ha configurado un cliente de correo electrónico por defecto? @@ -6250,14 +7646,17 @@ El servidor respondió con el error: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" El encabezado de suma de comprobación contiene un tipo de comprobación desconocido "%1" + The checksum header is malformed. El encabezado de la suma de comprobación está mal formado. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" El archivo descargado no coincide con la suma de comprobación, se reanudará. "%1" != "%2" diff --git a/translations/client_fr.ts b/translations/client_fr.ts index 67ce129abc684..5ca0925d2aa71 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -1,55 +1,14 @@ - - - - Agree - Accepter - - - Back - Retour - - - Necessary data - Données indispensables - - - Required to ensure that the software can be used as expected - Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu - - - Save Settings - Sauvegarder les paramètres - - - Send anonymous use - Envoyer utilisation anonyme - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. - - ActivityItem + In %1 Dans %1 + Open %1 locally Ouvrir %1 localement @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Rejeter + Open file details Ouvrir les détails du fichier @@ -68,40 +29,40 @@ ActivityList + Activity list Liste des activités + No activities yet Pas encore d'activité + Scroll to top Défiler vers le haut - - BasicComboBox - - Clear status message menu - Menu d'effacement du message de statut - - CallNotificationDialog + Answer Talk call notification Répondre à la notification d'appel de Talk + Decline Décliner + Decline Talk call notification Décliner la notification d'appel de Talk + Talk notification caller avatar Avatar de l'appelant de la notification Talk @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Vérification des modifications dans "%1" + Help Aide + Log out Se déconnecter + + No recently changed files Aucun fichier modifié récemment + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Ouvrir %1 Desktop + Open in browser Ouvrir dans le navigateur + Pause synchronization Suspendre la synchronisation + Quit sync client Quitter le client de synchro + Recently changed Modifié récemment + Settings Paramètres + Sync paused Synchronisation en pause + Syncing Synchronisation en cours + Syncing %1 Synchronisation de %1 + Syncing %1 (%2 left) Synchronisation de %1 (%2 restant) + Syncing %1 of %2 Synchronisation de %1 sur %2 + Syncing %1 of %2 (%3 left) Synchronisation de %1 sur %2 (%3 restant⸱s) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Version locale + Server version Version du serveur @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Sélecteur de compte et menu de paramètres + Add account Ajouter un compte + Add new account Ajouter un nouveau compte + Current account Compte actuel + Current account avatar Avatar du compte actuel + Current account status is do not disturb Le statuts de compte actuel est ne pas déranger + Current account status is online Le statuts de compte actuel est en ligne + Exit Quitter + + Pause sync for all Mettre en pause la synchronisation pour tous + + Resume sync for all Reprendre la synchronisation pour tous + Settings Paramètres @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Ouverture du fichier pour édition locale @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis Pas d'émojis récents @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Découverte des certificats stockés sur votre jeton USB @@ -260,6 +257,7 @@ ErrorBox + Error Erreur @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss Fermer @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 Détails du fichier de %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Copies locales + Reload Recharger + Remove local copies Supprimer les copies locales - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - La synchronisation rapide va uniquement synchroniser les modifications des fichiers et des dossiers dans les dossiers qui ont été explorés. Ceci peut significativement augmenter la réactivité sur la configuration initiale des fichiers virtuelles. Cependant, cela va causer des téléchargements redondants de fichiers déplacés dans un dossier non exploré. - - FileProviderFileDelegate + Delete Supprimer @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Activer les fichiers virtuels + General settings Paramètres généraux + Reset virtual files environment Réinitialiser l'environnement de fichiers virtuels - Signal file provider domain - Indiquer le domaine du fournisseur de fichiers - - + Virtual files settings Paramètres des fichiers virtuels @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 Go sur %2 Go de fichiers distants synchronisés - Evict local copies... - Supprimer les copies locales - - + Free up space … Libérer de l’espace… + Local storage use Utilisation du stockage local @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! Tout est synchronisé ! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Synchroniser les modifications pour l'environnement VFS. macOS peut ignorer ou retarder cette demande. + Request sync Synchroniser + Syncing Synchronisation @@ -373,10 +373,12 @@ macOS may ignore or delay this request. FileSystem + Could not remove folder "%1" Impossible de supprimer le dossier "%1" + Error removing "%1": %2 Erreur lors de la suppression de "%1" : %2 @@ -384,22 +386,28 @@ macOS may ignore or delay this request. Flow2AuthWidget + + An error occurred while connecting. Please try again. Une erreur est survenue pendant la connexion. Veuillez ré-essayer. + Browser Authentication Authentification avec le navigateur Internet + Copy Link Copier le lien + Logo Logo + Switch to your browser to connect your account Basculez sur votre navigateur pour connecter votre compte @@ -407,10 +415,12 @@ macOS may ignore or delay this request. FolderWizardSelectiveSync + Add Folder Sync Ajouter une synchronisation de dossiers + Step 3 of 3: Selektive Synchronisation Étape 3 sur 3 : synchronisation sélective @@ -418,18 +428,22 @@ macOS may ignore or delay this request. FolderWizardSourcePage + &Choose &Choisir + Add Folder Sync Ajouter une synchronisation de dossiers + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Sélectionnez sur votre disque dur un dossier qui doit être en permanence rattaché à votre %1. Tous les fichiers et sous-dossiers sont automatiquement importés et synchronisés. + Step 1 of 3: Select local folder Étape 1 sur 3 : sélectionner un dossier local @@ -437,30 +451,37 @@ macOS may ignore or delay this request. FolderWizardTargetPage + Add Folder Sync Ajouter une synchronisation de dossiers + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Les deux dossiers sont en permanence rattachés et leur contenu respectif est automatiquement synchronisé et importé. + Create folder Créer un dossier + Folders Dossiers + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. À présent, sélectionnez ou créez dans votre %1 un dossier cible dans lequel le contenu doit être importé et synchronisé. + Refresh Rafraîchir + Step 2 of 3: Directory in your %1 Étape 2 sur 3 : répertoire dans votre %1 @@ -468,14 +489,17 @@ macOS may ignore or delay this request. MainWindow + Main content Contenu principal + New activities Nouvelles activités + Unified search results list Liste des résultats de la recherche unifiée @@ -483,6 +507,7 @@ macOS may ignore or delay this request. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Généré à partir de la révision Git <a href="%1">%2</a> du %3, %4 en utilisant Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS may ignore or delay this request. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. + The server enforces strict transport security and does not accept untrusted certificates. Le serveur applique une sécurité de transport stricte et n’accepte pas les certificats non approuvés. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Le serveur a mis trop de temps à répondre. Vérifiez votre connexion et réessayez la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. @@ -505,18 +533,22 @@ macOS may ignore or delay this request. OCC::Account + File %1 is already locked by %2. Le fichier %1 est déjà verrouillé par %2. + Lock operation on %1 failed with error %2 L'opération de verrouillage de %1 a échoué avec l'erreur %2 + Public Share Link Lien de partage public + Unlock operation on %1 failed with error %2 L'opération de déverrouillage de %1 a échoué avec l'erreur %2 @@ -524,30 +556,30 @@ macOS may ignore or delay this request. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 comptes ont été détectés à partir d'un ancien client de bureau. -Doivent-ils être importés ? - - + An account was detected from a legacy desktop client. Should the account be imported? Un compte a été détecté à partir d’un ancien client de synchronisation bureau. Le compte doit-il être importé ? + Could not import accounts from legacy client configuration. Impossible d'importer des comptes à partir de l'ancienne configuration client. + Import Importer + + Legacy import Importation de l'héritage + Skip Ignorer @@ -555,311 +587,334 @@ Le compte doit-il être importé ? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) utilisés sur %2. Certains dossiers, montés depuis le réseau ou partagés, peuvent avoir des limites différentes. + %1 as %2 %1 avec le compte %2 + %1 in use %1 utilisé(s) + %1 of %2 in use %1 utilisés sur %2 + (experimental) (expérimental) + <p>Could not create local folder <i>%1</i>.</p> <p>Impossible de créer le dossier local <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Voulez-vous vraiment arrêter de synchroniser le dossier <i>%1</i> ?</p><p><b>Note :</b> Aucun fichier ne sera supprimé.</p> - Apply - Appliquer - - - Apply manual changes - Appliquer les changements manuels - - + + Availability Disponibilités - Cancel - Annuler - - + Choose what to sync Sélectionner le contenu à synchroniser + Confirm Folder Sync Connection Removal Confirmer le retrait de la synchronisation de dossier + Connected to %1. Connecté au serveur %1. - Connected with <server> as <user> - Connecté au serveur <server> avec le compte <user> - - + Connecting to %1 … Connexion à %1 ... - Connection settings - Paramètres de connexion - - + Could not encrypt folder because the folder does not exist anymore Impossible de chiffrer le dossier car il n'existe plus + + Create new folder Créer un nouveau dossier + Currently there is no storage usage information available. Actuellement aucune information d'utilisation de stockage n'est disponible. + Disable support Désactiver le support + Disable virtual file support … Désactiver la prise en charge du fichier virtuel… + Disable virtual file support? Désactiver le support des fichiers virtuels ? + Display mnemonic Afficher la phrase secrète + + Do not encrypt folder Ne pas chiffrer le dossier + Do you want to forget the end-to-end encryption settings for %1 on this device? Voulez-vous oublier les paramètres de chiffrement de bout en bout pour %1 sur cet appareil ? + + Edit Ignored Files Modifier les fichiers exclus + Enable virtual file support %1 … Activer la prise en charge du fichier virtuel %1 … + Encrypt Chiffrer + + Encrypt folder Chiffrer le dossier + Encryption failed Le chiffrement a échoué + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. Le chiffrement est configuré. Souvenez-vous de <b>Chiffrer</b> un dossier pour chiffrer de bout en bout chaque nouveau fichier qui lui sera ajouté. + End-to-end Encryption Chiffrement de bout en bout + End-to-end Encryption with Virtual Files Chiffrement de bout en bout avec fichiers virtuels + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. Le chiffrement de bout en bout a été activé sur ce compte avec un autre appareil.<br>Entrez votre phrase secrète pour synchroniser les dossiers chiffrés sur cet appareil. + End-to-end encryption has not been initialized on this account. Le chiffrement de bout en bout n'a pas été initialisé sur ce compte. + End-to-end encryption mnemonic Phrase secrète du chiffrement de bout en bout - Expand Memory - Augmenter la mémoire - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0077 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1042 - - + Folder creation failed Échec de la création du dossier + Force sync now Forcer la synchronisation maintenant + Forget encryption setup Oublier la configuration du chiffrement + Forget the end-to-end encryption on this device Oublier le chiffrement de bout en bout sur cet appareil + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Oublier le chiffrement de bout en bout supprimera les données sensibles et tous les fichiers chiffrés sur cet appareil. <br> Cependant, les fichiers chiffrés resteront sur le serveur et sur vos autres appareils, si le chiffrement est configuré. + Migrate certificate to a new one Migrer le certificat vers une nouvelle clé + No %1 connection configured. Aucune connexion à %1 configurée + No account configured. Aucun compte configuré. + + Open folder Ouvrir le dossier + Pause sync Mettre en pause la synchronisation + Please wait for the folder to sync before trying to encrypt it. Merci d'attendre que le dossier soit synchronisé avant d'essayer de le chiffrer. + Remove Folder Sync Connection Retirer la synchronisation de ce dossier + Remove folder sync connection Retirer la connexion de synchronisation de dossier + Restart sync Redémarrer la synchronisation + Resume sync Reprendre la synchronisation + Server %1 is currently being redirected, or your connection is behind a captive portal. Le serveur %1 est actuellement redirigé ou votre connexion est derrière un portail captif. + Server %1 is currently in maintenance mode. Le serveur %1 est en cours de maintenance. + Server %1 is temporarily unavailable. Le serveur %1 est temporairement indisponible. + Server configuration error: %1 at %2. Erreur de configuration serveur : %1 à %2. + Set up encryption Configurer le chiffrement + Signed out from %1. Session sur %1 fermée. - Standard file sync - Synchronisation standard des fichiers - - + Storage space %1% occupied Espace de stockage %1% occupé - Storage space: … - Espace de stockage : ... - - + Sync Running Synchronisation en cours - Synchronize all - Tout synchroniser - - - Synchronize none - Ne rien synchroniser - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully Le dossier a un défaut de synchronisation mineur. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully Le dossier a une erreur de synchronisation. Le chiffrement de ce dossier sera possible quand la synchronisation aura réussi. + The server version %1 is unsupported! Proceed at your own risk. La version %1 du serveur n'est pas maintenue ! Vous prenez vos propres risques. + The syncing operation is running.<br/>Do you want to terminate it? La synchronisation est en cours.<br/>Voulez-vous l'arrêter ? + There are folders that have grown in size beyond %1MB: %2 Il y a des dossiers qui ont augmenté de taille au-delà de %1 Mo : %2 + There are folders that were not synchronized because they are external storages: Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe : + There are folders that were not synchronized because they are too big or external storages: Certains dossiers n'ont pas été synchronisés parce qu'ils sont localisés sur un stockage externe ou qu'ils sont de taille trop importante : + There are folders that were not synchronized because they are too big: Certains dossiers n'ont pas été synchronisés parce qu'ils sont de taille trop importante : + This account supports end-to-end encryption, but it needs to be set up first. Ce compte supporte le chiffrement de bout en bout, mais il est d'abord nécessaire de le configurer. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -870,65 +925,127 @@ Le seul avantage de désactiver la prise en charge du fichier virtuel est que le Cette action entraînera l'interruption de toute synchronisation en cours. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Cette opération cryptera votre dossier et tous les fichiers qu'il contient. Ces fichiers ne seront plus accessibles sans votre clé mnémonique de cryptage. <b>Ce processus n'est pas réversible. Êtes-vous sûr de vouloir continuer ? + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour configurer la synchronisation de dossiers chiffrés sur vos autres appareils. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - Pour protéger votre identité cryptographique, nous la chiffrons avec une phrase secrète de 12 mots du dictionnaire. Veuillez la noter et la garder en sécurité. Elle sera nécessaire pour ajouter d’autres appareils à votre compte (comme votre smartphone ou votre ordinateur portable). - - + Unable to connect to %1. Impossible de se connecter à %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Les dossiers décochés seront <b>supprimés</b> de votre disque local et ne seront plus synchronisés avec cet ordinateur. - - - Virtual file sync - Synchronisation de fichiers virtuels - - + Warning Attention + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. Vous ne pouvez pas chiffrer un dossier avec son contenu, veuillez enlever les fichiers. Attendez une nouvelle synchronisation puis chiffrez le dossier. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? Vous ne pouvez pas chiffrer ce dossier puisque le chiffrement n'est pas encore configuré sur cet appareil. Voulez-vous le faire maintenant ? + You need to accept the terms of service at %1. Vous devez accepter les conditions d'utilisation ici %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Il semble que la fonctionnalité des Fichiers Virtuels soit activée sur ce dossier. Pour l'instant, il n'est pas possible de télécharger implicitement des fichiers virtuels qui sont chiffrés de bout en bout. Pour bénéficier d'une expérience optimale avec les fichiers virtuels et le chiffrement de bout en bout, assurez-vous que le dossier chiffré soit marqué par l'option "Toujours rendre disponible localement". - + + + Apply + Appliquer + + + + Apply manual changes + Appliquer les changements manuels + + + + + + Cancel + Annuler + + + + Connected with <server> as <user> + Connecté au serveur <server> avec le compte <user> + + + + Connection settings + Paramètres de connexion + + + + Expand Memory + Augmenter la mémoire + + + + Standard file sync + Synchronisation standard des fichiers + + + + + Storage space: … + Espace de stockage : ... + + + + Synchronize all + Tout synchroniser + + + + Synchronize none + Ne rien synchroniser + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Les dossiers décochés seront <b>supprimés</b> de votre disque local et ne seront plus synchronisés avec cet ordinateur. + + + + Virtual file sync + Synchronisation de fichiers virtuels + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accès refusé par le serveur. Pour vérifier que vous disposez d'un accès approprié, <a href="%1">cliquez ici</a> pour accéder au service avec votre navigateur Web. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La requête authentifiée au serveur a été redirigée vers « %1 ». L'URL est mauvaise, le serveur est mal configuré. + There was an invalid response to an authenticated WebDAV request Réponse invalide reçue suite à une requête WebDav authentifiée. @@ -936,46 +1053,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials informations d'identification demandées + Configuration error Erreur de configuration + Connected Connecté + Disconnected Déconnecté + Maintenance mode mode maintenance + Need the user to accept the terms of service Besoin que l'utilisateur accepte les conditions générales d'utilisation + Network error Erreur réseau + Redirect detected Redirection détectée + Service unavailable Service indisponible + Signed out Session fermée + Unknown account state État du compte inconnu @@ -983,14 +1111,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … Récupération des activités... + For more activities please open the Activity app. Pour plus d'activités veuillez lancer l'application Activité. + Network error occurred: client will retry syncing. Une erreur de réseau est survenue : le client va réessayer la synchronisation. @@ -998,34 +1129,42 @@ Would you like to do this now? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Fichiers de certificats (*.p12 *.pfx) + + + + Select a certificate + Sélectionner un certificat + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Un paquet pkcs12 chiffré est vivement recommandé vu qu'une copie sera stockée dans le fichier de configuration. + Browse … Parcourir … + Certificate & Key (pkcs12): Certificat & clé (pkcs12) : - Certificate files (*.p12 *.pfx) - Fichiers de certificats (*.p12 *.pfx) - - + Certificate password: Mot de passe du certificat : + SSL client certificate authentication Authentification par certificat SSL client - Select a certificate - Sélectionner un certificat - - + This server probably requires a SSL client certificate. Ce serveur requiert probablement un certificat SSL client. @@ -1033,32 +1172,39 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported %1 comptes + %1 folders number of folders imported %1 dossiers + 1 account 1 compte + 1 folder 1 dossier + Continue Continuer + Error accessing the configuration file Erreur lors de l'accès au fichier de configuration + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1066,35 +1212,43 @@ Would you like to do this now? %3 + Legacy import Importation héritée + Quit Quitter + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Des paramètres ont été configurés dans des versions %1 de ce client et utilisent des fonctionnalités non disponibles dans la version actuelle. <br><br>Continuer impliquera que <b>ces paramètres seront %2</b>.<br><br> Le fichier de configuration actuel a été sauvegardé dans <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Une erreur est survenue lors de l'accès au fichier de configuration à %1. Merci de vérifier que le fichier est accessible du compte système. + deleting supprimés + ignoring ignorés + newer newer software version ultérieures + older older software version antérieures @@ -1103,18 +1257,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: &Password: + &Username: &Username: + Authentication Required Authentification requise + Enter username and password for "%1" at %2. Saisir le nom d’utilisateur et le mot de passe pour « %1 » sur %2. @@ -1122,10 +1280,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". « %1 Impossible de déverrouiller le dossier chiffré %2 ». + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur retournée est « %1 %2 ». @@ -1133,18 +1293,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + File %1 can not be downloaded because of a local file name clash! Le fichier %1 ne peut pas être téléchargé en raison d'un conflit de nom de fichier local ! + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossible de mettre à jour les métadonnées du nouveau fichier %1. @@ -1153,50 +1317,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 Erreur à la mise à jour des méta-données : %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Le fichier %1 ne peut être téléversé parce qu'un autre fichier avec le même nom hormis la casse existe + File %1 has invalid modification time. Do not upload to the server. Le fichier %1 présente une heure de modification invalide. Téléversement vers le serveur impossible. + File %1 has invalid modified time. Do not upload to the server. Le fichier %1 présente une heure de modification invalide. Téléversement vers le serveur impossible. + File Removed (start upload) %1 Fichier retiré (début du téléversement) %1 + File contains leading or trailing spaces and couldn't be renamed Le fichier contient des espaces en début ou en fin de fichier et n'a pas pu être renommé + + Local file changed during sync. Fichier local modifié pendant la synchronisation. + Local file changed during syncing. It will be resumed. Fichier local modifié pendant la synchronisation. La synchronisation sera reprise. + Network error: %1 Erreur réseau : %1 + Restoration failed: %1 Échec de la restauration : %1 + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + The local file was removed during sync. Le fichier local a été supprimé pendant la synchronisation. @@ -1204,30 +1381,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Impossible de renommer le fichier parce qu'un fichier portant le même nom existe déjà sur le serveur. Veuillez choisir un autre nom. + Could not rename file. Please make sure you are connected to the server. Impossible de renommer le fichier. Assurez-vous de bien être connecté au serveur. + Failed to fetch permissions with error %1 Échec de récupération de permissions avec l'erreur %1 + Filename contains leading and trailing spaces. Le nom de fichier contient des espaces de début et de fin. + Filename contains leading spaces. Le nom de fichier contient des espaces de début. + Filename contains trailing spaces. Le nom de fichier contient des espaces de fin. + You don't have the permission to rename this file. Please ask the author of the file to rename it. Vous n'avez pas les permissions de renommer ce fichier. Veuillez demander à son auteur de le renommer. @@ -1235,86 +1419,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 ne supporte pas les noms de fichiers identiques avec seulement des différences de casse de caractère. + + Filename contains illegal characters: %1 + Le nom du fichier contient des caractères illégaux : %1 + + + + Filename contains leading and trailing spaces. + Le nom de fichier contient des espaces de début et de fin. + + + + Filename contains leading spaces. + Le nom de fichier contient des espaces de début. + + + + Filename contains trailing spaces. + Le nom de fichier contient des espaces de fin. + + + + Rename file + Renomer le fichier + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + Le fichier "%1" n'a pas pu être synchronisé à cause d'un conflit de casse avec un fichier existant dans ce système. + + + + Use invalid name + Nom invalide + + + + 0 byte 0 octets + Case Clash Conflict Conflit de casse + Case clashing file Fichier avec conflit de casse + Error Erreur + Existing file Dossier existant - Filename contains illegal characters: %1 - Le nom du fichier contient des caractères illégaux : %1 - - - Filename contains leading and trailing spaces. - Le nom de fichier contient des espaces de début et de fin. - - - Filename contains leading spaces. - Le nom de fichier contient des espaces de début. - - - Filename contains trailing spaces. - Le nom de fichier contient des espaces de fin. - - + New filename Nouveau nom de fichier + + Open clashing file Ouvrir le fichier conflictuel + + Open existing file Ouvrir un fichier existant + Please enter a new name for the clashing file: Veuillez saisir un nouveau nom pour le fichier conflictuel : - Rename file - Renomer le fichier - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - Le fichier "%1" n'a pas pu être synchronisé à cause d'un conflit de casse avec un fichier existant dans ce système. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. Le fichier n'a pas pu être synchronisé car il génère un conflit de cas avec un fichier existant sur ce système. - Use invalid name - Nom invalide - - + file A fichier A + file B fichier B + + today aujourd'hui @@ -1322,6 +1531,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database Erreur à l'écriture des métadonnées dans la base de données @@ -1329,27 +1539,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: Entrez le PIN du jeton USB de certificat: + Enter E2E passphrase Entrez la phrase secrète E2E + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Saisir le code PIN + Invalid PIN. Login failed PIN invalide. Connexion échouée + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! La connexion au token a échoué après la saisie du code PIN. Il est peut-être invalide ou erroné. Veuillez réessayer ! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Veuillez entrer votre phrase de passe de chiffrement de bout en bout :<br><br>Nom d'utilisateur : %2<br>Compte : %3<br> @@ -1357,66 +1573,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte - 0 octet - - - <a href="%1">Open local version</a> - <a href="%1">Ouvrir la version locale</a> - - - <a href="%1">Open server version</a> - <a href="%1">Ouvrir la version serveur</a> - - - Click to open the file - Cliquez pour ouvrir le fichier - - - Conflicting versions of %1. - Versions en conflit de %1. - - + Keep both versions Conserver les deux versions + Keep local version Conserver la version locale + + Keep selected version Conserver la version sélectionnée + Keep server version Conserver la version serveur - Local version - Version locale - - + Open local version Ouvrir la version locale + Open server version Ouvrir la version serveur + + + 0 byte + 0 octet + + + + <a href="%1">Open local version</a> + <a href="%1">Ouvrir la version locale</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Ouvrir la version serveur</a> + + + + + Click to open the file + Cliquez pour ouvrir le fichier + + + + + Conflicting versions of %1. + Versions en conflit de %1. + + + + Local version + Version locale + + + Server version Version du serveur + Sync Conflict Conflit de synchronisation + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Quelle version du fichier souhaitez-vous garder ?<br/>Si vous sélectionnez les deux versions, le fichier local aura un numéro ajouté à son nom. + + today aujourd'hui @@ -1424,22 +1661,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion Confirmer la suppression + Do you want to delete the directory <i>%1</i> and all its contents permanently? Voulez-vous supprimer le dossier <i>%1</i> et tout son contenu définitivement ? + Do you want to delete the file <i>%1</i> permanently? Voulez-vous supprimer le fichier <i>%1</i> définitivement ? + + Error Erreur + + Moving file failed: %1 @@ -1451,27 +1695,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Erreur d'authentification : nom d’utilisateur et/ou mot de passe incorrect(s). + No %1 account configured The placeholder will be the application name. Please keep it Aucun compte %1 n'est configuré + Please update to the latest server and restart the client. Veuillez mettre à jour le serveur vers la dernière version et redémarrer le client. + The configured server for this client is too old Le serveur configuré pour ce client est trop vieux + The provided credentials are not correct Les informations d'identification fournies ne sont pas correctes + Timeout Délai d'attente @@ -1479,68 +1729,83 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. + + + Agree Accepter + Form Formulaire + Settings Paramètres - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://wl.hidrive.com/easy/0025'>politique de confidentialité</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Cette application utilise des technologies de suivi. En cliquant sur Accepter, vous acceptez le traitement de vos données anonymes. Vous pouvez modifier vos choix à tout moment via les paramètres. <br/> <br/>Des informations sur le traitement des données et autres peuvent être trouvées dans notre <a href='https://static.hidrive.com/next/1002'>politique de confidentialité</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. + + + Back Retour + Form Formulaire + Necessary data Données indispensables + Required to ensure that the software can be used as expected Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu + Save Settings Sauvegarder les paramètres + Send anonymous use Envoyer utilisation anonyme + This helps us to optimize the software and to better identify system crashes and unexpected errors. Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Nous collectons des données anonymes pour optimiser notre application. Nous utilisons à cet effet des solutions logicielles de différents partenaires. Nous souhaitons vous offrir une transparence totale et une liberté de choix en ce qui concerne la collecte et le traitement de votre utilisation anonyme. Vous pouvez modifier vos paramètres à tout moment dans le menu Protection des données. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Erreur lors de l'annulation de la suppression de %1 + Error while canceling deletion of a file Erreur lors de l'annulation de la suppression d'un fichier @@ -1548,18 +1813,23 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Erreur de configuration des métadonnées chiffrées ! + Encrypted metadata setup error: initial signature from server is empty. Erreur de configuration des métadonnées cryptées : la signature initiale du serveur est vide. + Server error: PROPFIND reply is not XML formatted! Erreur du serveur : La réponse PROPFIND n'est pas au format XML ! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Le serveur a renvoyé une réponse inattendue et illisible. Veuillez contacter l'administrateur de votre serveur. @@ -1567,22 +1837,27 @@ Would you like to do this now? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Dossier non accessible au client, permission refusée + Directory not found: %1 Dossier non trouvé : %1 + Error while opening directory %1 Erreur à l’ouverture du dossier %1 + Error while reading directory %1 Erreur de lecture du dossier %1 + Filename encoding is not valid L’encodage du nom de fichier n’est pas valide @@ -1590,62 +1865,93 @@ Would you like to do this now? OCC::EditLocallyJob + + + An error occurred during data retrieval. Une erreur est survenue pendant le rapatriement des données. + + An error occurred during setup. Une erreur est survenue pendant l'installation + + An error occurred trying to synchronise the file to edit locally. Une erreur est survenue lors de la synchronisation du fichier à éditer localement. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Impossible de trouver le fichier pour l'édition locale. Assurez-vous qu'il n'est pas exclus par un filtre de synchronisation. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossible de trouver le fichier pour l'édition locale. Assurez-vous que le chemin est valide et qu'il est synchronisé localement. + Could not find a remote file info for local editing. Make sure its path is valid. Impossible de trouver une info fichier distante pour l'édition locale. Assurez-vous que son chemin est valide. + Could not open %1 Impossible d'ouvrir %1 + + + + + + + + Could not start editing locally. Impossible de démarrer l'édition localement. + File %1 already locked. Fichier %1 déjà verrouillé. + File %1 could not be locked. Impossible de verrouiller le fichier %1. + File %1 now locked. Fichier %1 désormais verrouillé. + Invalid local file path. Chemin d'accès au fichier local non valide. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Le verrouillage durera %1 minutes. Vous pouvez également déverrouiller ce fichier manuellement une fois que vous avez terminé l'édition. + Please try again. Merci de réessayer. + Server error: PROPFIND reply is not XML formatted! Erreur de serveur : La réponse de PROPFIND n'est pas formatée en XML ! @@ -1653,10 +1959,12 @@ Would you like to do this now? OCC::EditLocallyManager + Could not validate the request to open a file from server. Impossible de valider la requête pour ouvrir un fichier du serveur. + Please try again. Merci de réessayer. @@ -1664,26 +1972,34 @@ Would you like to do this now? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Une erreur est survenue, tentative de vérification de la requête pour éditer localement. + Could not find an account for local editing. Impossible de trouver un compte pour l'édition locale. + Could not start editing locally. Impossible de démarrer l'édition locale. + Invalid file path was provided. Un chemin d'accès au fichier invalide a été fourni. + Invalid token received. Le jeton reçu est invalide. + + + Please try again. Merci de réessayer. @@ -1691,22 +2007,34 @@ Would you like to do this now? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Erreur dans la récupération de l’ID du dossier chiffré. + + + + + + Error fetching metadata. Erreur à la récupération des méta-données. + + + Error locking folder. Erreur de verrouillage du dossier. + Error parsing or decrypting metadata. Erreur lors du parsing ou du déchiffrement des métadonnées. + Failed to upload metadata Échec du téléversement des métadonnées @@ -1714,6 +2042,7 @@ Would you like to do this now? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Impossible de générer les métadonnées pour le chiffrement, déverrouillage du dossier. @@ -1723,6 +2052,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1731,6 +2061,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 hour(s) ago hours elapsed since file last modified @@ -1739,6 +2070,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 minute(s) ago minutes elapsed since file last modified @@ -1747,6 +2079,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 month(s) ago months elapsed since file last modified @@ -1755,6 +2088,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 second(s) ago seconds elapsed since file last modified @@ -1763,6 +2097,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 year(s) ago years elapsed since file last modified @@ -1771,6 +2106,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1782,22 +2118,28 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. L'URL renvoyée par le serveur ne commence pas par HTTPS alors que l'URL de connexion commence par HTTPS. La connexion ne sera pas possible car cela pourrait être un problème de sécurité. Veuillez contacter votre administrateur. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. @@ -1805,38 +2147,48 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. OCC::Flow2AuthWidget + Copy Link Copier le lien + + Error Erreur + Link copied to clipboard. Lien copié dans le presse-papier + Open Browser Ouvrir le navigateur + Polling for authorization En attente de l'autorisation + Starting authorization Démarrage de l'autorisation + Switch to your browser to connect your account Basculez sur votre navigateur pour connecter votre compte + Unable to open the Browser, please copy the link to your Browser. Impossible d'ouvrir le navigateur, veuillez copier le lien dans votre navigateur Web. + Waiting for authorization En attente de l'autorisation @@ -1844,6 +2196,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. OCC::Folder + %1 and %n other file(s) are currently locked. %1 et %n autre fichier sont verrouillés. @@ -1851,6 +2204,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 ne peut pas être synchronisé en raison d'erreurs. Consultez les logs pour les détails. @@ -1858,6 +2212,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 and %n other file(s) have been added. %1 et %n autre fichier ont été ajoutés. @@ -1865,6 +2220,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 and %n other file(s) have been removed. %1 a été supprimé. @@ -1872,6 +2228,7 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 and %n other file(s) have been updated. %1 a été mis à jour. @@ -1879,14 +2236,17 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 could not be synced due to an error. See the log for details. %1 n'a pu être synchronisé pour cause d'erreur. Consultez les logs pour les détails. + %1 has a sync conflict. Please check the conflict file! %1 a un problème de synchronisation. Merci de vérifier le fichier conflit ! + %1 has and %n other file(s) have sync conflicts. %1 a un conflit de synchronisation. @@ -1894,11 +2254,13 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 has been added. %1 names a file. %1 a été ajouté. + %1 has been moved to %2 and %n other file(s) have been moved. %1 a été déplacé vers %2. @@ -1906,15 +2268,18 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 has been moved to %2. %1 a été déplacé vers %2. + %1 has been removed. %1 names a file. %1 a été supprimé. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 a été renommé en %2. @@ -1922,30 +2287,36 @@ Cela peut être un problème avec vos bibliothèques OpenSSL. + %1 has been renamed to %2. %1 and %2 name files. %1 a été renommé en %2. + %1 has been updated. %1 names a file. %1 a été mis à jour. + %1 is currently locked. %1 est actuellement verrouillé. + A folder from an external storage has been added. Un nouveau dossier localisé sur un stockage externe a été ajouté. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Un dossier a dépassé la taille limite fixée de %1 Mo : %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1954,6 +2325,7 @@ Veuillez confirmer si vous souhaitez procéder à ces suppressions. Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le dossier '%1' vers le serveur. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1962,10 +2334,12 @@ Veuillez confirmer si vous souhaitez procéder à ces suppressions. Vous pouvez également restaurer tous les fichiers supprimés en les téléchargeant depuis le serveur. + A new folder larger than %1 MB has been added: %2. Un nouveau dossier de taille supérieure à %1 Mo a été ajouté : %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1978,70 +2352,87 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les %1 + Could not read system exclude file Impossible de lire le fichier d'exclusion du système + Keep syncing Continuer la synchronisation + Please choose a different location. %1 isn't a readable folder. Veuillez choisir un emplacement différent. %1 n'est pas un dossier lisible. + Please choose a different location. %1 isn't a valid folder. Veuillez choisir un emplacement différent. %1 n'est pas un dossier valide. + Please choose a different location. The folder %1 doesn't exist. Veuillez choisir un emplacement différent. Le dossier %1 n'existe pas. + Please go in the settings to select it if you wish to download it. Merci d'aller dans les Paramètres pour indiquer si vous souhaitez le télécharger. + Proceed with Deletion Procéder à la suppression + Remove all files? Supprimer tous les fichiers ? + Restore Files from Server Restaurer des fichiers à partir du serveur + Restore Files to Server Restaurer les fichiers sur le serveur + Stop syncing Arrêter la synchronisation + Sync Activity Activité de synchronisation + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Le fichier %1 a été créé mais il était exclu de la synchronisation auparavant. Il ne sera pas synchronisé. + The folder %1 has surpassed the set folder size limit of %2MB. Le dossier %1 a dépassé la taille limite fixée de %2 Mo. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. Le dossier %1 a été créé mais il était exclu de la synchronisation auparavant. Les données qu'il contient ne seront pas synchronisées. + Virtual file download failed with code "%1", status "%2" and error message "%3" Le téléchargement du fichier virtuel a échoué avec le code "%1", statut "%2" et le message d'erreur "%3" + Would you like to stop syncing this folder? Voulez vous arrêter la synchronisation de ce dossier ? @@ -2049,26 +2440,32 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les OCC::FolderCreationDialog + %1 Create new folder %1 Créer un nouveau dossier + Could not create a folder! Check your write permissions. Impossible de créer le dossier ! Veuillez vérifier vos permissions d’écriture. + + Error + Erreur + + + Create new folder Créer un nouveau dossier + Enter folder name Saisissez le nom du dossier - Error - Erreur - - + Folder already exists Le dossier existe déjà @@ -2076,108 +2473,136 @@ Cela signifie que le client de bureau ne va pas téléverser immédiatement les OCC::FolderMan + %1 (Sync is paused) %1 (Synchronisation en pause) + (backup %1) (sauvegarde %1) + (backup) (sauvegarde) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Un ancien fichier journal "%1" a été trouvé, mais ne peut être supprimé. Veuillez vous assurer qu’aucune application ne l'utilise en ce moment. + Could not reset folder state Impossible de réinitialiser l'état du dossier + Last sync was successful. Synchronisation terminée avec succès + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation pour %2. + + Please choose a different location. %1 is already being used as a sync folder. Veuillez choisir un emplacement différent. %1 est déjà utilisé comme dossier de synchronisation. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Veuillez choisir un emplacement différent. %1 est déjà contenu dans un dossier utilisé comme dossier de synchronisation. + Please choose a different location. The path %1 doesn't exist. Veuillez choisir un emplacement différent. Le chemin %1 n'existe pas. + Please choose a different location. The path %1 isn't a folder. Veuillez choisir un emplacement différent. Le chemin %1 n'est pas un dossier. + Please choose a different location. The selected folder isn't valid. Veuillez choisir un emplacement différent. Le dossier sélectionné n'est pas valide. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Veuillez choisir un emplacement différent. Vous ne disposez pas d'autorisations suffisantes pour écrire dans %1. + Preparing for sync. Préparation de la synchronisation. + Setup error. Erreur de paramétrage. + Sync finished with unresolved conflicts. Synchronisation terminée avec des conflits non résolus. + Sync is paused. La synchronisation est en pause. + Sync is running. Synchronisation en cours + Sync request was cancelled. La requête de synchronisation a été annulée. + Syncing %1 Synchronisation de %1 + Syncing %1 (%2 left) Synchronisation de %1 (%2 restant⸱s) + Syncing %1 (A few seconds left) Synchronisation de %1 (il reste quelques secondes) + Syncing %1 of %2 Synchronisation de %1 sur %2 + Syncing %1 of %2 (%3 left) Synchronisation de %1 sur %2 (%3 restant⸱s) + Syncing %1 of %2 (A few seconds left) Synchronisation de %1 sur %2 (il reste quelques secondes) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2188,10 +2613,12 @@ Pour résoudre ce problème: veuillez enlever %1 d'un des comptes et créer Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichiers de bases de données de synchronisation dans un seul dossier. Veuillez vérifier si %1 contient des fichiers .sync_*.db périmés ou inutilisés et supprimez-les. + Undefined state. Statut indéfini. + Waiting to start syncing. En attente de synchronisation. @@ -2199,14 +2626,17 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderStatusDelegate + Add Folder Sync Ajouter une synchronisation de dossiers + File Fichier + Synchronize any other local folder with your %1 Synchronisez n’importe quel autre dossier local avec votre %1 @@ -2214,113 +2644,141 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 sur %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 sur %2, fichier %3 sur %4 + %5 left, %1 of %2, file %3 of %4 %5 restantes, %1 sur %2, fichier %3 sur %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Quelques secondes restantes, %1 de %2, fichier %3 parmi %4 + About to start syncing Sur le point de démarrer la synchronisation + Checking for changes in local "%1" Vérification des modifications dans "%1" local + Checking for changes in remote "%1" Vérification des modifications dans "%1" distant + Click this button to add a folder to synchronize. Cliquez sur ce bouton pour ajouter un dossier à synchroniser. + Could not decrypt! Déchiffrage impossible ! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Télécharger %1/s + Error while loading the list of folders from the server. Une erreur est survenue lors du chargement de la liste des dossiers depuis le serveur. + Fetching folder list from server … Récupération de la liste des dossiers depuis le serveur... + File %1 of %2 Fichier %1 sur %2 + Preparing to sync … Préparation de la synchronisation... + Signed out Session fermée + Synchronizing files in local folder Synchronisation des fichiers dans le dossier local + Synchronizing virtual files in local folder Synchronisation des fichiers virtuels dans le dossier local + Syncing local and remote changes Synchronisation des changements locaux et distants + There are unresolved conflicts. Click for details. Il y a des conflits non résolus. Cliquez pour plus de détails. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Téléverser %1/s + Virtual file support is enabled. Support des fichiers virtuels activé. + Waiting for %n other folder(s) … En attente de %n autre dossier… @@ -2328,14 +2786,17 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi + You need to be connected to add a folder Vous devez être connecté pour ajouter un dossier + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2343,6 +2804,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWatcher + The watcher did not receive a test notification. L'observateur n'a pas reçu de notification de test. @@ -2350,6 +2812,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Ce problème survient généralement lorsque les points de surveillance inotify sont épuisés. Consultez la FAQ pour plus de détails. @@ -2357,10 +2820,12 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizard + Add Folder Sync Connection Ajouter une connexion de synchronisation de dossiers + Add Sync Connection Ajouter la synchronisation @@ -2368,30 +2833,37 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizardLocalPath + Add Folder Sync Ajouter une synchronisation de dossiers + Choose Choisissez + Click to select a local folder to sync. Cliquez pour choisir un dossier local à synchroniser. + Enter the path to the local folder. Entrez le chemin du dossier local. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Sélectionnez sur votre disque dur un dossier qui doit être en permanence rattaché à votre %1. Tous les fichiers et sous-dossiers sont automatiquement importés et synchronisés. + Select the source folder Sélectionnez le dossier source + Step 1 of 3: Select local folder Étape 1 sur 3 : sélectionner un dossier local @@ -2399,62 +2871,78 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizardRemotePath + Add Folder Sync Ajouter une synchronisation de dossiers + Authentication failed accessing %1 Erreur d'authentification lors de l'accès à %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Les deux dossiers sont en permanence rattachés et leur contenu respectif est automatiquement synchronisé et importé. + Choose this to sync the entire account Sélectionnez ceci pour synchroniser l'ensemble du compte + Create Remote Folder Créer un dossier distant + Create folder Créer un dossier + Enter the name of the new folder to be created below "%1": Entrez le nom du nouveau dossier à créer dans "%1" : + Failed to create the folder on %1. Please check manually. Échec à la création du dossier sur %1. Veuillez vérifier manuellement. + Failed to list a folder. Error: %1 Impossible de lister un dossier. Erreur : %1 + Folder was successfully created on %1. Le dossier a été créé sur %1 + + Please choose a different location. %1 is already being synced to %2. Veuillez choisir un emplacement différent. %1 est déjà synchronisé avec %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. À présent, sélectionnez ou créez dans votre %1 un dossier cible dans lequel le contenu doit être importé et synchronisé. + Refresh Rafraîchir + Step 2 of 3: Directory in your %1 Étape 2 sur 3 : répertoire dans votre %1 + You are already syncing the subfolder %1 at %2. Vous synchronisez déjà le sous-dossier %1 à %2. @@ -2462,26 +2950,36 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::FolderWizardSelectiveSync + + + (experimental) (expérimental) + Add Folder Sync Ajouter une synchronisation de dossiers + Step 3 of 3: Selektive Synchronisation Étape 3 sur 3 : synchronisation sélective + + + Use virtual files instead of downloading content immediately %1 Utiliser les fichiers virtuels %1 + Virtual files are not supported at the selected location Les fichiers virtuels ne sont pas pris en charge à l'emplacement sélectionné + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Vous ne pouvez pas définir la racine d'une partition Windows pour votre dossier local. Veuillez choisir un (sous)dossier de la partition. @@ -2489,22 +2987,7 @@ Pour les utilisateurs avancés: ce problème peut aussi venir de plusieurs fichi OCC::GeneralSettings - &Analysis data collection for needs-based design - &Collecte des données d’analyse pour une conception basée sur les besoins - - - &Automatically check for updates - &Vérifier automatiquement les mises à jour - - - &Launch on System Startup - &Lancer au démarrage du système - - - &Restart && Update - Redémarrer et Mettre à jour - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2516,6 +2999,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m La rétrogradation des versions n'est pas possible immédiatement: passer de la version bêta à la version stable signifie attendre la nouvelle version stable. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2525,212 +3009,283 @@ Downgrading versions is not possible immediately: changing from stable to enterp La rétrogradation des versions n'est pas possible immédiatement: passer de stable à entreprise signifie attendre la nouvelle version d'entreprise. + + Cancel + Annuler + + + + Change update channel + Changer de canal de mise à jour + + + + Changing update channel? + Changement du canal de mise à jour ? + + + + Debug Archive Created + Archive de débogage créée + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + Veuillez masquer les informations sensibles avant de les partager ! Archive de débogage créée dans %1 + + + + Restore to &%1 + Rétablir vers &%1 + + + + Server notifications that require attention. + Notifications du serveur requérant votre attention. + + + + Show call notification dialogs. + Montre les fenêtres de notification d'appel. + + + + Show chat notification dialogs. + Afficher les boîtes de dialogue de notification de chat. + + + + Show notification when quota usage exceeds 80%. + Afficher une notification lorsque l’utilisation du quota dépasse 80 %. + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + Le canal détermine quelles mises à niveau seront proposées à l'installation: + - stable: contient des versions testées et considérées comme fiables + + + + + You cannot disable autostart because system-wide autostart is enabled. + Vous ne pouvez pas désactiver le démarrage automatique parce que le démarrage automatique à l'échelle du système est activé. + + + + Zip Archives + Archives Zip + + + + daily + quotidien + + + + enterprise + enterprise + + + + &Automatically check for updates + &Vérifier automatiquement les mises à jour + + + + &Launch on System Startup + &Lancer au démarrage du système + + + + &Restart && Update + Redémarrer et Mettre à jour + + + Advanced Avancés + Ask for confirmation before synchronizing external storages Confirmation avant de synchroniser des stockages externes + Ask for confirmation before synchronizing new folders larger than Demander la confirmation avant de synchroniser les dossiers plus grands que + Automatically disable synchronisation of folders that overcome limit Désactiver automatiquement la synchronisation des dossiers qui dépassent la limite - Cancel - Annuler - - - Change update channel - Changer de canal de mise à jour - - - Changing update channel? - Changement du canal de mise à jour ? - - + + Check Now Vérifier maintenant + + Create Debug Archive Créer une archive de débogage + Data Protection Protection des données - Debug Archive Created - Archive de débogage créée - - + Desktop client x.x.x Client de bureau x.x.x + Edit &Ignored Files Modifier les fichiers exclus + For System Tray Pour la zone de notification système + General Settings Paramètres généraux + + Legal Notice Mentions légales + MB Trailing part of "Ask confirmation before syncing folder larger than" Mo + More Information Plus d’informations + Move removed files to trash Déplacer les fichiers supprimés vers la corbeille + Necessary data Données indispensables + Notify when synchronised folders grow larger than specified limit Notifier lorsque les dossiers synchronisés dépassent la limite spécifiée + Open Source Software Logiciel libre + Privacy Policy Politique de confidentialité - Redact information deemed sensitive before sharing! Debug archive created at %1 - Veuillez masquer les informations sensibles avant de les partager ! Archive de débogage créée dans %1 - - + Required to ensure that the software can be used as expected Nécessaire pour s'assurer que le logiciel peut être utilisé comme prévu + Restore &Default Restaurer les valeurs par défaut - Restore to &%1 - Rétablir vers &%1 - - + Send anonymous use Envoyer utilisation anonyme - Server notifications that require attention. - Notifications du serveur requérant votre attention. - - + Server poll interval Intervalle de vérification du serveur + Show &Quota Warning Notifications Afficher les notifications d'avertissement de &quota + Show Call Notifications Afficher les notifications d'appel + Show Chat Notifications Afficher les notifications de discussion + Show Server &Notifications Afficher les &notifications serveur - Show call notification dialogs. - Montre les fenêtres de notification d'appel. - - - Show chat notification dialogs. - Afficher les boîtes de dialogue de notification de chat. - - - Show notification when quota usage exceeds 80%. - Afficher une notification lorsque l’utilisation du quota dépasse 80 %. - - + Show sync folders in &Explorer's navigation pane Afficher les dossiers synchronisés dans le panneau de navigation de l'&Explorateur de fichiers - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - Le canal détermine quelles mises à niveau seront proposées à l'installation: - - stable: contient des versions testées et considérées comme fiables - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Cela nous aide à optimiser le logiciel et à mieux identifier les pannes de système et les erreurs inattendues. + Update channel Canal de mise à jour + Updates Mises à jour + Usage Documentation Documentation d'utilisation + Use &Monochrome Icons Utiliser les icônes &monochromes - You cannot disable autostart because system-wide autostart is enabled. - Vous ne pouvez pas désactiver le démarrage automatique parce que le démarrage automatique à l'échelle du système est activé. - - - Zip Archives - Archives Zip - - + + beta bêta - daily - quotidien - - - enterprise - enterprise - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) secondes (si le Client Push n'est pas disponible) + + stable stable @@ -2738,22 +3293,27 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d OCC::GETFileJob + Connection Timeout Délai d'attente de connexion dépassé + No E-Tag received from server, check Proxy/Gateway Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle + Server returned wrong content-range Le serveur a retourné une gamme de contenu erronée + We received a different E-Tag for resuming. Retrying next time. Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois. + We received an unexpected download Content-Length. Nous avons reçu un téléchargement de Contenu-Longeur inattendu @@ -2761,6 +3321,7 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2769,14 +3330,17 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d %1 + Password for share required Mot de passe requis + Please enter a password for your link share: Veuillez saisir un mot de passe pour votre lien partagé : + Sharing error Erreur de partage @@ -2784,18 +3348,22 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Cliquez ici</a> pour demander un mot de passe d'application depuis l'interface web. + Enter Password Saisissez le mot de passe + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Merci de saisir %1 mot de passe :<br><br>Identifiant : %2<br>Compte : %3<br> + Reading from keychain failed with error: "%1" La lecture à partir du trousseau a échoué avec l'erreur : "%1" @@ -2803,49 +3371,50 @@ La rétrogradation des versions n'est pas possible immédiatement: passer d OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Cette entrée est fournie par le système dans "%1" et ne peut être modifiée dans cette vue. + + + Files Ignored by Patterns Fichiers ignorés par modèles + Global Ignore Settings Paramètres globaux d'exclusion + Ignored Files Editor Éditeur d'exclusion de fichiers + Sync hidden files Synchroniser les fichiers cachés - - This entry is provided by the system at "%1" and cannot be modified in this view. - Cette entrée est fournie par le système dans "%1" et ne peut être modifiée dans cette vue. - - + OCC::IgnoreListTableWidget - Add - Ajouter - - + Add a new ignore pattern: Ajouter un nouveau motif d'exclusion: - Allow Deletion - Autoriser la suppression - - + Cannot write changes to "%1". Impossible d'écrire les modifications sur "%1". + Could not open file Impossible d'ouvrir le fichier + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2854,18 +3423,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Les objets autorisés à être supprimés le seront s'ils empêchent la suppression d'un dossier. Ceci est utile pour les métadonnées. + Ignore Pattern Ignorer le modèle + + Add + Ajouter + + + + Allow Deletion + Autoriser la suppression + + + Pattern Modèle + Remove Retirer + Remove all Tout retirer @@ -2873,109 +3456,135 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la sup OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Impossible de renommer le fichier parce qu'un fichier avec le même nom existe déjà sur le serveur. Merci de choisir un autre nom. + Checking rename permissions … Vérification des permissions de renommage... + Could not rename file. Please make sure you are connected to the server. Impossible de renommer le fichier. Veuillez vous certifier que vous êtes bien connecté au serveur. + Could not rename local file. %1 Impossible de renommer le dossier local %1 - Error - Erreur - - + Failed to fetch permissions with error %1 Erreur à la récupération des permissions : %1 + Filename contains illegal characters: %1 Le nom du fichier contiens des caractères illégaux: %1 - Filename contains leading and trailing spaces. - Le nom de fichier contient des espaces en début ou en fin de chaîne. - - - Filename contains leading spaces. - Le nom du fichier contient des espaces au début. - - - Filename contains trailing spaces. - Le nom de fichier contient des espaces à la fin. - - - Invalid filename - Nom de fichier invalide + + Filename contains leading and trailing spaces. + Le nom de fichier contient des espaces en début ou en fin de chaîne. - New filename - Nouveau nom de fichier + + Filename contains leading spaces. + Le nom du fichier contient des espaces au début. - Please enter a new name for the file: - Veuillez saisir le nouveau nom du fichier : + + Filename contains trailing spaces. + Le nom de fichier contient des espaces à la fin. + Rename file Renommer le fichier + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Le fichier "%1" n'a pas pu être synchronisé, car le nom contient des caractères qui ne sont pas autorisés sur le serveur. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Le fichier "%1" n'a pas pu être synchronisé car son nom contient des caractères qui ne sont pas autorisés sur ce système. - The file could not be synced because it contains characters which are not allowed on this system. - Le fichier n'a pas pu être synchronisé parce qu'il contiens des caractères invalides ou non-supportés par votre système. - - + The following basenames are not allowed: %1 Les noms de base suivants de fichiers ne sont pas autorisés : %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces Les caractères suivants ne sont pas autorisés sur ce système : \ / : ? * " < > | espaces en début et fin de chaîne + The following characters are not allowed: %1 Les caractères suivants ne sont pas autorisés : %1 + The following file extensions are not allowed: %1 Les extensions de fichiers suivantes ne sont pas autorisées : %1 + The following filenames are not allowed: %1 Les noms de fichiers suivants ne sont pas autorisés : %1 + Use invalid name Nom invalide + You don't have the permission to rename this file. Please ask the author of the file to rename it. Vous n'avez pas la permission de renommer ce fichier. Veuillez demander à son auteur de le renommer. - + + + Error + Erreur + + + + Invalid filename + Nom de fichier invalide + + + + New filename + Nouveau nom de fichier + + + + Please enter a new name for the file: + Veuillez saisir le nouveau nom du fichier : + + + + The file could not be synced because it contains characters which are not allowed on this system. + Le fichier n'a pas pu être synchronisé parce qu'il contiens des caractères invalides ou non-supportés par votre système. + + OCC::LegacyAccountSelectionDialog + Legacy import Importation héritée + Select the accounts to import from the legacy configuration: Sélectionnez les comptes à importer à partir de la configuration héritée : @@ -2983,18 +3592,23 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la sup OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Sous licence GNU General Public License (GPL) Version 2.0 ou supérieure.</p> + Close Fermer + + Legal notice Notice légale @@ -3002,18 +3616,22 @@ Les objets autorisés à être supprimés le seront s'ils empêchent la sup OCC::LogBrowser + Enable logging to temporary folder Activer la journalisation dans le dossier temporaire + Log Output Consigner la sortie dans des fichiers de log + Open folder Ouvrir le dossier + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3022,6 +3640,7 @@ Comme ces fichiers de log peuvent devenir lourds, le client en commence un nouve Si activés, les logs seront écrits dans %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. Ce paramètre persiste lors des redémarrages du client. @@ -3031,10 +3650,14 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Le fichier "%1"<br/>ne peut pas être ouvert en écriture.<br/><br/>Le fichier de log <b>ne peut pas</b> être sauvegardé !</nobr> + + Error Erreur @@ -3042,26 +3665,32 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Une erreur est survenue pendant l'installation + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossible de trouver un fichier à modifier localement. Assurez-vous que son chemin est valide et qu'il est synchronisé localement. + Could not get file ID. Impossible d'obtenir l'identifiant du fichier. + Could not get file identifier. Impossible d'obtenir l'identifiant du fichier. + Could not start editing locally. Impossible de démarrer l'édition locale. + The file identifier is empty. L'identifiant du fichier est vide. @@ -3069,117 +3698,150 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::NetworkSettings - Download Bandwidth - Bande passante de réception - - + HTTP(S) proxy Proxy HTTP(S) - Host - Hôte - - + Hostname of proxy server Nom d'hôte du serveur proxy + + Password for proxy server + Mot de passe pour le serveur proxy + + + + SOCKS5 proxy + Proxy SOCKS5 + + + + Username for proxy server + Nom d’utilisateur pour le serveur proxy + + + + Download Bandwidth + Bande passante de réception + + + + Host + Hôte + + + + KBytes/s Ko/s + + Limit automatically Limiter automatiquement + + Limit to Limiter à + + Limit to 3/4 of estimated bandwidth Limiter aux 3/4 de la bande passante estimée + Manually specify proxy Spécifier manuellement le serveur proxy + + No limit Aucune limite + No proxy Aucun serveur proxy + Note: proxy settings have no effects for accounts on localhost Remarque: les paramètres de proxy n'ont aucun effet sur les comptes sur localhost - Password for proxy server - Mot de passe pour le serveur proxy - - + Proxy Settings Paramètres de serveur proxy + Proxy server requires authentication Le serveur proxy requiert une authentification - SOCKS5 proxy - Proxy SOCKS5 - - + Upload Bandwidth Bande passante d'émission + Use system proxy Utiliser les paramètres du système - - Username for proxy server - Nom d’utilisateur pour le serveur proxy - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Une nouvelle version du Client %1 est disponible mais la mise à jour a échoué.</p><p><b>%2</b> a été téléchargé. La version installée est %3. Si vous confirmez le redémarrage et la mise à jour, votre ordinateur peut redémarrer pour terminer l'installation.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Une nouvelle version du client %1 est disponible.</p><p><b>%2</b> est disponible en téléchargement. La version actuellement installée est %3.<p> + Ask again later Demander plus tard + Get update Télécharger la version + New Version Available Nouvelle version disponible + Restart and update Redémarrer et mettre à jour + Skip this time Ignorer pour cette fois + Update Failed Échec de mise à jour + Update manually Mettre à jour manuellement @@ -3187,58 +3849,72 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OCUpdater + %1 available. Restart application to start the update. %1 disponible. Redémarrez l'application pour effectuer la mise à jour. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Une nouvelle mise à jour pour %1 est sur le point d'être installée. Le dispositif de mise à jour peut demander des autorisations supplémentaires au cours du processus. Votre ordinateur peut nécessiter un redémarrage pour terminer l'installation. + Checking update server … Vérification du serveur de mises à jour ... + Could not check for new updates. Impossible de vérifier la présence de nouvelles mises à jour. + Could not download update. Please open %1 to download the update manually. Impossible de télécharger la mise à jour. Ouvrez %1 pour télécharger manuellement la mise à jour. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Impossible de télécharger la mise à jour. Merci d'ouvrir <a href='%1'>%1</a> pour télécharger la mise à jour manuellement. + Downloading %1 … Téléchargement de %1 … + New %1 is available. Please open %2 to download the update. Un nouveau %1 est disponible. Merci d'ouvrir %2 pour télécharger la mise à jour. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. Un nouveau %1 est disponible. Merci d'ouvrir <a href='%2'>%2</a> pour télécharger la mise à jour. + New %1 update ready Une nouvelle mise à jour de %1 est disponible + No updates available. Your installation is the latest version. Aucune mise à jour n'est disponible. Votre installation est la dernière version. + Update Check Recherche de mise à jour + Update status is unknown: Did not check for new updates. L'état du processus de mise à jour est inconnu. Impossible de vérifier la présence de mises à jour. + You are using the %1 update channel. Your installation is the latest version. Vous utilisez le canal de mise à jour %1. Votre installation est la dernière version. @@ -3246,55 +3922,72 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" Le dossier %1 "%2" est synchronisé avec le dossier local "%3". + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB espace libre %1 + + (%1) (%1) + + (experimental) (expérimental) + Connect Connexion + In Finder's "Locations" sidebar section Dans la section « Emplacements » du panneau latéral du Finder + Local Sync Folder Dossier de synchronisation local + Sync the folder "%1" Synchroniser le dossier "%1" + There isn't enough free space in the local folder! L'espace libre dans le dossier local est insuffisant ! + + Use &virtual files instead of downloading content immediately %1 Utiliser les fichiers virtuels plutôt que de télécharger le contenu immédiatement %1 + Virtual files are not supported at the selected location Les fichiers virtuels ne sont pas pris en charge à l'emplacement sélectionné + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Les fichiers virtuels ne sont pas pris en charge pour les racines de partition Windows en tant que dossier local. Veuillez choisir un sous-dossier valide sous la lettre du lecteur. + Warning: The local folder is not empty. Pick a resolution! Avertissement : Le dossier local n'est pas vide. Choisissez une option. @@ -3302,26 +3995,32 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Impossible de se connecter à l'adresse sécurisée <em>%1</em>. Que souhaitez-vous faire ?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Impossible de se connecter au serveur via l'adresse sécurisée indiquée. Que souhaitez-vous faire ?</p></body></html> + Configure client-side TLS certificate Configurer le certificat TLS client + Connection failed Échec de la connexion + Retry unencrypted over HTTP (insecure) Essayer en clair sur HTTP (non sécurisé) + Select a different URL Choisir une URL différente @@ -3329,71 +4028,88 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1 : %2 + Account %1: %2 Compte %1 : %2 + Account synchronization is disabled La synchronisation est en pause + Checking for changes in local "%1" Vérification des modifications dans "%1" local + Checking for changes in remote "%1" Vérification des modifications dans "%1" distant + Disconnected from %1 Déconnecté de %1 + Disconnected from accounts: Déconnecté des comptes : + Please sign in Veuillez vous connecter + Terms of service Conditions d'utilisation + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. Le serveur sur le compte %1 fonctionne avec une version non-supportée %2. Utiliser ce client avec des versions non-supportées du serveur n'est pas testé et est potentiellement dangereux. Procédez à vos risques et périls. + There are no sync folders configured. Aucun dossier à synchroniser n'est configuré + Unsupported Server Version Version du Serveur non prise en charge + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Votre compte %1 vous demande d'accepter les conditions générales d'utilisation de votre serveur. Vous serez redirigé vers %2 pour confirmer que vous l'avez lu et que vous l'acceptez. + macOS VFS for %1: A problem was encountered. macOS VFS pour %1: Une erreur est survenue. + macOS VFS for %1: Last sync was successful. macOS VFS pour %1: La dernière synchronisation a réussi. + macOS VFS for %1: Sync is running. macOS VFS pour %1: Synchronisation en cours. @@ -3401,14 +4117,17 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudHttpCredsPage + &Email &Adresse mail + Connect to %1 Connexion à %1 + Enter user credentials Saisissez les identifiants de connexion de l'utilisateur @@ -3416,6 +4135,8 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Impossible de récupérer la date de modification du fichier en conflit %1 @@ -3423,18 +4144,23 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudSetupPage + &Next > &Suivant > + Could not load certificate. Maybe wrong password? Impossible de charger le certificat. Vérifiez le mot de passe saisi. + + Server address does not seem to be valid L'adresse du serveur ne semble pas être valide + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name Adresse URL visible dans la barre d'adresse de votre navigateur Web lorsque vous êtes connecté à %1. @@ -3443,118 +4169,150 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b> Compte basé sur un fournisseur de fichiers %1 créé avec succès ! </b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Dossier de synchronisation local %1 créé avec succès !</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connecté avec succès à %1 : %2 version %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">La création du dossier distant a échoué, probablement parce que les informations d'identification fournies sont fausses.</font><br/>Veuillez revenir en arrière et les vérifier.</p> + A sync connection from %1 to remote directory %2 was set up. Une synchronisation entre le dossier local %1 et le dossier distant %2 a été configurée. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accès impossible. Afin de vérifier l'accès au serveur, <a href="%1">cliquez ici</a> et connectez-vous au service avec votre navigateur web. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Impossible de supprimer et sauvegarder le dossier parce que le dossier ou un fichier qu'il contient est ouvert dans un autre programme. Merci de fermer le dossier ou le fichier et recommencer ou annuler la configuration. + Connection to %1 could not be established. Please check again. La connexion à %1 n'a pu être établie. Veuillez réessayer. + Could not create local folder %1 Impossible de créer le dossier local %1 + Creating local sync folder %1 … Création du dossier local de synchronisation %1... + Error: %1 Erreur : %1 + Failed to connect to %1 at %2:<br/>%3 Échec de la connexion à %1 sur %2 :<br/>%3 + Folder rename failed Echec du renommage du dossier + Invalid URL URL invalide + Local sync folder %1 already exists, setting it up for sync.<br/><br/> Le dossier de synchronisation local %1 existe déjà, configuration de la synchronisation.<br/><br/> + No remote folder specified! Aucun dossier distant spécifié ! + OK OK + Remote folder %1 created successfully. Le dossier distant %1 a été créé avec succès. + + Remote folder %1 creation failed with error <tt>%2</tt>. La création du dossier distant "%1" a échouée avec l'erreur <tt>%2</tt>. + Successfully connected to %1! Connecté avec succès à %1 ! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La demande authentifiée au serveur a été redirigée vers "%1". L'URL est mauvaise, le serveur est mal configuré. + + The folder creation resulted in HTTP error code %1 La création du dossier a généré le code d'erreur HTTP %1 + The remote folder %1 already exists. Connecting it for syncing. Le dossier distant %1 existe déjà. Connexion. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> La création du dossier distant a échoué car les identifiants de connexion sont erronés !<br/>Veuillez revenir en arrière et vérifier ces derniers.</p> + There was an invalid response to an authenticated WebDAV request Il y a eu une réponse invalide à une demande WebDAV authentifiée + Timeout while trying to connect to %1 at %2. Délai d'attente dépassé lors de la connexion à %1 sur %2. + + Trying to connect to %1 at %2 … Tentative de connexion à %1 sur %2 ... + creating folder on Nextcloud: %1 Création du dossier sur Nextcloud : %1 + failed. échoué. @@ -3562,45 +4320,55 @@ Notez que l'utilisation de toute option de ligne de commande de journalisat OCC::OwncloudWizard + Add %1 account Ajout du compte %1 + Back Next button text in new account wizard Retour + Cancel Annuler + Enable experimental feature? Activer la fonction expérimentale ? + Enable experimental placeholder mode Activer la fonction expérimentale de fichiers virtuels ? + Next Next button text in new account wizard Suivant + Proxy Settings Proxy Settings button text in new account wizard Paramètres de serveur proxy + Skip folders configuration Ignorer la configuration des dossiers + Stay safe Restez en sécurité + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3620,10 +4388,12 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PasswordInputDialog + Password for share required Mot de passe requis pour le partage + Please enter a password for your share: Veuillez saisir un mot de passe pour votre partage : @@ -3631,6 +4401,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PollJob + Invalid JSON reply from the poll URL L'URL de sondage a renvoyé une réponse JSON non valide @@ -3638,166 +4409,210 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. Ne peut être renommé ou téléversé. + Cannot modify encrypted item because the selected certificate is not valid. Impossible de modifier l'élément chiffré car le certificat sélectionné n'est pas valide. + Cannot sync due to invalid modification time Impossible de synchroniser à cause d'une date de modification invalide + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Conflit de casse : fichier serveur téléchargé et renommé pour éviter le conflit. + Conflict: Server version downloaded, local copy renamed and not uploaded. Conflit : la version du serveur a été téléchargée, la version locale a été renommée, mais pas téléversée. + Could not upload file, because it is open in "%1". Impossible de téléverser le fichier, car il est ouvert dans « %1 ». + Error while deleting file record %1 from the database Erreur à la suppression de l'enregistrement du fichier %1 de la base de données + Error while reading the database Erreur de lecture de la base de données + File has extension reserved for virtual files. Le fichier a une extension réservée pour les fichiers virtuels. + File is listed on the ignore list. Le fichier est présent dans la liste des fichiers exclus. + File is not accessible on the server. server error Fichier non accessible sur le serveur. + File name contains at least one invalid character Le nom du fichier contient au moins un caractère interdit + File name is a reserved name on this file system. Le nom du fichier est un nom réservé sur ce système de fichiers. + File names containing the character "%1" are not supported on this file system. %1: the invalid character Les noms de fichiers contenant le caractère "%1" ne sont pas pris en charge par ce système de fichiers. + File names ending with a period are not supported on this file system. Les noms de fichier se terminant par un point ne sont pas pris en charge sur votre système. + File/Folder is ignored because it's hidden. Le fichier/dossier est exclu, car il est caché. + Filename contains leading and trailing spaces. Nom de fichier contenant des espaces au début et à la fin. + Filename contains leading spaces. Nom de fichier contenant des espaces au début. + Filename contains trailing spaces. Le nom du fichier finit par des espaces. + Filename is too long. Le nom du fichier est trop long. + Folder is not accessible on the server. server error Dossier non accessible sur le serveur. + Folder name contains at least one invalid character Le nom du dossier contient au moins un caractère interdit + Folder name is a reserved name on this file system. Le nom du dossier est un nom réservé sur ce système de fichiers. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Les noms de dossiers contenant le caractère "%1" ne sont pas pris en charge par ce système de fichiers. + Ignored because of the "choose what to sync" blacklist Exclus en raison de la liste noire "Sélectionner le contenu à synchroniser". + + Moved to invalid target, restoring Déplacé vers une cible invalide, restauration + Not allowed because you don't have permission to add files in that folder Non autorisé car vous n'avez pas la permission d'ajouter des fichiers dans ce dossier + Not allowed because you don't have permission to add subfolders to that folder Non autorisé car vous n'avez pas la permission d'ajouter des sous-dossiers dans ce dossier + Not allowed to remove, restoring Suppression non autorisée, restauration en cours + Not allowed to upload this file because it is read-only on the server, restoring Non autorisé à téléverser ce fichier, car il est en lecture seule sur le serveur, restauration en cours + Reason: the entire filename is forbidden. Motif : le nom de fichier entier est interdit. + Reason: the file has a forbidden extension (.%1). Motif : le fichier a une extension interdite (.%1). + Reason: the filename contains a forbidden character (%1). Motif : le nom du fichier contient un caractère interdit (%1). + Reason: the filename has a forbidden base name (filename start). Motif : le nom de fichier a un nom de base interdit (début du nom de fichier). + Stat failed. Stat échoué. + Symbolic links are not supported in syncing. Les liens symboliques ne sont pas pris en charge par la synchronisation. + The filename cannot be encoded on your file system. Le nom de fichier ne peut pas être encodé sur votre système de fichiers. + The filename is blacklisted on the server. Le nom du fichier est sur la liste noire du serveur. + Upload of %1 exceeds %2 of space left in folder %3. Le téléversement de %1 dépasse les %2 d'espace restant du dossier %3. + Upload of %1 exceeds %2 of space left in personal files. Le téléversement de %1 dépasse les %2 d'espace restant de l'espace personnel. @@ -3805,26 +4620,38 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateDirectory + Could not delete file %1 from local DB Impossible de supprimer le fichier %1 de la base de données locale + Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + File is currently in use Le fichier est actuellement en cours d'utilisation + + + + + + The folder %1 cannot be made read-only: %2 Le dossier %1 ne peut pas être mis en lecture seule : %2 + + unknown exception Exception inconnue @@ -3832,54 +4659,70 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + File %1 cannot be downloaded because encryption information is missing. Le fichier %1 ne peut pas être téléchargé car les informations de chiffrement sont manquantes. + File %1 downloaded but it resulted in a local file name clash! Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! + + File %1 has invalid modified time reported by server. Do not save it. Le fichier %1 présente une date de modification invalide sur le serveur. Enregistrement impossible. + + File has changed since discovery Le fichier a changé depuis sa découverte + File was deleted from server Le fichier a été supprimé du serveur + Free space on disk is less than %1 Il y a moins de %1 d'espace libre sur le disque + The download would reduce free local disk space below the limit Le téléchargement réduira l'espace disque libre en dessous de la limite + The downloaded file is empty, but the server said it should have been %1. Le fichier téléchargé est vide bien que le serveur indique que sa taille devrait être de %1. + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + The file could not be downloaded completely. Le fichier n'a pas pu être téléchargé intégralement. @@ -3887,10 +4730,12 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateItemJob + ; Restoration Failed: %1 ; Échec de la restauration : %1 + A file or folder was removed from a read only share, but restoring failed: %1 Un fichier ou un dossier a été supprimé d'un partage en lecture seule, mais la restauration a échoué : %1 @@ -3898,30 +4743,39 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateLocalMkdir + Could not create folder %1 Impossible de créer le dossier %1 + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + Folder %1 cannot be created because of a local file or folder name clash! Le dossier %1 n'a pu être créé à cause d'un conflit local de nom de fichier ou de dossier ! + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + + + The folder %1 cannot be made read-only: %2 Le dossier %1 ne peut être rendu en lecture seule : %2 + could not delete file %1, error: %2 impossible de supprimer le fichier %1. Erreur : %2 + unknown exception Exception inconnue @@ -3929,14 +4783,19 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Impossible de supprimer l'enregistrement du fichier %1 depuis la base de données locale + Could not remove %1 because of a local file name clash Impossible de retirer %1 en raison d'un conflit de nom de fichier local + + + Temporary error when removing local item removed from server. Erreur temporaire lors de la suppression d'un élément local supprimé du serveur. @@ -3944,38 +4803,49 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateLocalRename + Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + + Error setting pin state Erreur lors de la modification de l'état du fichier + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + Failed to propagate directory rename in hierarchy Impossible de propager le renommage du dossier dans la hiérarchie + Failed to rename file Échec lors du changement de nom du fichier + File %1 downloaded but it resulted in a local file name clash! Fichier %1 téléchargé, mais a abouti à un conflit de casse du nom de fichier local ! + Folder %1 cannot be renamed because of a local file or folder name clash! Le dossier %1 ne peut pas être renommé en raison d’un conflit de nom avec un fichier ou un dossier local ! + The file %1 is currently in use Le fichier %1 est en cours d'utilisation @@ -3983,10 +4853,12 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur reçue est "%1 %2". @@ -3994,6 +4866,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur retournée est "%1 %2". @@ -4001,18 +4874,22 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Erreur d'écriture des métadonnées dans la base de données : %1 + Failed to encrypt a folder %1 Échec du chiffrement d'un dossier %1 + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". @@ -4020,34 +4897,44 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + Could not get file %1 from local DB Impossible de récupérer le fichier %1 depuis la base de données locale + Could not rename %1 to %2, error: %3 Impossible de renommer %1 en %2, erreur: %3 + Error setting pin state Erreur lors de la modification de l'état du fichier + + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + Error writing metadata to the database Erreur à l'écriture des métadonnées dans la base de données + + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2". @@ -4055,46 +4942,60 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateUploadFileCommon + Error updating metadata: %1 Erreur lors de la mise à jour des métadonnées : %1 + Failed to unlock encrypted folder. Impossible de déverrouiller le dossier chiffré. + Failed to upload encrypted file. Échec de téléversement du fichier chiffré. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Impossible de téléverser le fichier %1 car un autre fichier de même nom existe, différent seulement par la casse. + + + File %1 has invalid modification time. Do not upload to the server. Le fichier %1 présente une heure de modification invalide. Ne téléversez pas sur le serveur. + File Removed (start upload) %1 Fichier supprimé (début du téléversement) %1 + Local file changed during sync. Fichier local modifié pendant la synchronisation. + Local file changed during syncing. It will be resumed. Fichier local modifié pendant la synchronisation. Elle va reprendre. + The file %1 is currently in use Le fichier %1 est en cours d'utilisation + Unable to upload an item with invalid characters Impossible de téléverser un élément contenant des caractères non valides + + Upload of %1 exceeds the quota for the folder L'envoi de %1 amène un dépassement de quota pour le dossier @@ -4102,32 +5003,39 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateUploadFileNG + File is not accessible on the server. server error Fichier non accessible sur le serveur. + Folder is not accessible on the server. server error Dossier non accessible sur le serveur. + Local file changed during sync. Fichier local modifié pendant la synchronisation. + Missing File ID from server L'identifiant de fichier est manquant sur le serveur + Poll URL missing URL du sondage manquante + The local file was removed during sync. Fichier local supprimé pendant la synchronisation. + Unexpected return code from server (%1) Le serveur a retourné un code inattendu (%1) @@ -4135,18 +5043,22 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::PropagateUploadFileV1 + Local file changed during sync. Fichier local modifié pendant la synchronisation. + Poll URL missing URL de sondage manquante + The local file was removed during sync. Fichier local supprimé pendant la synchronisation. + The server did not acknowledge the last chunk. (No e-tag was present) Le serveur n'a pas confirmé la réception du dernier morceau. (Aucun e-tag n'était présent). @@ -4154,22 +5066,27 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ProxyAuthDialog + Password: Mot de passe : + Proxy authentication required Authentification requise sur le proxy + Proxy: Proxy : + The proxy server needs a username and password. Le serveur proxy requiert un identifiant et un mot de passe. + Username: Nom d’utilisateur : @@ -4177,6 +5094,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::SelectiveSyncDialog + Choose What to Sync Sélectionner le contenu à synchroniser @@ -4184,26 +5102,33 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Une erreur est survenue lors du chargement de la liste des sous-dossiers. + Deselect remote folders you do not wish to synchronize. Désélectionnez les sous-dossiers distants que vous ne souhaitez pas synchroniser. + Loading … Chargement… + Name Nom + + No subfolders currently on the server. Aucun sous-dossier sur le serveur. + Size Taille @@ -4211,10 +5136,12 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ServerNotificationHandler + Dismiss Ignorer + Reply Répondre @@ -4222,14 +5149,17 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::sesSnackBar + Error Erreur + Success Réussite + Warning Attention @@ -4237,23 +5167,28 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud Paramètres %1 + Account Compte + General Général + New account Nouveau compte + Settings Paramètres @@ -4261,19 +5196,24 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Résultats de la recherche globale + No results found Aucun résultat trouvé + + Search globally Rechercher globalement @@ -4281,6 +5221,7 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ShareManager + Error Erreur @@ -4288,38 +5229,47 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::ShareModel + %1 days %1 jours + 1 day 1 jour + Could not find local folder for %1 Impossible de trouver le dossier local pour %1 + Internal link Lien interne + Link share Lien de partage + Secure file drop Dépôt de fichier sécurisé + Secure file drop link Lien de dépôt sécurisé de fichier + Share link Partager un lien + Today Aujourd'hui @@ -4327,22 +5277,28 @@ Il s'agit d'un nouveau mode expérimental. Si vous décidez de l' OCC::SocketApi + + Activity Activité + Context menu share Partage du menu contextuel + Copy internal link Copier le lien interne + Copy private link to clipboard Copier le lien privé dans le presse-papier + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4351,18 +5307,22 @@ Server replied with error: %2 Le serveur a répondu avec l'erreur : %2 + Delete Supprimer + Delete local changes Supprimer les modifications locales + Encrypt Chiffrer + Expires in %1 minutes remaining time before lock expires @@ -4371,82 +5331,104 @@ Le serveur a répondu avec l'erreur : %2 + Failed to encrypt folder Échec du chiffrement du dossier + Failed to encrypt folder at "%1" Échec du chiffrement du dossier à "%1" + Folder encrypted successfully Dossier chiffré avec succès + I shared something with you J'ai partagé quelque chose avec vous + Leave this share Quitter ce partage + Lock file Verrouiller le fichier + Locked by %1 Verrouillé par %1 + Move and rename … Déplacer et renommer... + Move and upload … Déplacer et téléverser… + Move, rename and upload … Déplacer, renommer et téléverser… + + Open in browser Ouvrir dans le navigateur + Resharing this file is not allowed Repartager ce fichier est interdit + Resharing this folder is not allowed Repartager ce dossier est interdit + Resolve conflict … Résoudre le conflit… + Select new location … Sélectionnez le nouvel emplacement... + Send private link by email … Envoyer le lien privé par e-mail... + + Share options Options de partage + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. Le compte %1 n'a pas de chiffrement de bout en bout configuré. Veuillez le configurer dans les paramètres de votre compte pour activer le chiffrement des dossiers. + The following folder was encrypted successfully: "%1" Le dossier suivant a été chiffré avec succès : "%1" + Unlock file Déverrouiller le fichier @@ -4454,98 +5436,122 @@ Le serveur a répondu avec l'erreur : %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (auto-signé) + <h3>Certificate Details</h3> <h3>Détails du certificat</h3> + <h3>Fingerprints</h3> <h3>Empreintes numériques</h3> + <h3>Issuer</h3> <h3>Émetteur</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Note :</b> Ce certificat a été approuvé manuellement</p> + Certificate information: Informations du certificat : + Common Name (CN): Nom commun (CN) : + Country: Pays : + Expires on: Expire le : + Issued on: Émis le : + Issuer: Émetteur : + No support for SSL session tickets/identifiers Identifiants/tickets de sessions SSL non pris en charge + Organization (O): Organisation (O) : + Organizational Unit (OU): Unité d'organisation (OU) : + SHA-1: SHA-1 : + SHA-256: SHA-256 : + Serial: Numéro de série : + Server version: %1 Version du serveur : %1 + State/Province: État/Région : + Subject Alternative Names: Noms alternatifs du sujet : + The connection is not secure La connexion n'est pas sécurisée + This connection is NOT secure as it is not encrypted. Cette connexion n'est PAS sécurisée car elle n'est pas chiffrée. + This connection is encrypted using %1 bit %2. Cette connexion est chiffrée en utilisant %1 bit %2. @@ -4553,122 +5559,156 @@ Le serveur a répondu avec l'erreur : %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;non spécifié&gt; + Additional errors: Erreurs supplémentaires : + Cannot connect securely to <i>%1</i>: Impossible de se connecter de manière sécurisée à <i>%1</i> : + + Country: %1 Pays : %1 + Effective Date: %1 Date de début de validité : %1 + Expiration Date: %1 Date d'expiration : %1 + Fingerprint (SHA-256): <tt>%1</tt> Empreinte (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Empreinte (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Empreinte (SHA1) : <tt>%1</tt> + Issuer: %1 Émetteur : %1 + + Organization: %1 Organisation : %1 - Trust this certificate anyway - Faire confiance à ce certificat malgré tout - - + + Unit: %1 Unité : %1 + Untrusted Certificate Certificat non fiable + with Certificate %1 avec certificat %1 - + + + Trust this certificate anyway + Faire confiance à ce certificat malgré tout + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (ignoré à cause d'une précédente erreur, nouvel essai dans %2) + Cannot open the sync journal Impossible d'ouvrir le journal de synchronisation + Could not set file record to local DB: %1 Impossible de définir l'enregistrement du fichier dans la base de données locale : %1 + Could not update file metadata: %1 Impossible de mettre à jour les métadonnées du fichier : %1 + Could not update file: %1 Impossible de mettre à jour le fichier : %1 + Could not update virtual file metadata: %1 Impossible de mettre à jour les métadonnées du fichier virutel : %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. L'espace disque est faible : les téléchargements qui amèneraient à réduire l'espace libre en dessous de %1 ont été ignorés. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Seulement %1 disponibles, il faut au moins %2 pour démarrer + There is insufficient space available on the server for some uploads. Il n'y a pas suffisamment d’espace disponible sur le serveur pour certains téléversements. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Impossible d'accéder ou de créer une base de données locale de synchronisation. Assurez vous de disposer des droits d'écriture dans le dossier de synchronisation. + Unable to read from the sync journal. Impossible de lire le journal de synchronisation. + Unable to read the blacklist from the local database Impossible de lire la liste noire de la base de données locale + Unresolved conflict. conflit non résolu. + Using virtual files with suffix, but suffix is not set Utilisation de fichiers virtuels avec suffixe, mais le suffixe n'est pas défini @@ -4676,58 +5716,76 @@ Le serveur a répondu avec l'erreur : %2 OCC::SyncStatusSummary + %1 of %2 %1 sur %2 + %1 of %2 · %3 left %1 sur %2 · %3 restants + + + All synced! Tout est synchronisé ! + Checking folder changes Vérification des modifications du dossier + + + Offline Hors ligne + See below for errors Voir ci-dessous pour les erreurs + See below for warnings Voir ci-dessous pour les avertissements + Some files could not be synced! Certains fichiers n’ont pas pu être synchronisés ! + Some files couldn't be synced! Certains fichiers n’ont pas pu être synchronisés ! + Sync paused Synchronisation mise en pause + Syncing Synchronisation + Syncing changes Synchronisation des modifications + Syncing file %1 of %2 Synchronisation du fichier %1 sur %2 + You need to accept the terms of service Vous devez accepter les conditions d'utilisation @@ -4735,43 +5793,55 @@ Le serveur a répondu avec l'erreur : %2 OCC::Systray + Add account Ajouter un compte + Download Télécharger + Exit %1 Quitter %1 + Help Aide + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Ouvrir %1 Desktop + + Pause sync Suspendre la synchronisation + Pause sync for all Suspendre toutes les synchros + + Resume sync Relancer la synchro + Resume sync for all Relancer toutes les synchros + Settings Paramètres @@ -4779,22 +5849,27 @@ Le serveur a répondu avec l'erreur : %2 OCC::TermsOfServiceCheckWidget + Copy Link Copier le lien + Link copied to clipboard. Lien copié dans le presse-papiers. + Open Browser Ouvrir le navigateur + Polling Vote + Waiting for terms to be accepted En attente de l'acceptation des conditions @@ -4802,90 +5877,115 @@ Le serveur a répondu avec l'erreur : %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Version du client de bureau %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Utilise l'extension de fichiers virtuels : %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Cette version a été fournie par %1.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0077 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1042 - Help-Link - https://wl.hidrive.com/easy/0128 + + Login_URL + https://storage.ionos.fr - Help-Link_STRATO - https://static.hidrive.com/next/1012 + + Login_URL_STRATO + https://storage.ionos.fr + LegalNotice-Link https://wl.hidrive.com/easy/0024 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1022 - Login_URL - https://storage.ionos.fr - - - Login_URL_STRATO - https://storage.ionos.fr - - + MoreInformation-Link https://wl.hidrive.com/easy/0027 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1012 + OpenSource-Link https://wl.hidrive.com/easy/0026 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0025 + Privacy-Link_STRATO https://static.hidrive.com/next/1002 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Version du client de bureau %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Utilise l'extension de fichiers virtuels : %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Cette version a été fournie par %1.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0128 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1012 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Échec de la récupération des fournisseurs. + Failed to fetch search providers for '%1'. Error: %2 Échec de la récupération des fournisseurs de recherche pour '%1'. Erreur : %2 + Search has failed for '%1'. Error: %2 La recherche de '%1' a échoué. Erreur : %2 + Search has failed for '%2'. La recherche de '%2' a échoué. @@ -4893,14 +5993,17 @@ Le serveur a répondu avec l'erreur : %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Échec de finalisation de l’élément. + Failed to unlock encrypted folder. Échec du déverrouillage du dossier chiffré. + Failed to update folder metadata. Échec du téléversement du dossier des métadonnées. @@ -4908,33 +6011,43 @@ Le serveur a répondu avec l'erreur : %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Impossible de supprimer l’utilisateur %1 au dossier d’accès %2 ou de l’y ajouter + Could not fetch public key for user %1 Impossible de récupérer la clé publique pour l'utilisateur %1 + Could not find root encrypted folder for folder %1 Impossible de trouver le dossier racine chiffré pour le dossier %1 + + + + + + + + + Error updating metadata for a folder %1 Erreur lors de la mise à jour des métadonnées pour un dossier %1 + Failed to unlock a folder. Échec du déverrouillage d’un dossier. OCC::User - - %1 notifications - %1 notifications - + %n notification(s) %n notification @@ -4942,44 +6055,55 @@ Le serveur a répondu avec l'erreur : %2 + End-to-end certificate needs to be migrated to a new one Le certificat de bout en bout doit être migré vers une nouvelle clé + Open %1 Assistant in browser The placeholder will be the application name. Please keep it Ouvrir l'assistant %1 dans le navigateur + Open %1 Talk in browser The placeholder will be the application name. Please keep it Ouvrir %1 Talk dans le navigateur + Public Share Link Lien de partage public + Quota Warning - %1 percent or more storage in use Alerte quota - %1 pour cent ou plus de stockage utilisé + Quota is updated; %1 percent of the total space is used. Quota mis à jour ; %1 pour cent de l’espace total est utilisé. + Rename file Renommer le fichier + + Resolve conflict Résoudre le conflit + Retry all uploads Réessayer tous les téléversements + Trigger the migration Déclencher la migration @@ -4987,26 +6111,32 @@ Le serveur a répondu avec l'erreur : %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Êtes-vous certain de vouloir retirer la connexion au compte <i>%1</i> ?</p><p><b>Note :</b> cette opération <b>ne supprimera aucun de vos fichiers</b> et ne supprimera pas non plus votre compte du serveur.</p> + Cancel Annuler + Confirm Account Removal Confirmer le retrait du compte + Leave share Quitter le partage + Remove account Retirer le compte + Remove connection Supprimer la connexion @@ -5014,6 +6144,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::UserStatusSelectorModel + %n day(s) %n jour @@ -5021,6 +6152,7 @@ Le serveur a répondu avec l'erreur : %2 + %n hour(s) %n heure @@ -5028,6 +6160,7 @@ Le serveur a répondu avec l'erreur : %2 + %n minute(s) %n minute @@ -5035,54 +6168,70 @@ Le serveur a répondu avec l'erreur : %2 + 1 hour 1 heure + 30 minutes 30 minutes + 4 hours 4 heures + Could not clear status message. Make sure you are connected to the server. Impossible d'effacer le message de statut. Assurez-vous que vous êtes connecté au serveur. + Could not fetch predefined statuses. Make sure you are connected to the server. Impossible de récupérer les statuts prédéfinis. Assurez-vous que vous êtes connecté au serveur. + Could not fetch status. Make sure you are connected to the server. Impossible de récupérer le statut. Merci de vérifier que vous êtes bien connecté(e) au serveur. + Could not set status. Make sure you are connected to the server. Impossible de définir le statut. Merci de vérifier que vous êtes connecté(e) au serveur. + + Don't clear Ne pas effacer + Emojis are not supported. Some status functionality may not work. Les Emojis ne sont pas supportés. Certaines fonctionnalités de statut pourront ne pas fonctionner. + Less than a minute Il y a moins d'une minute + Status feature is not supported. You will not be able to set your status. La fonctionnalité "statut" n'est pas supporté. Vous ne pourrez pas définir votre statut. + + This week Cette semaine + + Today Aujourd'hui @@ -5090,14 +6239,17 @@ Le serveur a répondu avec l'erreur : %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 est un lecteur. Il ne prend pas en charge les fichiers virtuels. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 est un lecteur réseau. Il ne prend pas en charge les fichiers virtuels. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Veuillez choisir un emplacement différent. %1 n'est pas un système de fichiers NTFS. Il ne prend pas en charge les fichiers virtuels. @@ -5105,30 +6257,37 @@ Le serveur a répondu avec l'erreur : %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 ne peut pas être téléchargé. + + Error downloading %1 + Erreur au téléchargement %1 + + + > More details > Plus de détails + Could not be downloaded + Download error Erreur de téléchargement + Error downloading Erreur au téléchargement - Error downloading %1 - Erreur au téléchargement %1 - - + More details Plus de détails @@ -5136,6 +6295,8 @@ Le serveur a répondu avec l'erreur : %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide @@ -5143,6 +6304,8 @@ Le serveur a répondu avec l'erreur : %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Erreur de mise à jour des métadonnées à cause d'une date de modification invalide @@ -5150,10 +6313,12 @@ Le serveur a répondu avec l'erreur : %2 OCC::WebEnginePage + Invalid certificate detected Certificat invalide + The host "%1" provided an invalid certificate. Continue? L’hôte "%1" utilise un certificat invalide. Continuer ? @@ -5161,6 +6326,7 @@ Le serveur a répondu avec l'erreur : %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Vous avez été déconnecté(e) de votre compte %1 à %2. Veuillez vous reconnecter.</b> @@ -5168,22 +6334,27 @@ Le serveur a répondu avec l'erreur : %2 OCC::WelcomePage - Form - Formulaire - - + Host your own server Hébergez votre propre serveur + Keep your data secure and under your control Gardez vos données en sécurité et sous votre contrôle + + Form + Formulaire + + + Log in Se connecter + Sign up with provider S'inscrire auprès d'un fournisseur @@ -5191,27 +6362,33 @@ Le serveur a répondu avec l'erreur : %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy Proxy HTTP(S) + Hostname of proxy server Nom d'hôte du serveur proxy + Password for proxy server Mot de passe du serveur proxy + Proxy Settings Dialog window title for proxy settings Paramètres de serveur proxy + SOCKS5 proxy Proxy SOCKS5 + Username for proxy server Nom d’utilisateur du serveur proxy @@ -5219,55 +6396,68 @@ Le serveur a répondu avec l'erreur : %2 OwncloudAdvancedSetupPage + &Local Folder &Dossier local + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Si cette case est cochée, le contenu existant du dossier local sera supprimé pour démarrer une synchronisation propre depuis le serveur.</p><p>Ne pas cocher si le contenu local doit être téléversé vers le serveur.</p></body></html> + Ask before syncing folders larger than Demander confirmation avant de synchroniser les dossiers de taille supérieure à + Choose different folder Choisir un autre dossier + Choose what to sync Sélectionner le contenu à synchroniser + Erase local folder and start a clean sync Effacer le dossier local et démarrer une synchronisation complète + Keep local data Conserver les données locales + Local Folder Dossier local + MB Trailing part of "Ask confirmation before syncing folder larger than" Mo + Server address Adresse du serveur + Sync Logo Logo de synchronisation + Synchronize everything from server Tout synchroniser depuis le serveur + Username Nom d’utilisateur @@ -5275,10 +6465,12 @@ Le serveur a répondu avec l'erreur : %2 OwncloudHttpCredsPage + &Password &Mot de passe + &Username &Nom d’utilisateur @@ -5286,10 +6478,12 @@ Le serveur a répondu avec l'erreur : %2 OwncloudSetupPage + Server address Adresse du serveur + This is the link to your %1 web interface when you open it in the browser. Il s'agit de l'adresse URL lorsque vous utilisez %1 dans un navigateur. @@ -5297,145 +6491,170 @@ Le serveur a répondu avec l'erreur : %2 progress + Deleted Supprimé + Deleting Suppression + Downloaded Reçu + Downloading Téléchargement + + Error Erreur + Filesystem access error Erreur d'accès au système de fichiers + Ignored Exclu + Ignoring Ignoré + Moved to %1 Déplacé vers %1 + Moving Déplacement + Replaced by virtual file Remplacé par un fichier virtuel + Server version downloaded, copied changed local file into case conflict conflict file La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier de conflit de casse. + Server version downloaded, copied changed local file into conflict file La version du serveur est téléchargée, les changements locaux ont été copiés dans un fichier conflit. + + Unknown Inconnu + Updated end-to-end encryption metadata Métadonnées de chiffrement de bout en bout mises à jour + Updated local metadata Métadonnées locales mises à jour + Updated local virtual files metadata Métadonnées des fichiers virtuels locaux mises à jour + Updating end-to-end encryption metadata Mise à jour des métadonnées de chiffrement de bout en bout + Updating local metadata Mise à jour des méta-données locales + Updating local virtual files metadata Mise à jour des méta-données des fichiers virtuels + Uploaded Téléversé + Uploading Téléversement + Virtual file created Fichier virtuel créé - - updating local virtual files metadata - Mise à jour des métadonnées des fichiers virtuels locaux - ProxySettings + Form Formulaire + Host Hôte + Manually specify proxy Spécifier manuellement le serveur proxy + No proxy Aucun serveur proxy + Note: proxy settings have no effects for accounts on localhost Remarque : les paramètres de proxy n'ont aucun effet sur les comptes locaux + Proxy Settings Paramètres de serveur proxy + Proxy server requires authentication Le serveur proxy requiert une authentification + Use system proxy Utiliser le proxy système QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1 : %2 - + %nd delay in days after an activity @@ -5444,6 +6663,7 @@ Le serveur a répondu avec l'erreur : %2 + %nh delay in hours after an activity @@ -5452,6 +6672,7 @@ Le serveur a répondu avec l'erreur : %2 + %nmin delay in minutes after an activity @@ -5460,174 +6681,222 @@ Le serveur a répondu avec l'erreur : %2 + 1min one minute after activity date and time 1min - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. + + Some time ago + Il y a quelque temps - Could not create debug archive in selected location! - Impossible de créer une archive de débogage à l’emplacement sélectionné ! + + in the future + Dans le futur - Error deleting the file - Le fichier est déjà supprimé + + now + A l'instant + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + La répertoire %1 ne peut pas faire partie de votre répertoire de synchronisation. Veuillez choisir un autre dossier. + + + + New folder + Nouveau dossier + + Could not create debug archive in selected location! + Impossible de créer une archive de débogage à l’emplacement sélectionné ! + + + Failed to create debug archive Échec de création de l’archive de débogage - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Il semble que vous utilisiez un proxy nécessitant une authentification. Veuillez vérifier vos paramètres et vos identifiants de proxy. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + + Synced %1 + %1 a été synchronisé - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - La connexion au serveur prend trop de temps. Veuillez réessayer ultérieurement. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + + You changed %1 + Vous avez modifié %1 - New folder - Nouveau dossier + + You created %1 + Vous avez créé %1 - Paths beginning with '#' character are not supported in VFS mode. - Les chemins commençant par le caractère « # » ne sont pas pris en charge dans le mode VFS. + + You deleted %1 + Vous avez supprimé %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Les fichiers du serveur ont été modifiés pendant votre travail. Veuillez réessayer la synchronisation. Contactez l'administrateur de votre serveur si le problème persiste. + + You renamed %1 + Vous avez renommé %1 - Some time ago - Il y a quelque temps + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Une erreur inattendue est survenue. Veuillez réessayer la synchronisation ou contacter l'administrateur de votre serveur si le problème persiste. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Un problème est survenu sur le serveur. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur si le problème persiste. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Il semble que vous utilisiez un proxy nécessitant une authentification. Veuillez vérifier vos paramètres et vos identifiants de proxy. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. - Synced %1 - %1 a été synchronisé + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + La connexion au serveur prend trop de temps. Veuillez réessayer ultérieurement. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - L'adresse utilisée pour effectuer la requête est trop longue pour être gérée par le serveur. Veuillez essayer de raccourcir les informations envoyées ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Les fichiers du serveur ont été modifiés pendant votre travail. Veuillez réessayer la synchronisation. Contactez l'administrateur de votre serveur si le problème persiste. - The directory %1 cannot be part of your sync directory. Please choose another folder. - La répertoire %1 ne peut pas faire partie de votre répertoire de synchronisation. Veuillez choisir un autre dossier. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Un problème est survenu sur le serveur. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur si le problème persiste. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + L'adresse utilisée pour effectuer la requête est trop longue pour être gérée par le serveur. Veuillez essayer de raccourcir les informations envoyées ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Le fichier est trop volumineux pour être téléchargé. Vous devrez peut-être choisir un fichier plus petit ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. La demande n'a pas pu être traitée car certaines conditions requises n'étaient pas remplies. Veuillez réessayer la synchronisation ultérieurement. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. La demande prend plus de temps que d'habitude. Veuillez réessayer la synchronisation. Si cela ne fonctionne toujours pas, contactez l'administrateur de votre serveur. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. La ressource à laquelle vous tentez d'accéder est actuellement verrouillée et ne peut pas être modifiée. Veuillez essayer de la modifier ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. Le serveur n'a pas pu traiter votre demande car certaines informations étaient incorrectes ou incomplètes. Veuillez réessayer la synchronisation ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. Le serveur ne dispose pas de suffisamment d'espace pour traiter votre demande. Veuillez vérifier le quota de votre utilisateur en contactant l'administrateur de votre serveur. + The server does not recognize the request method. Please contact your server administrator for help. Le serveur ne reconnaît pas la méthode de requête. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. + The server does not support the version of the connection being used. Contact your server administrator for help. Le serveur ne prend pas en charge la version de la connexion utilisée. Contactez votre administrateur serveur pour obtenir de l'aide. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + This file type isn’t supported. Please contact your server administrator for assistance. Ce type de fichier n'est pas pris en charge. Veuillez contacter l'administrateur de votre serveur pour obtenir de l'aide. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. Ce dossier ou fichier n'est plus disponible. Si vous avez besoin d'aide, veuillez contacter l'administrateur de votre serveur. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. Cette demande n'a pas pu être traitée car certaines conditions requises sont manquantes. Veuillez réessayer ultérieurement ou contacter l'administrateur de votre serveur pour obtenir de l'aide. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. Nous n'avons pas trouvé ce que vous cherchiez. Il a peut-être été déplacé ou supprimé. Si vous avez besoin d'aide, contactez l'administrateur de votre serveur. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. Nous n'avons pas pu traiter votre demande. Veuillez réessayer la synchronisation ultérieurement. Si le problème persiste, contactez l'administrateur de votre serveur pour obtenir de l'aide. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. Nous rencontrons des difficultés de connexion au serveur. Veuillez réessayer prochainement. Si le problème persiste, votre administrateur serveur pourra vous aider. - You changed %1 - Vous avez modifié %1 - - - You created %1 - Vous avez créé %1 - - - You deleted %1 - Vous avez supprimé %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. Vous n'avez pas accès à cette ressource. Si vous pensez qu'il s'agit d'une erreur, veuillez contacter l'administrateur de votre serveur. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. Vous n'êtes pas autorisé à accéder à cette ressource. Si vous pensez qu'il s'agit d'une erreur, contactez l'administrateur de votre serveur pour obtenir de l'aide. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. Vous avez effectué trop de requêtes. Veuillez patienter et réessayer. Si ce problème persiste, votre administrateur serveur peut vous aider. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. Vous devez vous connecter pour continuer. Si vous rencontrez des problèmes avec vos identifiants, veuillez contacter l'administrateur de votre serveur. - You renamed %1 - Vous avez renommé %1 - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Votre réseau nécessite une authentification supplémentaire. Veuillez vérifier votre connexion. Contactez l'administrateur de votre serveur si le problème persiste. - in the future - Dans le futur + + Error deleting the file + Le fichier est déjà supprimé - now - A l'instant + + %1: %2 + this displays an error string (%2) for a file %1 + %1 : %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + Les chemins commençant par le caractère « # » ne sont pas pris en charge dans le mode VFS. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5636,26 +6905,32 @@ Le serveur a répondu avec l'erreur : %2 + All local versions Toutes les versions locales + All server versions Toutes les versions serveur + Cancel Annuler + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Choisissez si vous souhaitez conserver la version locale, la version serveur, ou les deux. Si vous choisissez les deux, un numéro sera ajouté au nom du fichier local. + Resolve conflicts Résoudre les conflits + Solve sync conflicts Résoudre les conflits de synchronisation @@ -5663,6 +6938,7 @@ Le serveur a répondu avec l'erreur : %2 SesErrorBox + Error Erreur @@ -5670,14 +6946,17 @@ Le serveur a répondu avec l'erreur : %2 SesTrayHeader + Open Nextcloud in browser Ouvrir HiDrive Next dans le navigateur + Open local or team folders + Website Site Web @@ -5685,10 +6964,12 @@ Le serveur a répondu avec l'erreur : %2 ShareDelegate + Copied! Copié ! + Share options Options de partage @@ -5696,66 +6977,78 @@ Le serveur a répondu avec l'erreur : %2 ShareDetailsPage + Add another link Ajouter un autre lien + Allow resharing Permettre le repartage + + Allow upload and editing Autoriser le téléversement et l'édition + An error occurred setting the share password. Une erreur est survenue lors de la configuration du mot de passe de partage. + Copy share link Copier le lien + Custom Permissions Autorisations personnalisées + Enter a note for the recipient Saisir une note pour le destinataire - Enter the note to recipient - Saisir la remarque à l’attention du destinataire - - + File drop (upload only) Dépôt de fichiers (téléversement seulement) + Hide download Masquer le téléchargement + Note to recipient Note au destinataire + Password protection Protection par mot de passe + Set expiration date Définir une date d'expiration + Share link copied! Lien copié ! + Unshare Cesser le partage + View only Afficher seulement @@ -5763,10 +7056,12 @@ Le serveur a répondu avec l'erreur : %2 ShareeSearchField + Search for users or groups… Rechercher des utilisateurs ou des groupes... + Sharing is not available for this folder Le partage n'est pas disponible pour ce dossier @@ -5774,30 +7069,37 @@ Le serveur a répondu avec l'erreur : %2 ShareView + Expires in %1 Expire dans %1 + Password required for new share Mot de passe requis pour le nouveau partage + Share password Mot de passe du partage + Shared with you by %1 Partagé avec vous par %1 + Sharing is disabled Le partage est désactivté + Sharing is disabled. Le partage est désactivé. + This item cannot be shared. L'élément ne peut pas être partagé. @@ -5805,6 +7107,7 @@ Le serveur a répondu avec l'erreur : %2 SyncJournalDb + Failed to connect database. Impossible de connecter la base de données. @@ -5812,14 +7115,17 @@ Le serveur a répondu avec l'erreur : %2 SyncStatus + Open browser Ouvrir le navigateur + Resolve conflicts Résoudre les conflits + Sync now Synchroniser maintenant @@ -5827,10 +7133,12 @@ Le serveur a répondu avec l'erreur : %2 TalkReplyTextField + Reply to … Répondre à... + Send reply to chat message Envoyer la réponse dans la discussion @@ -5838,14 +7146,17 @@ Le serveur a répondu avec l'erreur : %2 TermsOfServiceCheckWidget + Logo Logo + Switch to your browser to accept the terms of service Accédez à votre navigateur pour accepter les conditions d'utilisation + Terms of Service Conditions d'utilisation @@ -5853,42 +7164,52 @@ Le serveur a répondu avec l'erreur : %2 theme + Error occurred during setup Une erreur est survenue pendant l'installation + Error occurred during sync Une erreur est survenue pendant la synchronisation + Preparing to sync Préparation à la synchronisation + Stopping sync Arrêt de la synchronisation + Sync is paused La synchronisation est en pause + Sync is running Synchronisation en cours + Sync status is unknown Le statut de synchronisations est inconnu + Sync was successful Synchronisation réussie + Sync was successful but some files were ignored La syncronisation a réussi mais certains fichiers ont été ignorés + Waiting to start syncing En attente du démarrage de la synchronisation @@ -5896,30 +7217,37 @@ Le serveur a répondu avec l'erreur : %2 TrayFoldersMenuButton + Files Fichiers + Open %1 in file explorer Ouvrir %1 dans l'explorateur de fichiers + Open local folder Ouvrir le dossier local + Open local folder "%1" Ouvrir le dossier local « %1 » + Open local or team folders + Open team folder "%1" Ouvrir le dossier d’équipe « %1 » + User group and local folders menu Menu de groupe d'utilisateurs et dossiers locaux @@ -5927,42 +7255,52 @@ Le serveur a répondu avec l'erreur : %2 TrayWindowAccountMenu + Account switcher and settings menu Sélecteur de compte et menu de paramètres + Add account Ajouter un compte + Current account Compte actuel + Current account avatar Avatar du compte actuel + Current account status is do not disturb Le statuts de compte actuel est ne pas déranger + Current account status is online Le statuts de compte actuel est en ligne + Exit Quitter + Pause sync for all Mettre en pause la synchronisation pour tous + Resume sync for all Reprendre la synchronisation pour tous + Settings Paramètres @@ -5970,14 +7308,17 @@ Le serveur a répondu avec l'erreur : %2 TrayWindowHeader + More apps Plus d'applis + Open %1 in browser Ouvrir %1 dans le navigateur + Open local or team folders @@ -5985,22 +7326,27 @@ Le serveur a répondu avec l'erreur : %2 TrayWindowHeaderBar + More apps Plus d'applis + Open %1 in browser Ouvrir %1 dans le navigateur + Open Nextcloud in browser Ouvrir HiDrive Next dans le navigateur + Open local or team folders + Website Site Web @@ -6008,6 +7354,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchInputContainer + Search files, messages, events … Rechercher des fichiers, des messages, des événements … @@ -6015,6 +7362,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchPlaceholderView + Start typing to search Commencez à écrire pour rechercher @@ -6022,6 +7370,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultFetchMoreTrigger + Load more results Charger plus de résultats @@ -6029,6 +7378,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Squelette de résultat de recherche. @@ -6036,6 +7386,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultListItem + Load more results Charger plus de résultats @@ -6043,6 +7394,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultNothingFound + No results for Aucun résultat pour @@ -6050,6 +7402,7 @@ Le serveur a répondu avec l'erreur : %2 UnifiedSearchResultSectionItem + Search results section %1 Section de résultats de recherche %1 @@ -6057,22 +7410,29 @@ Le serveur a répondu avec l'erreur : %2 UserLine + Account actions Actions du compte + + Log in Se connecter + + Log out Se déconnecter + Remove account Retirer le compte + Switch to account Utiliser ce compte @@ -6080,26 +7440,32 @@ Le serveur a répondu avec l'erreur : %2 UserStatusMessageView + Apply Appliquer + Cancel Annuler + Clear Effacer + Clear status message after Effacer le message de statut après + Status message Message de statut + What is your status? Quel est votre statut ? @@ -6107,38 +7473,47 @@ Le serveur a répondu avec l'erreur : %2 UserStatusSetStatusView + Appear offline Apparaître hors ligne + Away Absent + Busy Occupé + Do not disturb Ne pas déranger + Invisible Invisible + Mute all notifications Désactiver toutes les notifications + Online En ligne + Online status Statut de connexion + Status message Message de statut @@ -6146,30 +7521,37 @@ Le serveur a répondu avec l'erreur : %2 Utility + %1 %2 %1 %2 + %L1 B %L1 octets + %L1 GB %L1 Go + %L1 KB %L1 Ko + %L1 MB %L1 Mo + %L1 TB %L1 To + %n day(s) %n jour @@ -6177,6 +7559,7 @@ Le serveur a répondu avec l'erreur : %2 + %n hour(s) %n heures @@ -6184,6 +7567,7 @@ Le serveur a répondu avec l'erreur : %2 + %n minute(s) %n minute @@ -6191,6 +7575,7 @@ Le serveur a répondu avec l'erreur : %2 + %n month(s) %n mois @@ -6198,6 +7583,7 @@ Le serveur a répondu avec l'erreur : %2 + %n second(s) %n seconde @@ -6205,6 +7591,7 @@ Le serveur a répondu avec l'erreur : %2 + %n year(s) %n an @@ -6215,42 +7602,52 @@ Le serveur a répondu avec l'erreur : %2 utility + Always available locally Toujours disponible localement + Available online only Disponible seulement en ligne + Could not open browser Impossible de démarrer le navigateur + Could not open email client Impossible d'ouvrir le client de messagerie + Currently available locally Actuellement disponible en local + Free up local space Libérer de l'espace local + Make always available locally Toujours rendre disponible localement + Some available online only Certains sont disponibles en ligne seulement + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Une erreur est survenue au lancement du navigateur pour visiter l'adresse %1. Il est possible qu'aucun navigateur par défaut ne soit configuré. + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Il y a eu une erreur lors du lancement du client de messagerie pour créer un nouveau message. Peut-être qu'aucun client de messagerie n'est configuré ? @@ -6258,14 +7655,17 @@ Le serveur a répondu avec l'erreur : %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" L’en-tête de somme de contrôle contenait un type de somme de contrôle inconnu « %1 » + The checksum header is malformed. L’en-tête de la somme de contrôle est mal formé. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" Le fichier téléchargé ne correspond pas à la somme de contrôle, il sera repris. "%1" != "%2" diff --git a/translations/client_it.ts b/translations/client_it.ts index 76a82e7abd63f..f52fadf748403 100644 --- a/translations/client_it.ts +++ b/translations/client_it.ts @@ -1,55 +1,14 @@ - - - - Agree - Consenti - - - Back - Indietro - - - Necessary data - Dati necessari - - - Required to ensure that the software can be used as expected - Necessario per garantire che il software possa essere utilizzato come previsto. - - - Save Settings - Salva le impostazioni - - - Send anonymous use - Invia l'uso anonimo - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. - - ActivityItem + In %1 In %1 + Open %1 locally Apri %1 localmente @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Annulla + Open file details Apri i dettagli del file @@ -68,40 +29,40 @@ ActivityList + Activity list Lista attività + No activities yet Ancora nessuna attività + Scroll to top Scorri verso l'alto - - BasicComboBox - - Clear status message menu - Cancella messaggio di stato - - CallNotificationDialog + Answer Talk call notification Notifica di risposta chiamata Talk + Decline Rifiuta + Decline Talk call notification Notifica di rifiuto chiamata Talk + Talk notification caller avatar Avatar chiamante notifica Talk @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Controllo delle modifiche in "%1" + Help Aiuto + Log out Esci + + No recently changed files Nessun file modificato di recente + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Apri %1 Desktop + Open in browser Apri nel browser + Pause synchronization Sospendi la sincronizzazione + Quit sync client Chiudi il client di sincronizzazione + Recently changed Modificati di recente + Settings Impostazioni + Sync paused La sincronizzazione è sospesa + Syncing Sincronizzazione + Syncing %1 Sincronizzazione di %1 + Syncing %1 (%2 left) Sincronizzazione di %1 (%2 rimanenti) + Syncing %1 of %2 Sincronizzazione di %1 di %2 + Syncing %1 of %2 (%3 left) Sincronizzazione%1 di %2 (%3 rimasto) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Versione locale + Server version Versione del server @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Menu di cambio account e impostazioni + Add account Aggiungi account + Add new account Aggiungi nuovo account + Current account Account corrente + Current account avatar Avatar dell'account corrente + Current account status is do not disturb Lo stato attuale dell'account è "non disturbare" + Current account status is online Lo stato attuale dell'account è online + Exit Uscita + + Pause sync for all Sospendi la sincronizzazione per tutti + + Resume sync for all Riprendi la sincronizzazione per tutti + Settings Impostazioni @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Apertura file per modifica in locale @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis Nessun emoji recente @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Scoperta dei certificati archiviati sul tuo token USB @@ -260,6 +257,7 @@ ErrorBox + Error Errore @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss Annulla @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 Dettagli file di %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Copie locali + Reload Ricarica + Remove local copies Rimuovi copie locali - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - La sincronizzazione veloce sincronizzerà cambiamenti solo sui file e cartelle che sono stati esplorati. Questo migliorarerà sensibilmente la responsività, specie al primo avvio coi file virtuali. Per contro, causerà lo scaricamento ripetuto di file spostati verso una cartella inesplorata. - - FileProviderFileDelegate + Delete Cancella @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Abilita i file virtuali + General settings Impostazioni generali + Reset virtual files environment Reimposta l'ambiente dei file virtuali - Signal file provider domain - Dominio del fornitore del file di segnale - - + Virtual files settings Impostazioni dei file virtuali @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB di %2 GB file remoti sincronizzati - Evict local copies... - Evita copie locali... - - + Free up space … Liberare spazio … + Local storage use Utilizzo del disco locale @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! Tutto sincronizzato! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Richiedi una sincronizzazione delle modifiche per l'ambiente VFS. macOS potrebbe ignorare o ritardare questa richiesta. + Request sync Richiesta di sincronizzazione + Syncing Sincronizzazione @@ -373,10 +373,12 @@ macOS potrebbe ignorare o ritardare questa richiesta. FileSystem + Could not remove folder "%1" Impossibile rimuovere la cartella "%1" + Error removing "%1": %2 Errore durante la rimozione di "%1": %2 @@ -384,22 +386,28 @@ macOS potrebbe ignorare o ritardare questa richiesta. Flow2AuthWidget + + An error occurred while connecting. Please try again. Si è verificato un errore durante la connessione. Prova ancora. + Browser Authentication Autenticazione browser + Copy Link Copia collegamento + Logo Logo + Switch to your browser to connect your account Passa al tuo browser per connetterti all'account @@ -407,10 +415,12 @@ macOS potrebbe ignorare o ritardare questa richiesta. FolderWizardSelectiveSync + Add Folder Sync Aggiungi cartella di sincronizzazione + Step 3 of 3: Selektive Synchronisation Fase 3 di 3: sincronizzazione selettiva @@ -418,18 +428,22 @@ macOS potrebbe ignorare o ritardare questa richiesta. FolderWizardSourcePage + &Choose S&cegli + Add Folder Sync Aggiungi cartella di sincronizzazione + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selezionare una cartella sul disco rigido che deve essere collegata in modo permanente al %1. Tutti i file e le sottocartelle vengono caricati e sincronizzati automaticamente. + Step 1 of 3: Select local folder Passo 1 di 3: selezionare la cartella locale @@ -437,30 +451,37 @@ macOS potrebbe ignorare o ritardare questa richiesta. FolderWizardTargetPage + Add Folder Sync Aggiungi cartella di sincronizzazione + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Le due cartelle sono collegate in modo permanente e i rispettivi contenuti vengono sincronizzati e aggiornati automaticamente. + Create folder Crea cartella + Folders Cartelle + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Selezionare o creare una cartella di destinazione nel proprio %1 in cui caricare e sincronizzare il contenuto. + Refresh Aggiorna + Step 2 of 3: Directory in your %1 Fase 2 di 3: directory nel vostro %1 @@ -468,14 +489,17 @@ macOS potrebbe ignorare o ritardare questa richiesta. MainWindow + Main content Contenuto principale + New activities Nuove attività + Unified search results list Elenco dei risultati di ricerca unificato @@ -483,6 +507,7 @@ macOS potrebbe ignorare o ritardare questa richiesta. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Realizzato dalla revisione Git <a href="%1">%2</a> su %3, %4 usando Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS potrebbe ignorare o ritardare questa richiesta. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. + The server enforces strict transport security and does not accept untrusted certificates. Il server applica una rigorosa sicurezza di trasporto e non accetta certificati non attendibili. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Il server ha impiegato troppo tempo per rispondere. Controlla la connessione e riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. @@ -505,18 +533,22 @@ macOS potrebbe ignorare o ritardare questa richiesta. OCC::Account + File %1 is already locked by %2. File %1 è già bloccato da %2. + Lock operation on %1 failed with error %2 Operazione di blocco di %1 fallita con errore %2 + Public Share Link Collegamento di condivisione pubblico + Unlock operation on %1 failed with error %2 Operazione di sblocco di %1 fallita con errore %2 @@ -524,30 +556,30 @@ macOS potrebbe ignorare o ritardare questa richiesta. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 account trovati da una versione precedente del client desktop. - Importare gli account? - - + An account was detected from a legacy desktop client. Should the account be imported? È stato rilevato un account da un client desktop legacy. L'account deve essere importato? + Could not import accounts from legacy client configuration. Importazione account fallita da una configurazione di client obsoleto. + Import Importa + + Legacy import Importazione obsoleta + Skip Salta @@ -555,310 +587,333 @@ L'account deve essere importato? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) di %2 in uso. Alcune cartelle, incluse quelle montate in rete o le cartelle condivise, potrebbero avere limiti diversi. + %1 as %2 %1 come %2 + %1 in use %1 in uso + %1 of %2 in use %1 di %2 in uso + (experimental) (sperimentale) + <p>Could not create local folder <i>%1</i>.</p> <p>Impossibile creare la cartella locale <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vuoi davvero fermare la sincronizzazione della cartella <i>%1</i>?</p><p><b>Nota:</b> ciò <b>non</b> eliminerà alcun file.</p> - Apply - Applica - - - Apply manual changes - Applica le modifiche manuali - - + + Availability Disponibilità - Cancel - Annulla - - + Choose what to sync Scegli cosa sincronizzare + Confirm Folder Sync Connection Removal Conferma rimozione connessione di sincronizzazione cartelle + Connected to %1. Connesso a %1. - Connected with <server> as <user> - Connesso a <server> come <user> - - + Connecting to %1 … Connessione a %1… - Connection settings - Impostazioni di connessione - - + Could not encrypt folder because the folder does not exist anymore Impossibile crittografare la cartella perchè non esiste più + + Create new folder Crea una nuova cartella + Currently there is no storage usage information available. Non ci sono informazioni disponibili sull'utilizzo dello spazio di archiviazione. + Disable support Disabilita supporto + Disable virtual file support … Disabilita il supporto dei file virtuali… + Disable virtual file support? Vuoi disabilitare il supporto dei file virtuali? + Display mnemonic Visualizza mnemonico + + Do not encrypt folder Non cifrare la cartella + Do you want to forget the end-to-end encryption settings for %1 on this device? Vuoi dimenticare le impostazioni di crittografia end-to-end per %1 su questo dispositivo? + + Edit Ignored Files Modifica file ignorati + Enable virtual file support %1 … Abilita supporto dei file virtuali %1… + Encrypt Cifra + + Encrypt folder Cifra cartella + Encryption failed Cifratura fallita + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. La crittografia è impostata. Ricordati di <b>Crittografare</b> una cartella per crittografare end-to-end tutti i nuovi file aggiunti ad essa. + End-to-end Encryption Cifratura end-to-end + End-to-end Encryption with Virtual Files Cifratura end-to-end con file virtuali + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. La crittografia end-to-end è stata inizializzata su questo account con un altro dispositivo. <br>Inserisci il codice mnemonico univoco per sincronizzare le cartelle crittografate anche su questo dispositivo. + End-to-end encryption has not been initialized on this account. La crittografia end-to-end non è stata inizializzata su questo account. + End-to-end encryption mnemonic Codice mnemonico per cifratura end-to-end - Expand Memory - Upgrade Storage - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0087 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1046 - - + Folder creation failed Creazione della cartella non riuscita + Force sync now Forza ora la sincronizzazione + Forget encryption setup Dimentica configurazione della crittografia + Forget the end-to-end encryption on this device Dimentica la crittografia end-to-end su questo dispositivo + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Dimenticare la crittografia end-to-end rimuoverà i dati sensibili e tutti i file crittografati da questo dispositivo.<br>Tuttavia, i file crittografati rimarranno sul server e su tutti gli altri dispositivi, se configurati. + Migrate certificate to a new one Migrare il certificato a uno nuovo + No %1 connection configured. Nessuna connessione di %1 configurata. + No account configured. Nessun account configurato. + + Open folder Apri cartella + Pause sync Sospendi la sincronizzazione + Please wait for the folder to sync before trying to encrypt it. Attendi che la cartella si sincronizzi prima di tentare di cifrarla. + Remove Folder Sync Connection Rimuovi connessione di sincronizzazione cartelle + Remove folder sync connection Rimuovi connessione di sincronizzazione cartelle + Restart sync Riavvia sincronizzazione + Resume sync Riprendi la sincronizzazione + Server %1 is currently being redirected, or your connection is behind a captive portal. Il server %1 è sotto redirezione o la connessione è tramite captive portal. + Server %1 is currently in maintenance mode. Il Server %1 è attualmente in manutenzione + Server %1 is temporarily unavailable. Il server %1 è temporaneamente non disponibile. + Server configuration error: %1 at %2. Errore di configurazione del server: %1 in %2. + Set up encryption Configura la cifratura + Signed out from %1. Disconnesso da %1. - Standard file sync - Sincronizzazione file standard - - + Storage space %1% occupied Spazio di Storage %1% occupato - Storage space: … - Spazio di archiviazione: ... - - + Sync Running La sincronizzazione è in corso - Synchronize all - Sincronizza tutto - - - Synchronize none - Non sincronizzare - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully La cartella ha un problema minore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully La cartella ha un errore di sincronizzazione. La cifratura di questa cartella sarà possibile dopo la sincronizzazione + The server version %1 is unsupported! Proceed at your own risk. La versione %1 del server non è supportata! Continua a tuo rischio. + The syncing operation is running.<br/>Do you want to terminate it? L'operazione di sincronizzazione è in corso.<br/>Vuoi terminarla? + There are folders that have grown in size beyond %1MB: %2 Ci sono cartelle che sono cresciute di spazio superando %1MB: %2 + There are folders that were not synchronized because they are external storages: Ci sono nuove cartelle che non sono state sincronizzate poiché sono archiviazioni esterne: + There are folders that were not synchronized because they are too big or external storages: Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi o archiviazioni esterne: + There are folders that were not synchronized because they are too big: Ci sono nuove cartelle che non sono state sincronizzate poiché sono troppo grandi: + This account supports end-to-end encryption, but it needs to be set up first. Questo account supporta la crittografia end-to-end, ma è necessario prima configurarla. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -871,67 +926,129 @@ L'unico vantaggio di disabilitare il supporto dei file virtuali è che la f Questa azione interromperà qualsiasi sincronizzazione attualmente in esecuzione. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Verrà cifrata la cartella e tutti i file al suo interno. Questi file non saranno più accessibili senza la tua chiave mnemonica di crittografia. <b>Questo processo è irreversibile. Vuoi davvero procedere?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. Per proteggere la tua Identità Crittografica, la criptiamo con un codice mnemonico di 12 parole del dizionario. Annotalo e conservalo in un luogo sicuro. Ti servirà per configurare la sincronizzazione delle cartelle crittografate sugli altri tuoi dispositivi. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - Per proteggere la tua identità crittografica, la cifriamo con un codice mnemonico di 12 parole di dizionario. Annotale e tienile al sicuro. Saranno necessarie per aggiungere altri dispositivi al tuo account (come il tuo smartphone o il portatile). - - + Unable to connect to %1. Connessione non riuscita a %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Le cartelle non marcate saranno <b>rimosse</b> dal file system locale e non saranno sincronizzate più con questo computer - - - Virtual file sync - Sincronizzazione con file virtuali - - + Warning Avviso + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. Non puoi cifrare una cartella con contenuti, rimuovi i file. Attendi la nuova sincronizzazione, quindi cifrala. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? Non puoi crittografare questa cartella perché la crittografia end-to-end non è ancora configurata su questo dispositivo. Vuoi farlo ora? + You need to accept the terms of service at %1. È necessario accettare i termini di servizio su %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Sembra che tu abbia la funzione File Virtuali attiva in questa cartella. Al momento, non è possibile scaricare implicitamente file virtuali che sono cifrati end-to-end. Per avere la migliore esperienza con i file virtuali e la crittografia end-to-end, assicurati che la cartella cifrata sia contrassegnata con "Rendi sempre disponibile in locale". - + + + Apply + Applica + + + + Apply manual changes + Applica le modifiche manuali + + + + + + Cancel + Annulla + + + + Connected with <server> as <user> + Connesso a <server> come <user> + + + + Connection settings + Impostazioni di connessione + + + + Expand Memory + Upgrade Storage + + + + Standard file sync + Sincronizzazione file standard + + + + + Storage space: … + Spazio di archiviazione: ... + + + + Synchronize all + Sincronizza tutto + + + + Synchronize none + Non sincronizzare + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Le cartelle non marcate saranno <b>rimosse</b> dal file system locale e non saranno sincronizzate più con questo computer + + + + Virtual file sync + Sincronizzazione con file virtuali + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accesso negato dal server. Per verificare di avere i permessi appropriati, <a href="%1">fai clic qui</a> per accedere al servizio con il tuo browser. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. + There was an invalid response to an authenticated WebDAV request Ricevuta una risposta non valida a una richiesta WebDAV autenticata @@ -939,46 +1056,57 @@ Vuoi farlo ora? OCC::AccountState + Asking Credentials Richiesta credenziali + Configuration error Errore di configurazione + Connected Connesso + Disconnected Disconnesso + Maintenance mode Modalità Manutenzione + Need the user to accept the terms of service È necessario che l'utente accetti i termini del servizio + Network error Errore di rete + Redirect detected Rilevata redirezione + Service unavailable Servizio non disponibile + Signed out Disconnesso + Unknown account state Stato dell'account sconosciuto @@ -986,14 +1114,17 @@ Vuoi farlo ora? OCC::ActivityListModel + Fetching activities … Recupero attività … + For more activities please open the Activity app. Per altre attività, apri l'applicazione Attività. + Network error occurred: client will retry syncing. Errore di rete: il client ritenterà la sincronizzazione. @@ -1001,34 +1132,42 @@ Vuoi farlo ora? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + File di certificato (*.p12 *.pfx) + + + + Select a certificate + Seleziona un certificato + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Si consiglia vivamente un bundle pkcs12 cifrato poiché una copia sarà archiviata nel file di configurazione. + Browse … Sfoglia... + Certificate & Key (pkcs12): Certificato e chiave (pkcs12): - Certificate files (*.p12 *.pfx) - File di certificato (*.p12 *.pfx) - - + Certificate password: Password del certificato: + SSL client certificate authentication Autenticazione con certificato client SSL - Select a certificate - Seleziona un certificato - - + This server probably requires a SSL client certificate. Questo server richiede probabilmente un certificato client SSL. @@ -1036,32 +1175,39 @@ Vuoi farlo ora? OCC::Application + %1 accounts number of accounts imported %1 account + %1 folders number of folders imported %1 cartelle + 1 account 1 account + 1 folder 1 cartella + Continue Continua + Error accessing the configuration file Errore accedendo al file di configurazione + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1069,35 +1215,43 @@ Vuoi farlo ora? %3 + Legacy import Importazione obsoleta + Quit Esci + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Alcune impostazioni sono state configurate nelle versioni %1 di questo client e utilizzano funzionalità che non sono disponibili in questa versione. <br><br> Continuare significherà <b>%2 queste impostazioni </b>. <br><br>Il file di configurazione attuale è stato backuppato su <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Si è verificato un errore durante l'accesso al file di configurazione su %1. Assicurati che il file sia accessibile dal tuo account di sistema. + deleting eliminare + ignoring ignorare + newer newer software version mai + older older software version più vecchio @@ -1106,18 +1260,22 @@ Vuoi farlo ora? OCC::AuthenticationDialog + &Password: &Password: + &Username: Nome &utente: + Authentication Required Autenticazione richiesta + Enter username and password for "%1" at %2. Digita nome utente e password per "%1" su %2. @@ -1125,10 +1283,12 @@ Vuoi farlo ora? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 Sblocco non riuscito per la cartella cifrata %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". @@ -1136,18 +1296,22 @@ Vuoi farlo ora? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Errore durante l'aggiornamento dei metadati: %1 + File %1 can not be downloaded because of a local file name clash! Il file %1 non può essere scaricato a causa di un conflitto di nomi di file locali! + The file %1 is currently in use Il file %1 è attualmente in uso + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Impossibile aggiornare i metadati del nuovo file%1. @@ -1156,50 +1320,63 @@ Vuoi farlo ora? OCC::BulkPropagatorJob + Error updating metadata: %1 Errore di aggiornamento dei metadati: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Il file %1 non può essere caricato poiché esiste un altro file con lo stesso nome, ma con differenze tra maiuscole e minuscole + File %1 has invalid modification time. Do not upload to the server. Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. + File %1 has invalid modified time. Do not upload to the server. Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. + File Removed (start upload) %1 File rimosso (avvio caricamento) %1 + File contains leading or trailing spaces and couldn't be renamed Il file contiene spazi iniziali o finali e non può essere rinominato + + Local file changed during sync. File locale modificato durante la sincronizzazione. + Local file changed during syncing. It will be resumed. File locale modificato durante la sincronizzazione. Verrà ricaricato. + Network error: %1 Errore di rete: %1 + Restoration failed: %1 Ripristini non riusciti: %1 + The file %1 is currently in use Il file %1 è attualmente in uso + The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. @@ -1207,30 +1384,37 @@ Vuoi farlo ora? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Impossibile rinominare il file perché ne esiste già uno con lo stesso nome sul server. Scegli un altro nome. + Could not rename file. Please make sure you are connected to the server. Impossibile rinominare il file. Assicurati di essere connesso al server. + Failed to fetch permissions with error %1 Recupero dei permessi fallito con errore %1 + Filename contains leading and trailing spaces. Il nome del file contiene spazi all'inizio e alla fine. + Filename contains leading spaces. Il nome del file contiene spazi all'inizio. + Filename contains trailing spaces. Il nome del file contiene spazi alla fine. + You don't have the permission to rename this file. Please ask the author of the file to rename it. Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. @@ -1238,86 +1422,111 @@ Vuoi farlo ora? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 non supporta nomi di file che differiscono solo per caratteri maiuscoli/minuscoli + + Filename contains illegal characters: %1 + Il nome del file contiene caratteri non consentiti: %1 + + + + Filename contains leading and trailing spaces. + Il nome del file contiene spazi all'inizio e alla fine. + + + + Filename contains leading spaces. + Il nome del file contiene spazi all'inizio. + + + + Filename contains trailing spaces. + Il nome del file contiene spazi alla fine. + + + + Rename file + Rinomina file + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + l file "%1" non può essere sincronizzato per un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. + + + + Use invalid name + Usa il nome non valido + + + + 0 byte 0 byte + Case Clash Conflict Confltto su maiuscole/minuscole + Case clashing file File con conflitto maiuscole/minuscole + Error Errore + Existing file File esistente - Filename contains illegal characters: %1 - Il nome del file contiene caratteri non consentiti: %1 - - - Filename contains leading and trailing spaces. - Il nome del file contiene spazi all'inizio e alla fine. - - - Filename contains leading spaces. - Il nome del file contiene spazi all'inizio. - - - Filename contains trailing spaces. - Il nome del file contiene spazi alla fine. - - + New filename Nuovo nome del file + + Open clashing file Apri il file conflittante + + Open existing file Apri file esistente + Please enter a new name for the clashing file: Inserisci un nuovo nome per il file conflittante: - Rename file - Rinomina file - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - l file "%1" non può essere sincronizzato per un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. Il file non può essere sincronizzato perché genera un conflitto di maiuscole/minuscole con un altro file già esistente nel sistema. - Use invalid name - Usa il nome non valido - - + file A file A + file B file B + + today oggi @@ -1325,6 +1534,7 @@ Vuoi farlo ora? OCC::CleanupPollsJob + Error writing metadata to the database Errore durante la scrittura dei metadati nel database @@ -1332,27 +1542,33 @@ Vuoi farlo ora? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: Inserisci il PIN del token USB del certificato: + Enter E2E passphrase Digita la frase segreta E2E + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Inserisci il codice PIN + Invalid PIN. Login failed PIN non valido. Accesso non riuscito + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! L'accesso al token non è riuscito dopo aver fornito il PIN utente. Potrebbe essere non valido o sbagliato. Riprova! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Digita la tua frase segreta per la crittografia end-to-end:<br><br> Utente: %2<br>Account: %3<br> @@ -1360,66 +1576,87 @@ Vuoi farlo ora? OCC::ConflictDialog - 0 byte - 0 byte - - - <a href="%1">Open local version</a> - <a href="%1">Apri versione locale</a> - - - <a href="%1">Open server version</a> - <a href="%1">Apri versione del server</a> - - - Click to open the file - Fai clic per aprire il file - - - Conflicting versions of %1. - Versioni in conflitto di %1. - - + Keep both versions Mantieni entrambi le versioni + Keep local version Mantieni la versione locale + + Keep selected version Mantieni la versione selezionata + Keep server version Mantieni la versione del server - Local version - Versione locale - - + Open local version Apri la versione locale + Open server version Apri la versione del server + + + 0 byte + 0 byte + + + + <a href="%1">Open local version</a> + <a href="%1">Apri versione locale</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Apri versione del server</a> + + + + + Click to open the file + Fai clic per aprire il file + + + + + Conflicting versions of %1. + Versioni in conflitto di %1. + + + + Local version + Versione locale + + + Server version Versione del server + Sync Conflict Conflitto di sincronizzazione + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Quale versione del file vuoi mantenere?<br/>Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file locale. + + today oggi @@ -1427,22 +1664,29 @@ Vuoi farlo ora? OCC::ConflictSolver + Confirm deletion Conferma l'eliminazione + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vuoi eliminare la cartella <i>%1</i> e il suo contenuto definitivamente? + Do you want to delete the file <i>%1</i> permanently? Vuoi eliminare il file <i>%1</i> definitivamente? + + Error Errore + + Moving file failed: %1 @@ -1454,27 +1698,33 @@ Vuoi farlo ora? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Errore di autenticazione: nome utente o password errati. + No %1 account configured The placeholder will be the application name. Please keep it Nessun %1 account configurato + Please update to the latest server and restart the client. Aggiorna all'ultima versione del server e riavvia il client. + The configured server for this client is too old Il server configurato per questo client è troppo datato + The provided credentials are not correct Le credenziali fornite non sono corrette + Timeout Scadenza @@ -1482,68 +1732,83 @@ Vuoi farlo ora? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. + + + Agree Consenti + Form Modulo + Settings Impostazioni - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://wl.hidrive.com/easy/0035'>politica sulla privacy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Questa applicazione utilizza tecnologie di tracciamento. Facendo clic su Accetto, si accetta il trattamento dei propri dati anonimizzati. È possibile modificare le proprie scelte in qualsiasi momento tramite le impostazioni. <br/> <br/>Informazioni sul trattamento dei dati e altro ancora sono disponibili nella nostra <a href='https://static.hidrive.com/next/1004'>politica sulla privacy</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. + + + Back Indietro + Form Modulo + Necessary data Dati necessari + Required to ensure that the software can be used as expected Necessario per garantire che il software possa essere utilizzato come previsto. + Save Settings Salva le impostazioni + Send anonymous use Invia l'uso anonimo + This helps us to optimize the software and to better identify system crashes and unexpected errors. Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Raccogliamo dati anonimizzati per ottimizzare la nostra applicazione. A tale scopo utilizziamo soluzioni software di vari partner. Desideriamo offrirvi piena trasparenza e libertà di scelta in merito alla raccolta e all'elaborazione dei vostri dati anonimizzati. Potete modificare le vostre impostazioni in qualsiasi momento alla voce di menu Protezione dei dati. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Errore nell'annullamento della cancellazione di %1 + Error while canceling deletion of a file Errore nell'annullamento della cancellazione di un file @@ -1551,18 +1816,23 @@ Vuoi farlo ora? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Eerrore nell'impostazione dei metadati di crittografia! + Encrypted metadata setup error: initial signature from server is empty. Errore di configurazione dei metadati crittografati: la firma iniziale del server è vuota. + Server error: PROPFIND reply is not XML formatted! Errore del server: la risposta PROPFIND non è in formato XML! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Il server ha restituito una risposta inaspettata che non è stato possibile leggere. Contatta l'amministratore del server. @@ -1570,22 +1840,27 @@ Vuoi farlo ora? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Cartella non accessibile sul client, permesso negato + Directory not found: %1 Cartella non trovata: %1 + Error while opening directory %1 Errore durante l'apertura della cartella %1 + Error while reading directory %1 Errore durante la lettura della cartella %1 + Filename encoding is not valid La codifica del nome del file non è valida @@ -1593,62 +1868,93 @@ Vuoi farlo ora? OCC::EditLocallyJob + + + An error occurred during data retrieval. Si è verificato un errore nella ricezione dei dati. + + An error occurred during setup. Si è verificato un errore durante il setup. + + An error occurred trying to synchronise the file to edit locally. Si è verificato un errore nella sincronizzazione del file da modificare localmente. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Impossibile trovare un file per modificare in locale. Assicurati che non sia escluso via sinc. selettiva. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossibile trovare un file per modificare in locale. Assicurati che il percorso sia valido e che sia sincronizzato in locale. + Could not find a remote file info for local editing. Make sure its path is valid. Impossibile trovare un file per modificare in locale. Assicurati che il percorso sia valido. + Could not open %1 Impossibile aprire %1 + + + + + + + + Could not start editing locally. Impossibile iniziare la modifica localmente. + File %1 already locked. File %1 già bloccato. + File %1 could not be locked. Impossibile blocare il file %1. + File %1 now locked. File %1 ora bloccato. + Invalid local file path. Percorso locale del file non valido. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Il blocco durerà %1 minuti. Puoi anche sbloccare questo file manualmente una volta finito di modificarlo. + Please try again. Riprova. + Server error: PROPFIND reply is not XML formatted! Errore del server: la risposta PROPFIND non è in formato XML! @@ -1656,10 +1962,12 @@ Vuoi farlo ora? OCC::EditLocallyManager + Could not validate the request to open a file from server. Impossibile convalidare la richiesta di apertura di un file dal server. + Please try again. Riprova. @@ -1667,26 +1975,34 @@ Vuoi farlo ora? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Si è verificato un errore durante il tentativo di verifica della richiesta di modifica locale. + Could not find an account for local editing. Impossibile trovare un account per la modifica locale. + Could not start editing locally. Impossibile avviare la modifica in locale. + Invalid file path was provided. È stato fornito un percorso file non valido. + Invalid token received. È stato ricevuto un token non valido. + + + Please try again. Riprova. @@ -1694,22 +2010,34 @@ Vuoi farlo ora? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Errore nel recupero dell'ID della cartella criptata. + + + + + + Error fetching metadata. Errore nel recupero dei metadati. + + + Error locking folder. Errore durante il blocco della cartella. + Error parsing or decrypting metadata. Errore durante l'elaborazione o decifratura dei metadati. + Failed to upload metadata Caricamento dei metadati non riuscito. @@ -1717,6 +2045,7 @@ Vuoi farlo ora? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Impossibile generare i metadati per la cifratura. Sblocco della cartella. @@ -1726,6 +2055,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1734,6 +2064,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 hour(s) ago hours elapsed since file last modified @@ -1742,6 +2073,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 minute(s) ago minutes elapsed since file last modified @@ -1750,6 +2082,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 month(s) ago months elapsed since file last modified @@ -1758,6 +2091,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 second(s) ago seconds elapsed since file last modified @@ -1766,6 +2100,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 year(s) ago years elapsed since file last modified @@ -1774,6 +2109,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1785,22 +2121,28 @@ Questo può essere un problema delle le tue librerie OpenSSL. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. Si è verificato un errore imprevisto durante il tentativo di accesso al server. Riprova ad accedere più tardi o contatta l'amministratore del server se il problema persiste. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. L'URL del server ritornato non inizia con HTTPS sebbene l'URL di accesso fosse iniziato con HTTPS. L'accesso non sarà possibile perchè può essere un rischio di sicurezza. Contatta il tuo amministratore. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Il server non ha risposto con i dati previsti. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Il server è temporaneamente non disponibile perché è in modalità manutenzione. Riprova al termine della manutenzione. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Non siamo riusciti ad analizzare la risposta del server. Riprova a connetterti più tardi o contatta l'amministratore del server se il problema persiste. @@ -1808,38 +2150,48 @@ Questo può essere un problema delle le tue librerie OpenSSL. OCC::Flow2AuthWidget + Copy Link Copia collegamento + + Error + Link copied to clipboard. Collegamento copiato negli appunti. + Open Browser Apri il browser + Polling for authorization Richiesta di autorizzazione + Starting authorization Avvio autorizzazione + Switch to your browser to connect your account Passa al tuo browser per connetterti all'account + Unable to open the Browser, please copy the link to your Browser. Impossibile aprire il browser, copia il collegamento nel tuo browser. + Waiting for authorization In attesa di autorizzazione @@ -1847,6 +2199,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. OCC::Folder + %1 and %n other file(s) are currently locked. %1 e %n altri file sono attualmente bloccati. @@ -1854,6 +2207,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 and %n other file(s) could not be synced due to errors. See the log for details. 1% e %n altro file non sono stati sincronizzati a causa di errori. Controlla il log per i dettagli. @@ -1861,6 +2215,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 and %n other file(s) have been added. %1 e %n altro file sono stati aggiunti. @@ -1868,6 +2223,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 and %n other file(s) have been removed. %1 e %n altro file è stato rimosso. @@ -1875,6 +2231,7 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 and %n other file(s) have been updated. %1 e %n altro file sono stati aggiornati. @@ -1882,14 +2239,17 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 could not be synced due to an error. See the log for details. %1 non può essere sincronizzato a causa di un errore. Controlla il log per i dettagli. + %1 has a sync conflict. Please check the conflict file! %1 ha un conflitto di sincronizzazione. Controlla il file in conflitto! + %1 has and %n other file(s) have sync conflicts. %1 e %n altro file hanno conflitti di sincronizzazione. @@ -1897,11 +2257,13 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 has been added. %1 names a file. %1 è stato aggiunto. + %1 has been moved to %2 and %n other file(s) have been moved. %1 è stato spostato in %2 e %n altro file sono stati spostati. @@ -1909,15 +2271,18 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 has been moved to %2. %1 è stato spostato in %2. + %1 has been removed. %1 names a file. %1 è stato rimosso. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 è stato rinominato in %2 e %n altro file sono stati rinominati. @@ -1925,30 +2290,36 @@ Questo può essere un problema delle le tue librerie OpenSSL. + %1 has been renamed to %2. %1 and %2 name files. %1 è stato rinominato in %2. + %1 has been updated. %1 names a file. %1 è stato aggiornato. + %1 is currently locked. %1 è attualmente bloccato. + A folder from an external storage has been added. Una nuova cartella da un'archiviazione esterna è stata aggiunta. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Una cartella ha superato il limite di dimensione impostato per la cartella di %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1957,6 +2328,7 @@ Alternatively, you can restore all deleted files by uploading from '%1&apos In alternativa, puoi ripristinare tutti i file eliminati caricandoli dalla cartella '%1' sul server. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1965,10 +2337,12 @@ Alternatively, you can restore all deleted files by downloading them from the se In alternativa, è possibile ripristinare tutti i file eliminati scaricandoli dal server. + A new folder larger than %1 MB has been added: %2. Una nuova cartella più grande di %1 MB è stata aggiunta: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1981,70 +2355,87 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi %1 + Could not read system exclude file Impossibile leggere il file di esclusione di sistema + Keep syncing Continua a sincronizzare + Please choose a different location. %1 isn't a readable folder. Si prega di scegliere una posizione diversa.. %1 non è una cartella leggibile. + Please choose a different location. %1 isn't a valid folder. Si prega di scegliere una posizione diversa. %1 non è una cartella valida. + Please choose a different location. The folder %1 doesn't exist. Si prega di scegliere una posizione diversa. La cartella %1 non esiste. + Please go in the settings to select it if you wish to download it. Vai nelle impostazioni e selezionala se vuoi scaricarla. + Proceed with Deletion Procedi con la cancellazione + Remove all files? Rimuovere tutti i file? + Restore Files from Server Ripristina i file dal server + Restore Files to Server Ripristina i file sul server + Stop syncing Ferma la sincronizzazione + Sync Activity Sincronizza attività + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Il file %1 è stato creato, ma è stato escluso dalla sincronizzazione in precedenza. Non sarà sincronizzato. + The folder %1 has surpassed the set folder size limit of %2MB. La cartella %1 ha superato il limite di dimensione impostato di %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. La cartella %1 è stata creata, ma è stata esclusa dalla sincronizzazione in precedenza. I dati al suo interno non saranno sincronizzati. + Virtual file download failed with code "%1", status "%2" and error message "%3" Download del file virtuale fallito con codice "%1", stato "%2" e messaggio di errore "%3" + Would you like to stop syncing this folder? Vuoi interrompere la sincronizzazione di questa cartella? @@ -2052,26 +2443,32 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi OCC::FolderCreationDialog + %1 Create new folder %1 Crea una nuova cartella + Could not create a folder! Check your write permissions. Impossibile creare una cartella! Controlla i tuoi permessi di scrittura. + + Error + Error + + + Create new folder Crea una nuova cartella + Enter folder name Digita il nome della cartella - Error - Error - - + Folder already exists La cartella esiste già @@ -2079,108 +2476,136 @@ Questo significa che il client di sincronizzazione potrebbe non caricare le modi OCC::FolderMan + %1 (Sync is paused) %1 (La sincronizzazione è sospesa) + (backup %1) (copia di sicurezza %1) + (backup) (copia di sicurezza) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. È stato trovato un vecchio registro di sincronizzazione "%1", ma non può essere rimosso. Assicurati che nessuna applicazione lo stia utilizzando. + Could not reset folder state Impossibile ripristinare lo stato della cartella + Last sync was successful. L'ultima sincronizzazione è stata completata correttamente. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Si prega di scegliere una posizione diversa. %1 è già utilizzato come cartella di sincronizzazione per %2. + + Please choose a different location. %1 is already being used as a sync folder. Si prega di scegliere una posizione diversa. %1 è già utilizzata come cartella di sincronizzazione. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Si prega di scegliere una posizione diversa. %1è già contenuto in una cartella utilizzata come cartella di sincronizzazione. + Please choose a different location. The path %1 doesn't exist. Si prega di scegliere una posizione diversa. Il percorso %1 non esiste. + Please choose a different location. The path %1 isn't a folder. Si prega di scegliere una posizione diversa. Il percorso %1 non è una cartella. + Please choose a different location. The selected folder isn't valid. Seleziona una posizione diversa. La cartella selezionata non è valida. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Seleziona una posizione diversa. Non hai abbastanza permessi per scrivere %1. + Preparing for sync. Preparazione della sincronizzazione. + Setup error. Errore di configurazione. + Sync finished with unresolved conflicts. Sincronizzazione terminata con conflitti non risolti. + Sync is paused. La sincronizzazione è sospesa. + Sync is running. La sincronizzazione è in corso. + Sync request was cancelled. Richiesta di sincronizzazione annullata. + Syncing %1 Sincronizzazione %1 + Syncing %1 (%2 left) Sincronizzazione %1 (%2 rimasto) + Syncing %1 (A few seconds left) Sincronizzazione %1 (Mancano pochi secondi) + Syncing %1 of %2 Sincronizzazione %1 di %2 + Syncing %1 of %2 (%3 left) Sincronizzazione%1 di %2 (%3 rimasto) + Syncing %1 of %2 (A few seconds left) Sincronizzazione %1 di %2(Mancano pochi secondi) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2192,10 +2617,12 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da Si prega di controllare %1 per i file .sync_*.db obsoleti e inutilizzati e rimuoverli. + Undefined state. Stato non definito. + Waiting to start syncing. In attesa di iniziare la sincronizzazione. @@ -2203,14 +2630,17 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderStatusDelegate + Add Folder Sync Aggiungi cartella di sincronizzazione + File File + Synchronize any other local folder with your %1 Sincronizzare qualsiasi altra cartella locale con la %1 @@ -2218,113 +2648,141 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 di %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 di %2, file %3 di %4 + %5 left, %1 of %2, file %3 of %4 %5 rimanenti, %1 di %2, file %3 di %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Pochi secondi rimasti, %1 di %2, file %3 di %4 + About to start syncing Pronto per iniziare la sincronizzazione + Checking for changes in local "%1" Controllo delle modifiche in "%1" locale + Checking for changes in remote "%1" Controllo delle modifiche in "%1" remoto + Click this button to add a folder to synchronize. Fai clic su questo pulsante per aggiungere una cartella da sincronizzare. + Could not decrypt! Impossibile decifrare! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s + Error while loading the list of folders from the server. Errore durante il caricamento dell'elenco delle cartelle dal server. + Fetching folder list from server … Recupero dell'elenco delle cartelle dal server... + File %1 of %2 File %1 di %2 + Preparing to sync … Preparazione della sincronizzazione… + Signed out Disconnesso + Synchronizing files in local folder Sincronizzazione dei file nella cartella locale + Synchronizing virtual files in local folder Sincronizzazione dei file virtuali nella cartella locale + Syncing local and remote changes Sincronizzazione delle modifiche locali e remote + There are unresolved conflicts. Click for details. Ci sono conflitti irrisolti. Fai clic per ulteriori dettagli. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Upload %1/s + Virtual file support is enabled. Il supporto dei file virtuali è abilitato. + Waiting for %n other folder(s) … In attesa di %n altra cartella … @@ -2332,14 +2790,17 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da + You need to be connected to add a folder Devi essere connesso per aggiungere una cartella + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2347,6 +2808,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWatcher + The watcher did not receive a test notification. L'osservatore non ha ricevuto una notifica di prova. @@ -2354,6 +2816,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Questo problema si verifica di solito quando i controlli di inotify sono esauriti. Leggi le FAQ per i dettagli. @@ -2361,10 +2824,12 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizard + Add Folder Sync Connection Aggiungi connessioni di sincronizzazione cartelle + Add Sync Connection Aggiungi connessione di sincronizzazione @@ -2372,30 +2837,37 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizardLocalPath + Add Folder Sync Aggiungi cartella di sincronizzazione + Choose Scegliere + Click to select a local folder to sync. Fai clic per selezionare una cartella locale da sincronizzare. + Enter the path to the local folder. Digita il percorso della cartella locale. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selezionare una cartella sul disco rigido che deve essere collegata in modo permanente al %1. Tutti i file e le sottocartelle vengono caricati e sincronizzati automaticamente. + Select the source folder Seleziona la cartella di origine + Step 1 of 3: Select local folder Passo 1 di 3: selezionare la cartella locale @@ -2403,62 +2875,78 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizardRemotePath + Add Folder Sync Aggiungi cartella di sincronizzazione + Authentication failed accessing %1 Autenticazione non riuscita durante l'accesso a %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Le due cartelle sono collegate in modo permanente e i rispettivi contenuti vengono sincronizzati e aggiornati automaticamente. + Choose this to sync the entire account Selezionala per sincronizzare l'intero account + Create Remote Folder Crea cartella remota + Create folder Crea cartella + Enter the name of the new folder to be created below "%1": Digita il nome della nuova cartella da creare sotto a "%1": + Failed to create the folder on %1. Please check manually. Non è stato possibile creare la cartella su %1. Controlla manualmente. + Failed to list a folder. Error: %1 Impossibile elencare una cartella. Errore: %1 + Folder was successfully created on %1. La cartella è stata creata correttamente su %1. + + Please choose a different location. %1 is already being synced to %2. Si prega di scegliere una posizione diversa. %1 è già sincronizzato su %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Selezionare o creare una cartella di destinazione nel proprio %1 in cui caricare e sincronizzare il contenuto. + Refresh Aggiorna + Step 2 of 3: Directory in your %1 Fase 2 di 3: directory nel vostro %1 + You are already syncing the subfolder %1 at %2. Stai già sincronizzando la sottocartella %1 in %2. @@ -2466,26 +2954,36 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::FolderWizardSelectiveSync + + + (experimental) (sperimentale) + Add Folder Sync Aggiungi cartella di sincronizzazione + Step 3 of 3: Selektive Synchronisation Fase 3 di 3: sincronizzazione selettiva + + + Use virtual files instead of downloading content immediately %1 Usa file virtuali invece di scaricare immediatamente il contenuto %1 + Virtual files are not supported at the selected location I file virtuali non sono supportati nella posizione selezionata + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. @@ -2493,22 +2991,7 @@ Per utenti avanzati: questo problema potrebbe essere correlato a più file di da OCC::GeneralSettings - &Analysis data collection for needs-based design - Analisi della raccolta dei dati per la progettazione basata sui usability - - - &Automatically check for updates - Verific&a automaticamente la presenza di aggiornamenti. - - - &Launch on System Startup - Esegui a&ll'avvio del sistema - - - &Restart && Update - &Riavvia e aggiorna - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2520,6 +3003,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m Non è possibile effettuare il downgrade delle versioni immediatamente: passare da beta a stabile significa attendere la nuova versione stabile. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2529,212 +3013,283 @@ Downgrading versions is not possible immediately: changing from stable to enterp Il downgrade delle versioni non è possibile immediatamente: passare da stabile a enterprise significa attendere la nuova versione enterprise. + + Cancel + Annulla + + + + Change update channel + Cambia il canale di aggiornamento + + + + Changing update channel? + Vuoi cambiare canale di aggiornamento? + + + + Debug Archive Created + Archivio di debug creato + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redigi le informazioni considerate sensibili prima di condividerle! Archivio di debug creato al %1 + + + + Restore to &%1 + Ripristinare a &%1 + + + + Server notifications that require attention. + Notifiche del server che richiedono attenzione. + + + + Show call notification dialogs. + Mostra finestre di notifica chiamata. + + + + Show chat notification dialogs. + Mostra la finestra di dialogo di notifica della chat. + + + + Show notification when quota usage exceeds 80%. + Mostra una notifica quando l'utilizzo della quota supera l'80%. + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + Il canale determina quali aggiornamenti saranno offerti per l'installazione: +- stabile: contiene versioni testate considerate affidabili + + + + + You cannot disable autostart because system-wide autostart is enabled. + Non puoi disabilitare l'avvio automatico poiché è abilitato l'avvio automatico a livello di sistema. + + + + Zip Archives + Archivi zip + + + + daily + giornaliero + + + + enterprise + enterprise + + + + &Automatically check for updates + Verific&a automaticamente la presenza di aggiornamenti. + + + + &Launch on System Startup + Esegui a&ll'avvio del sistema + + + + &Restart && Update + &Riavvia e aggiorna + + + Advanced Avanzate + Ask for confirmation before synchronizing external storages Chiedi conferma prima di sincronizzare storage esterni + Ask for confirmation before synchronizing new folders larger than Chiedi conferma prima di sincronizzare cartelle più grandi di + Automatically disable synchronisation of folders that overcome limit Disabilita automaticamente la sincronizzazione delle cartelle che superano il limite - Cancel - Annulla - - - Change update channel - Cambia il canale di aggiornamento - - - Changing update channel? - Vuoi cambiare canale di aggiornamento? - - + + Check Now Controlla ora + + Create Debug Archive Crea archivio di debug + Data Protection disposizioni in materia di protezione dei dati - Debug Archive Created - Archivio di debug creato - - + Desktop client x.x.x Client desktop x.x.x + Edit &Ignored Files Mod&ifica file ignorati + For System Tray Per il vassoio di sistema + General Settings Impostazioni generali + + Legal Notice Note legali + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Ulteriori informazioni + Move removed files to trash Sposta nel cestino i file eliminati + Necessary data Dati necessari + Notify when synchronised folders grow larger than specified limit Notifica quando le cartelle sincronizzate crescono e superano il limite specificato + Open Source Software Software open source + Privacy Policy Informativa sulla privacy - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redigi le informazioni considerate sensibili prima di condividerle! Archivio di debug creato al %1 - - + Required to ensure that the software can be used as expected Necessario per garantire che il software possa essere utilizzato come previsto. + Restore &Default Ripristino &Predefinito - Restore to &%1 - Ripristinare a &%1 - - + Send anonymous use Invia l'uso anonimo - Server notifications that require attention. - Notifiche del server che richiedono attenzione. - - + Server poll interval Intervallo di polling del server + Show &Quota Warning Notifications Mostra notifiche di avviso &quota + Show Call Notifications Mostra notifiche di chiamata + Show Chat Notifications Mostra notifiche chat + Show Server &Notifications Mostra &notifiche del server - Show call notification dialogs. - Mostra finestre di notifica chiamata. - - - Show chat notification dialogs. - Mostra la finestra di dialogo di notifica della chat. - - - Show notification when quota usage exceeds 80%. - Mostra una notifica quando l'utilizzo della quota supera l'80%. - - + Show sync folders in &Explorer's navigation pane Mostra le cartelle di sincronizzazione nel pannello di navigazione di &Explorer - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - Il canale determina quali aggiornamenti saranno offerti per l'installazione: -- stabile: contiene versioni testate considerate affidabili - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Questo ci aiuta a ottimizzare il software e a identificare meglio i crash di sistema e gli errori imprevisti. + Update channel Canale di aggiornamento + Updates Aggiornamenti + Usage Documentation Manuale d'uso + Use &Monochrome Icons Usa icone &monocromatiche - You cannot disable autostart because system-wide autostart is enabled. - Non puoi disabilitare l'avvio automatico poiché è abilitato l'avvio automatico a livello di sistema. - - - Zip Archives - Archivi zip - - + + beta beta - daily - giornaliero - - - enterprise - enterprise - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) secondi (se il <a href="https://github.com/nextcloud/notify_push">Push del Client</a> non è disponibile) + + stable stabile @@ -2742,22 +3297,27 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile OCC::GETFileJob + Connection Timeout Connessione scaduta + No E-Tag received from server, check Proxy/Gateway Nessun e-tag ricevuto dal server, controlla il proxy/gateway + Server returned wrong content-range Il server ha restituito un content-range errato + We received a different E-Tag for resuming. Retrying next time. Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi. + We received an unexpected download Content-Length. Abbiamo ricevuto un Content-Length inatteso dello scaricamento. @@ -2765,6 +3325,7 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2773,14 +3334,17 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile %1 + Password for share required Password per condivisione richiesta + Please enter a password for your link share: Digita una password per il tuo collegamento di condivisione: + Sharing error Errore di condivisione @@ -2788,18 +3352,22 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Fai clic qui</a> per richiedere una password dell'applicazione dall'interfaccia web. + Enter Password Digita password + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Digita la password di %1:<br><br>Utente: '%2<br>Account: %3<br> + Reading from keychain failed with error: "%1" Lettura dal portachiavi non riuscita con errore: "%1" @@ -2807,49 +3375,50 @@ Il downgrade delle versioni non è possibile immediatamente: passare da stabile OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Questa voce è fornita dal sistema in "%1" e non può essere modificata in questa vista. + + + Files Ignored by Patterns File ignorati per modelli + Global Ignore Settings Impostazioni globali di ignora + Ignored Files Editor Editor dei file ignorati + Sync hidden files Sincronizzati i file nascosti - - This entry is provided by the system at "%1" and cannot be modified in this view. - Questa voce è fornita dal sistema in "%1" e non può essere modificata in questa vista. - - + OCC::IgnoreListTableWidget - Add - Aggiungi - - + Add a new ignore pattern: Aggiungi un nuovo modello di esclusione: - Allow Deletion - Consenti eliminazione - - + Cannot write changes to "%1". Impossibile scrivere le modifiche su "%1". + Could not open file Impossibile aprire il file + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2858,18 +3427,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Gli elementi per i quali è consentita l'eliminazione saranno eliminati se impediscono la rimozione di una cartella. Utile per i metadati. + Ignore Pattern Modello di esclusione + + Add + Aggiungi + + + + Allow Deletion + Consenti eliminazione + + + Pattern Modello + Remove Rimuovi + Remove all Rimuovi tutto @@ -2877,109 +3460,135 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Impossibile rinominare il file perché ne esiste già uno con lo stesso nome sul server. Scegli un altro nome. + Checking rename permissions … Controllo permessi per rinominare … + Could not rename file. Please make sure you are connected to the server. Impossibile rinominare il file. Assicurati di essere connesso al server. + Could not rename local file. %1 Impossibile rimuovere il file locale. %1 - Error - Errore - - + Failed to fetch permissions with error %1 Recupero dei permessi fallito con errore %1 + Filename contains illegal characters: %1 Il nome del file contiene caratteri non consentiti: %1 + Filename contains leading and trailing spaces. - Il nome del file contiene spazi all'inizio e alla fine. - - - Filename contains leading spaces. - Il nome del file contiene spazi all'inizio. - - - Filename contains trailing spaces. - Il nome del file contiene spazi alla fine. - - - Invalid filename - Nome del file non valido + Il nome del file contiene spazi all'inizio e alla fine. - New filename - Nuovo nome del file + + Filename contains leading spaces. + Il nome del file contiene spazi all'inizio. - Please enter a new name for the file: - Inserisci un nome nuovo per il file: + + Filename contains trailing spaces. + Il nome del file contiene spazi alla fine. + Rename file Rinomina file + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Il file "%1" non è stato possibile sincronizzare perché il nome contiene caratteri non consentiti sul server. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Il file "%1" non è stato sincronizzato perché il nome contiene caratteri non consentiti in questo sistema. - The file could not be synced because it contains characters which are not allowed on this system. - Il file non è stato sincronizzato perché contiene caratteri non consentiti in questo sistema. - - + The following basenames are not allowed: %1 I seguenti nomi base non sono consentiti: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces I seguenti caratteri non sono consentiti sul sistema: \ / : ? * " < > | spazi iniziali/finali + The following characters are not allowed: %1 I seguenti caratteri non sono consentiti: %1 + The following file extensions are not allowed: %1 Le seguenti estensioni di file non sono consentite: %1 + The following filenames are not allowed: %1 I seguenti nomi di file non sono consentiti: %1 + Use invalid name Usa nome non valido + You don't have the permission to rename this file. Please ask the author of the file to rename it. Non hai il permesso di rinominare questo file. Chiedi all'autore del file di rinominarlo. - + + + Error + Errore + + + + Invalid filename + Nome del file non valido + + + + New filename + Nuovo nome del file + + + + Please enter a new name for the file: + Inserisci un nome nuovo per il file: + + + + The file could not be synced because it contains characters which are not allowed on this system. + Il file non è stato sincronizzato perché contiene caratteri non consentiti in questo sistema. + + OCC::LegacyAccountSelectionDialog + Legacy import Importazione legacy + Select the accounts to import from the legacy configuration: Selezionare gli account da importare dalla configurazione legacy: @@ -2987,18 +3596,23 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Sotto licenza GNU General Public License (GPL) versione 2.0 o qualsiasi versione successiva.</p> + Close Chiudi + + Legal notice Avviso legale @@ -3006,24 +3620,29 @@ Items where deletion is allowed will be deleted if they prevent a directory from OCC::LogBrowser + Enable logging to temporary folder Abilita la registrazione in una cartella temporanea + Log Output Risultato log + Open folder Apri cartella + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 Il client può scrivere i log di debug in una cartella temporanea. Questi registri sono molto utili per diagnosticare i problemi. Poiché i file di registro possono diventare grandi, il client ne avvierà uno nuovo per ogni sincronizzazione eseguita e comprimerà quelli più vecchi. Eliminerà anche i file di registro dopo un paio d'ore per evitare di consumare troppo spazio su disco. Se abilitato, i log saranno scritti in %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. Questa impostazione persiste in caso di riavvio del client. @@ -3033,10 +3652,14 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Il file "%1"<br/>non può essere aperto in scrittura.<br/><br/>Il risultato del log <b>non</b> può essere salvato!</nobr> + + Error Errore @@ -3044,26 +3667,32 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Si è verificato un errore durante l'installazione. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Impossibile trovare un file per la modifica locale. Assicurati che il suo percorso sia valido e che sia sincronizzato localmente. + Could not get file ID. Impossibile ottenere l'ID del file. + Could not get file identifier. Impossibile ottenere l'identificativo del file. + Could not start editing locally. Impossibile avviare la modifica in locale. + The file identifier is empty. L'identificatore del file è vuoto. @@ -3071,117 +3700,150 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::NetworkSettings - Download Bandwidth - Ampiezza di banda in entrata - - + HTTP(S) proxy Proxy HTTP(S) - Host - Host - - + Hostname of proxy server Nome host del server proxy + + Password for proxy server + Password del server proxy + + + + SOCKS5 proxy + Proxy SOCKS5 + + + + Username for proxy server + Nome utente del server proxy + + + + Download Bandwidth + Ampiezza di banda in entrata + + + + Host + Host + + + + KBytes/s KByte/s + + Limit automatically Limita automaticamente + + Limit to Limita a + + Limit to 3/4 of estimated bandwidth Limita a 3/4 della banda stimata + Manually specify proxy Impostazione manuale del proxy + + No limit Nessun limite + No proxy Nessun proxy + Note: proxy settings have no effects for accounts on localhost Nota: le impostazioni proxy non hanno effetto per gli account su localhost - Password for proxy server - Password del server proxy - - + Proxy Settings Impostazioni proxy + Proxy server requires authentication Il server proxy richiede l'autenticazione - SOCKS5 proxy - Proxy SOCKS5 - - + Upload Bandwidth Ampiezza di banda in uscita + Use system proxy Usa proxy di sistema - - Username for proxy server - Nome utente del server proxy - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Una nuova versione del client %1 è disponibile, ma il processo di aggiornamento non è riuscito.</p><p><b>%2</b> è stato scaricato. La versione installata è la %3. Se confermi di riavviare ed aggiornare, il computer potrebbe riavviarsi per completare l'installazione.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Una nuova versione del client %1 è disponibile.</p><p><b>%2</b> è disponibile per lo scaricamento. La versione installata è %3.</p> + Ask again later Chiedi ancora più tardi + Get update Ottieni l'aggiornamento + New Version Available Nuova versione disponibile + Restart and update Riavvia e aggiorna + Skip this time Salta questa volta + Update Failed Aggiornamento non riuscito + Update manually Aggiorna manualmente @@ -3189,58 +3851,72 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OCUpdater + %1 available. Restart application to start the update. %1 disponibile. Riavvia l'applicazione per iniziare l'aggiornamento. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Un nuovo aggiornamento di %1 sta per essere installato. L'aggiornamento potrebbe richiedere privilegi aggiuntivi durante l'avanzamento. Il computer potrebbe riavviarsi per completare l'installazione. + Checking update server … Controllo server degli aggiornamenti... + Could not check for new updates. Impossibile verificare la presenza di nuovi aggiornamenti. + Could not download update. Please open %1 to download the update manually. Impossibile scaricare l'aggiornamento. Apri %1 per scaricare l'aggiornamento manualmente. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Impossibile scaricare l'aggiornamento. Apri <a href='%1'>%1</a> per scaricare l'aggiornamento a mano. + Downloading %1 … Scaricamento %1 … + New %1 is available. Please open %2 to download the update. Il nuovo %1 è disponibile. Apri %2 per scaricare l'aggiornamento. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. Un nuovo %1 è disponibile. Apri <a href='%2'>%2</a> per scaricare l'aggiornamento. + New %1 update ready Nuovo aggiornamento di %1 pronto + No updates available. Your installation is the latest version. Nessun aggiornamento disponibile. La tua installazione è alla versione più recente. + Update Check Controllo aggiornamenti + Update status is unknown: Did not check for new updates. Lo stato di aggiornamento è sconosciuto. Non è possibile verificare la presenza di nuovi aggiornamenti. + You are using the %1 update channel. Your installation is the latest version. Stai utilizzando il canale di aggiornamento %1. La tua installazione è alla versione più recente. @@ -3248,55 +3924,72 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" La cartella "%2" di %1 è sincronizzata con la cartella locale "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB Spazio libero di %1 + + (%1) (%1) + + (experimental) (sperimentale) + Connect Connetti + In Finder's "Locations" sidebar section Nella sezione "Posizioni" della barra laterale del Finder + Local Sync Folder Cartella locale di sincronizzazione + Sync the folder "%1" Sincronizza la cartella "%1" + There isn't enough free space in the local folder! Non c'è spazio libero sufficiente nella cartella locale! + + Use &virtual files instead of downloading content immediately %1 Usa i file &virtuali invece di scaricare immediatamente il contenuto %1 + Virtual files are not supported at the selected location I file virtuali non sono supportati nella posizione selezionata + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. I file virtuali non sono supportati per le radici delle partizioni di Windows come cartelle locali. Scegli una sottocartella valida sotto la lettera del disco. + Warning: The local folder is not empty. Pick a resolution! Attenzione: la cartella locale non è vuota. Scegli una soluzione! @@ -3304,26 +3997,32 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Connessione all'indirizzo sicuro del server <em>%1</em> non riuscita. Come desideri procedere?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Connessione all'indirizzo sicuro del server specificato non riuscita. Come desideri procedere?</p></body></html> + Configure client-side TLS certificate Configura certificato TLS lato client + Connection failed Connessione non riuscita + Retry unencrypted over HTTP (insecure) Riprova senza cifratura su HTTP (non sicuro) + Select a different URL Seleziona un URL diverso @@ -3331,71 +4030,88 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Account %1: %2 + Account synchronization is disabled La sincronizzazione dell'account è disabilitata + Checking for changes in local "%1" Controllo delle modifiche in "%1" locale + Checking for changes in remote "%1" Controllo delle modifiche in "%1" remoto + Disconnected from %1 Disconnesso dal %1 + Disconnected from accounts: Disconnesso dagli account: + Please sign in Accedi + Terms of service Termini di servizio + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. Il server sull'account %1 esegue una versione non supportata %2. L'utilizzo di questo client con versioni del server non supportate non è stato verificato e è potenzialmente pericoloso. Procedi a tuo rischio. + There are no sync folders configured. Non è stata configurata alcuna cartella per la sincronizzazione. + Unsupported Server Version Versione del server non supportata + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Il tuo account %1 richiede di accettare i termini di servizio del tuo server. Verrai reindirizzato a %2 per confermare di averlo letto e di accettarlo. + macOS VFS for %1: A problem was encountered. macOS VFS per %1: Si è verificato un problema. + macOS VFS for %1: Last sync was successful. macOS VFS per %1: L'ultima sincronizzazione è riuscita. + macOS VFS for %1: Sync is running. macOS VFS per %1: La sincronizzazione è in esecuzione. @@ -3403,14 +4119,17 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudHttpCredsPage + &Email Posta &elettronica + Connect to %1 Connetti a %1 + Enter user credentials Digita le credenziali dell'utente @@ -3418,6 +4137,8 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Impossibile ottenere l'ora di modifica per il file in conflitto %1 @@ -3425,18 +4146,23 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudSetupPage + &Next > Ava&nti > + Could not load certificate. Maybe wrong password? Impossibile caricare il certificato. Forse la password è errata? + + Server address does not seem to be valid L'indirizzo del server non sembra essere valido + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name Il collegamento all'interfaccia web di %1 quando lo apri nel browser. @@ -3445,118 +4171,150 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b>Account basato sul provider di file %1creato con successo!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Cartella locale %1 creata correttamente!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Connesso correttamente a %1: %2 versione %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">La creazione della cartella remota non è riuscita probabilmente perché le credenziali fornite non sono corrette.</font><br/>Torna indietro e controlla le credenziali inserite.</p> + A sync connection from %1 to remote directory %2 was set up. Una connessione di sincronizzazione da %1 alla cartella remota %2 è stata stabilita. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Accesso negato dal server. Per verificare di avere i permessi appropriati, <a href="%1">fai clic qui</a> per accedere al servizio con il tuo browser. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Impossibile rimuovere o copiare la cartella poiché la cartella o un file contenuto in essa è aperto in un altro programma. Chiudi la cartella o il file e premi Riprova o annulla la configurazione. + Connection to %1 could not be established. Please check again. La connessione a %1 non può essere stabilita. Prova ancora. + Could not create local folder %1 Impossibile creare la cartella locale %1 + Creating local sync folder %1 … Creazione della cartella locale di sincronizzazione %1... + Error: %1 Errore: %1 + Failed to connect to %1 at %2:<br/>%3 Connessione a %1 su %2:<br/>%3 + Folder rename failed Rinomina della cartella non riuscita + Invalid URL URL non valido + Local sync folder %1 already exists, setting it up for sync.<br/><br/> La cartella di sincronizzazione locale %1 esiste già, impostata per la sincronizzazione.<br/><br/> + No remote folder specified! Nessuna cartella remota specificata! + OK OK + Remote folder %1 created successfully. La cartella remota %1 è stata creata correttamente. + + Remote folder %1 creation failed with error <tt>%2</tt>. Creazione della cartella remota %1 non riuscita con errore <tt>%2</tt>. + Successfully connected to %1! Connesso con successo a %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. La richiesta autenticata al server è stata rediretta a "%1". L'URL è errato, il server non è configurato correttamente. + + The folder creation resulted in HTTP error code %1 La creazione della cartella ha restituito un codice di errore HTTP %1 + The remote folder %1 already exists. Connecting it for syncing. La cartella remota %1 esiste già. Connessione in corso per la sincronizzazione + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> La creazione della cartella remota non è riuscita poiché le credenziali fornite sono errate!<br/>Torna indietro e verifica le credenziali.</p> + There was an invalid response to an authenticated WebDAV request Ricevuta una risposta non valida a una richiesta WebDAV autenticata + Timeout while trying to connect to %1 at %2. Tempo scaduto durante il tentativo di connessione a %1 su %2. + + Trying to connect to %1 at %2 … Tentativo di connessione a %1 su %2... + creating folder on Nextcloud: %1 creazione cartella su Nextcloud: %1 + failed. non riuscita. @@ -3564,45 +4322,55 @@ Nota che l'utilizzo di qualsiasi opzione della riga di comando di registraz OCC::OwncloudWizard + Add %1 account Aggiungi account %1 + Back Next button text in new account wizard Indietro + Cancel Annulla + Enable experimental feature? Vuoi abilitare la funzionalità sperimentale? + Enable experimental placeholder mode Attiva la modalità segnaposto sperimentale + Next Next button text in new account wizard Avanti + Proxy Settings Proxy Settings button text in new account wizard Impostazioni proxy + Skip folders configuration Salta la configurazione delle cartelle + Stay safe Rimani al sicuro + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3616,10 +4384,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PasswordInputDialog + Password for share required Richiesta password per condivisione + Please enter a password for your share: Digita una password per la tua condivisione: @@ -3627,6 +4397,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PollJob + Invalid JSON reply from the poll URL Risposta JSON non valida dall'URL di richiesta @@ -3634,166 +4405,210 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. Non può essere rinominato o caricato. + Cannot modify encrypted item because the selected certificate is not valid. Impossibile modificare l'elemento crittografato perché il certificato selezionato non è valido. + Cannot sync due to invalid modification time Impossibile sincronizzare a causa di un orario di modifica non valido + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Conflitto maiuscole/minuscole: file scaricato dal server e rinominato per evitare il conflitto. + Conflict: Server version downloaded, local copy renamed and not uploaded. Conflitto: versione del server scaricata, copia locale rinominata e non caricata. + Could not upload file, because it is open in "%1". Impossibile caricare il file, perché è aperto in "%1". + Error while deleting file record %1 from the database Errore nella rilevazione del record del file %1 dal database + Error while reading the database Errore durante la lettura del database + File has extension reserved for virtual files. Il file ha l'estensione riservata ai file virtuali. + File is listed on the ignore list. Il file è presente nell'elenco degli ignorati. + File is not accessible on the server. server error Il file non è accessibile sul server. + File name contains at least one invalid character Il nome del file contiene almeno un carattere non valido + File name is a reserved name on this file system. Il nome del file è un nome riservato su questo file system. + File names containing the character "%1" are not supported on this file system. %1: the invalid character Nomi dei file contenenti il ​​carattere "%1" non sono supportati su questo file system. + File names ending with a period are not supported on this file system. I nomi del file che terminano con un punto non sono supportati su questo file system. + File/Folder is ignored because it's hidden. Il file/cartella è ignorato poiché è nascosto. + Filename contains leading and trailing spaces. Il nome del file contiene spazi all'inizio e alla fine. + Filename contains leading spaces. Il nome del file contiene spazi all'inizio. + Filename contains trailing spaces. Il nome del file contiene spazi alla fine. + Filename is too long. Il nome del file è troppo lungo. + Folder is not accessible on the server. server error La cartella non è accessibile sul server. + Folder name contains at least one invalid character Il nome della cartella contiene almeno un carattere non valido + Folder name is a reserved name on this file system. Il nome della cartella è un nome riservato su questo file system. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Nomi delle cartelle contenenti il ​​carattere "%1" non sono supportati su questo file system. + Ignored because of the "choose what to sync" blacklist Ignorato in base alla lista nera per la scelta di cosa sincronizzare + + Moved to invalid target, restoring Spostato su una destinazione non valida, ripristino + Not allowed because you don't have permission to add files in that folder Non ti è consentito perché non hai i permessi per aggiungere file in quella cartella + Not allowed because you don't have permission to add subfolders to that folder Non consentito perché non sei autorizzato ad aggiungere sottocartelle a quella cartella + Not allowed to remove, restoring Rimozione non consentita, ripristino + Not allowed to upload this file because it is read-only on the server, restoring Non ti è permesso caricare questo file perché hai l'accesso in sola lettura sul server, ripristino + Reason: the entire filename is forbidden. Motivo: è vietato l'intero nome del file. + Reason: the file has a forbidden extension (.%1). Motivo: il file ha un'estensione vietata(.%1). + Reason: the filename contains a forbidden character (%1). Motivo: il nome del file contiene un carattere vietato (%1). + Reason: the filename has a forbidden base name (filename start). Motivo: il nome del file ha un nome di base vietato (inizio del nome del file). + Stat failed. Stat non riuscita. + Symbolic links are not supported in syncing. I collegamenti simbolici non sono supportati dalla sincronizzazione. + The filename cannot be encoded on your file system. Il nome del file non può essere codificato sul tuo file system. + The filename is blacklisted on the server. Il nome del file è nella lista nera sul server. + Upload of %1 exceeds %2 of space left in folder %3. Il caricamento di %1supera %2 dello spazio rimasto nella cartella %3. + Upload of %1 exceeds %2 of space left in personal files. Il caricamento di %1supera %2 dello spazio rimasto nei file personali. @@ -3801,26 +4616,38 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDirectory + Could not delete file %1 from local DB Impossibile eliminare il file %1 dal DB locale + Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido + Error updating metadata: %1 Errore di invio dei metadati: %1 + File is currently in use Il file è attualmente in uso + + + + + + The folder %1 cannot be made read-only: %2 La cartella %1 non può essere resa in sola lettura: %2 + + unknown exception eccezione sconosciuta @@ -3828,54 +4655,70 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale + Error updating metadata: %1 Errore di invio dei metadati: %1 + File %1 cannot be downloaded because encryption information is missing. Il file %1 non può essere scaricato per la mancanza di informazioni di crittografia. + File %1 downloaded but it resulted in a local file name clash! File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! + + File %1 has invalid modified time reported by server. Do not save it. Il file %1 ha un orario di modifica non valido segnalato dal server. Non salvarlo. + + File has changed since discovery Il file è stato modificato dal suo rilevamento + File was deleted from server Il file è stato eliminato dal server + Free space on disk is less than %1 Lo spazio libero su disco è inferiore a %1 + The download would reduce free local disk space below the limit Lo scaricamento ridurrà lo spazio disco libero locale sotto il limite + The downloaded file is empty, but the server said it should have been %1. Il file scaricato è vuoto, ma il server ha indicato una dimensione di %1. + The file %1 is currently in use Il file %1 è attualmente in uso + The file could not be downloaded completely. Il file non può essere scaricato completamente. @@ -3883,10 +4726,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateItemJob + ; Restoration Failed: %1 ; Ripristino non riuscito: %1 + A file or folder was removed from a read only share, but restoring failed: %1 Un file o una cartella è stato rimosso da una condivisione in sola lettura, ma il ripristino non è riuscito: %1 @@ -3894,30 +4739,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalMkdir + Could not create folder %1 Impossibile creare la cartella %1 + Error updating metadata: %1 Errore di invio dei metadati: %1 + Folder %1 cannot be created because of a local file or folder name clash! La cartella %1 non può essere creata perché il suo nome conflitta con quello di un altro file o cartella! + The file %1 is currently in use Il file %1 è attualmente in uso + + + The folder %1 cannot be made read-only: %2 La cartella %1 non può essere resa in sola lettura: %2 + could not delete file %1, error: %2 Impossibile eliminare il file %1, errore: %2 + unknown exception eccezione sconosciuta @@ -3925,14 +4779,19 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale + Could not remove %1 because of a local file name clash Impossibile rimuovere %1 a causa di un conflitto con un file locale + + + Temporary error when removing local item removed from server. Errore temporaneo durante la rimozione dell'elemento locale rimosso dal server. @@ -3940,38 +4799,49 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateLocalRename + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale + + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale + + Error setting pin state Errore durante l'impostazione dello stato del PIN + Error updating metadata: %1 Errore di invio dei metadati: %1 + Failed to propagate directory rename in hierarchy Impossibile propagare la rinomina della cartella nella gerarchia + Failed to rename file Rinominazione file non riuscita + File %1 downloaded but it resulted in a local file name clash! File %1 è stato scaricato ma ha causato un conflitto nei nomi di file! + Folder %1 cannot be renamed because of a local file or folder name clash! La cartella %1 non può essere rinominata perché il suo nome conflitta con quello di un altro file o cartella! + The file %1 is currently in use Il file %1 è attualmente in uso @@ -3979,10 +4849,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". @@ -3990,6 +4862,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2". @@ -3997,18 +4870,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Errore durante la scrittura dei metadati nel database: %1 + Failed to encrypt a folder %1 Impossibile criptare una cartella %1 + The file %1 is currently in use Il file %1 è attualmente in uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". @@ -4016,34 +4893,44 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Impossibile eliminare il record del file %1 dal DB locale + Could not get file %1 from local DB Impossibile ottenere il file %1 dal DB locale + Could not rename %1 to %2, error: %3 Impossibile rinominare %1 in %2, errore: %3 + Error setting pin state Errore durante l'impostazione dello stato del PIN + + Error updating metadata: %1 Errore di invio dei metadati: %1 + Error writing metadata to the database Errore durante la scrittura dei metadati nel database + + The file %1 is currently in use Il file %1 è attualmente in uso + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2". @@ -4051,46 +4938,60 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileCommon + Error updating metadata: %1 Errore di invio dei metadati: %1 + Failed to unlock encrypted folder. Sblocco della cartella cifrata non riuscito. + Failed to upload encrypted file. Caricamento del file cifrato non riuscito. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Il file %1 non può essere caricato poiché esiste un altro file con lo stesso nome, ma con differenze tra maiuscole e minuscole + + + File %1 has invalid modification time. Do not upload to the server. Il file %1 ha un orario di modifica non valido. Non inviarlo sul server. + File Removed (start upload) %1 File rimosso (avvio caricamento) %1 + Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. + Local file changed during syncing. It will be resumed. Il file locale è stato modificato durante la sincronizzazione. Sarà ripristinato. + The file %1 is currently in use Il file %1 è attualmente in uso + Unable to upload an item with invalid characters Impossibile caricare un elemento con caratteri non validi + + Upload of %1 exceeds the quota for the folder Il caricamento di %1 supera la quota per la cartella @@ -4098,32 +4999,39 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileNG + File is not accessible on the server. server error Il file non è accessibile sul server. + Folder is not accessible on the server. server error La cartella non è accessibile sul server. + Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. + Missing File ID from server File ID mancante dal server + Poll URL missing URL del sondaggio mancante  + The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. + Unexpected return code from server (%1) Codice di uscita inatteso dal server (%1) @@ -4131,18 +5039,22 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::PropagateUploadFileV1 + Local file changed during sync. Un file locale è cambiato durante la sincronizzazione. + Poll URL missing URL di richiesta mancante + The local file was removed during sync. Il file locale è stato rimosso durante la sincronizzazione. + The server did not acknowledge the last chunk. (No e-tag was present) Il server non ha riconosciuto l'ultimo pezzo. (Non era presente alcun e-tag) @@ -4150,22 +5062,27 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ProxyAuthDialog + Password: Password: + Proxy authentication required Autenticazione proxy richiesta + Proxy: Proxy: + The proxy server needs a username and password. Il server proxy richiede un nome utente e una password. + Username: Nome utente: @@ -4173,6 +5090,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncDialog + Choose What to Sync Scegli cosa sincronizzare @@ -4180,26 +5098,33 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Si è verificato un errore durante il caricamento dell'elenco delle sottocartelle. + Deselect remote folders you do not wish to synchronize. Deseleziona le cartelle remote che non desideri sincronizzare. + Loading … Caricamento… + Name Nome + + No subfolders currently on the server. Attualmente non ci sono sottocartelle sul server. + Size Dimensione @@ -4207,10 +5132,12 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ServerNotificationHandler + Dismiss Annulla + Reply Rispondi @@ -4218,14 +5145,17 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::sesSnackBar + Error + Success successo + Warning Avviso @@ -4233,23 +5163,28 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud Impostazioni di %1 + Account Account + General Generale + New account Nuovo account + Settings Impostazioni @@ -4257,19 +5192,24 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Risultati della ricerca globale + No results found Nessun risultato trovato + + Search globally Cerca globalmente @@ -4277,6 +5217,7 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareManager + Error Errore @@ -4284,38 +5225,47 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::ShareModel + %1 days %1 giorni + 1 day 1 giorno + Could not find local folder for %1 Impossibile trovare la cartella locale per %1 + Internal link Collegamento ad uso interno + Link share Condivisione del collegamento + Secure file drop File drop sicuro + Secure file drop link Collegamento per il file drop sicuro + Share link Collegamento di condivisione + Today Oggi @@ -4323,22 +5273,28 @@ This is a new, experimental mode. If you decide to use it, please report any iss OCC::SocketApi + + Activity Attività + Context menu share Condivisione da menu contestuale + Copy internal link Copia collegamento interno + Copy private link to clipboard Copia collegamento privato negli appunti + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4347,18 +5303,22 @@ Server replied with error: %2 Il server ha risposto con errore: %2 + Delete Elimina + Delete local changes Elimina modifiche locali + Encrypt Cifra + Expires in %1 minutes remaining time before lock expires @@ -4367,82 +5327,104 @@ Il server ha risposto con errore: %2 + Failed to encrypt folder Impossibile criptare la cartella + Failed to encrypt folder at "%1" Impossibile criptare una cartella su "%1" + Folder encrypted successfully Cartella crittografata correttamente + I shared something with you Ho condiviso qualcosa con te + Leave this share Abbandona questa condivisione + Lock file Blocca file + Locked by %1 Bloccato da %1 + Move and rename … Sposta e rinomina… + Move and upload … Sposta e carica… + Move, rename and upload … Sposta, rinomina e carica… + + Open in browser Apri nel browser + Resharing this file is not allowed La ri-condivisione di questo file non è consentita + Resharing this folder is not allowed La ri-condivisione di questa cartella non è consentita + Resolve conflict … Risolvi conflitto… + Select new location … Seleziona nuova posizione… + Send private link by email … Invia collegamento privato tramite email… + + Share options Opzioni di condivisione + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. L'account %1 non ha la crittografia end-to-end configurata. Configurala nelle impostazioni dell'account per abilitare la crittografia delle cartelle. + The following folder was encrypted successfully: "%1" La seguente cartella è stata crittografata correttamente: "%1" + Unlock file Sblocca file @@ -4450,98 +5432,122 @@ Il server ha risposto con errore: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (autofirmato) + <h3>Certificate Details</h3> <h3>Dettagli del certificato</h3> + <h3>Fingerprints</h3> <h3>Impronte digitali</h3> + <h3>Issuer</h3> <h3>Emittente</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Nota:</b> questo certificato è stato approvato manualmente</p> + Certificate information: Informazioni sul certificato: + Common Name (CN): Nome comune (CN): + Country: Nazione: + Expires on: Scade il: + Issued on: Emesso il: + Issuer: Emittente: + No support for SSL session tickets/identifiers Nessun supporto per i ticket/identificatori di sessione SSL + Organization (O): Organizzazione (O): + Organizational Unit (OU): Unità organizzativa (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Numero di serie: + Server version: %1 Versione server: %1 + State/Province: Stato/Regione: + Subject Alternative Names: Nomi alternativi soggetto (SAN): + The connection is not secure La connessione non è sicura + This connection is NOT secure as it is not encrypted. Questa connessione NON è sicura poiché non è cifrata. + This connection is encrypted using %1 bit %2. Questa connessione è cifrata utilizzando %1 bit %2. @@ -4549,122 +5555,156 @@ Il server ha risposto con errore: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;non specificato&gt; + Additional errors: Errori aggiuntivi: + Cannot connect securely to <i>%1</i>: Impossibile collegarsi in modo sicuro a <i>%1</i>: + + Country: %1 Nazione: %1 + Effective Date: %1 Data effettiva: %1 + Expiration Date: %1 Data di scadenza: %1 + Fingerprint (SHA-256): <tt>%1</tt> Impronta digitale (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Impronta digitale (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Impronta digitale (SHA1): <tt>%1</tt> + Issuer: %1 Emittente: %1 + + Organization: %1 Organizzazione: %1 - Trust this certificate anyway - Fidati comunque di questo certificato - - + + Unit: %1 Reparto: %1 + Untrusted Certificate Certificato non attendibile + with Certificate %1 con certificato %1 - + + + Trust this certificate anyway + Fidati comunque di questo certificato + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (saltato a causa di un errore precedente, nuovo tentativo in %2) + Cannot open the sync journal Impossibile aprire il registro di sincronizzazione + Could not set file record to local DB: %1 Impossibile impostare il record del file nel DB locale: %1 + Could not update file metadata: %1 Impossibile aggiornare i metadati: %1 + Could not update file: %1 Impossibile aggiornare il file: %1 + Could not update virtual file metadata: %1 Impossibile aggiornare i metadati dei file virtuali: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Lo spazio su disco è basso: gli scaricamenti che potrebbero ridurre lo spazio libero sotto %1 saranno saltati. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Sono disponibili solo %1, servono almeno %2 per iniziare + There is insufficient space available on the server for some uploads. Spazio disponibile insufficiente sul server per alcuni caricamenti. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Impossibile aprire o creare il database locale di sincronizzazione. Assicurati di avere accesso in scrittura alla cartella di sincronizzazione. + Unable to read from the sync journal. Impossibile leggere dal registro di sincronizzazione. + Unable to read the blacklist from the local database Impossibile leggere la lista nera dal database locale + Unresolved conflict. Conflitto non risolto + Using virtual files with suffix, but suffix is not set Utilizzo di file virtuali con suffisso, ma il suffisso non è impostato @@ -4672,58 +5712,76 @@ Il server ha risposto con errore: %2 OCC::SyncStatusSummary + %1 of %2 %1 di %2 + %1 of %2 · %3 left %1 di %2 · %3 rimasti + + + All synced! Tutto sincronizzato! + Checking folder changes Controllo delle modifiche alle cartelle + + + Offline Non in linea + See below for errors Vedi sotto gli errori + See below for warnings Vedi sotto gli avvisi + Some files could not be synced! Alcuni file non possono essere sincronizzati! + Some files couldn't be synced! Alcuni file non possono essere sincronizzati! + Sync paused Sincronizzazione sospesa + Syncing Sincronizzazione + Syncing changes Sincronizzazione delle modifiche + Syncing file %1 of %2 Sincronizzazione file %1 di %2 + You need to accept the terms of service Devi accettare i termini del servizio @@ -4731,43 +5789,55 @@ Il server ha risposto con errore: %2 OCC::Systray + Add account Aggiungi account + Download Scarica + Exit %1 Esci da %1 + Help Assistenza + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Apri %1 Desktop + + Pause sync Sospendi la sincronizzazione + Pause sync for all Sospendi la sincronizzazione per tutto + + Resume sync Riprendi la sincronizzazione + Resume sync for all Riprendi la sincronizzazione per tutto + Settings Impostazioni @@ -4775,22 +5845,27 @@ Il server ha risposto con errore: %2 OCC::TermsOfServiceCheckWidget + Copy Link Copia collegamento + Link copied to clipboard. Collegamento copiato negli appunti. + Open Browser Apri browser + Polling Sondaggio + Waiting for terms to be accepted In attesa che i termini vengano accettati @@ -4798,90 +5873,115 @@ Il server ha risposto con errore: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Versione Client Desktop %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Usato il plugin dei file virtuali: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Questa versione è stata fornita da %1.</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0087 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1046 - Help-Link - https://wl.hidrive.com/easy/0138 + + Login_URL + https://storage.ionos.it - Help-Link_STRATO - https://static.hidrive.com/next/1016 + + Login_URL_STRATO + https://storage.ionos.it + LegalNotice-Link https://wl.hidrive.com/easy/0034 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1026 - Login_URL - https://storage.ionos.it - - - Login_URL_STRATO - https://storage.ionos.it - - + MoreInformation-Link https://wl.hidrive.com/easy/0037 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1016 + OpenSource-Link https://wl.hidrive.com/easy/0036 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0035 + Privacy-Link_STRATO https://static.hidrive.com/next/1004 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Versione Client Desktop %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Usato il plugin dei file virtuali: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Questa versione è stata fornita da %1.</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0138 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1016 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Recupero dei fornitori non riuscito. + Failed to fetch search providers for '%1'. Error: %2 Recupero dei fornitori di ricerca per '%1'. Errore: %2 + Search has failed for '%1'. Error: %2 Ricerca di '%1' fallita. Errore: %2 + Search has failed for '%2'. Ricerca di '%2' fallita. @@ -4889,14 +5989,17 @@ Il server ha risposto con errore: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Impossibile finalizzare l'elemento. + Failed to unlock encrypted folder. Sblocco della cartella cifrata non riuscito. + Failed to update folder metadata. Aggiornamento dei metadati della cartella non riuscito. @@ -4904,33 +6007,43 @@ Il server ha risposto con errore: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Impossibile aggiungere o rimuovere l'utente %1 per accedere alla cartella %2 + Could not fetch public key for user %1 Impossibile recuperare la chiave pubblica per l'utente %1 + Could not find root encrypted folder for folder %1 Impossibile trovare la cartella root crittografata per la cartella %1 + + + + + + + + + Error updating metadata for a folder %1 Errore durante l'aggiornamento dei metadati per una cartella %1 + Failed to unlock a folder. Impossibile sbloccare una cartella. OCC::User - - %1 notifications - %1 Notifiche - + %n notification(s) %n notifica @@ -4938,44 +6051,55 @@ Il server ha risposto con errore: %2 + End-to-end certificate needs to be migrated to a new one Il certificato end-to-end deve essere migrato a uno nuovo + Open %1 Assistant in browser The placeholder will be the application name. Please keep it Apri %1 Assistant nel browser + Open %1 Talk in browser The placeholder will be the application name. Please keep it Apri %1 Talk nel browser + Public Share Link Collegamento di condivisione pubblico + Quota Warning - %1 percent or more storage in use Avviso di quota - %1 percento o più di spazio di archiviazione in uso + Quota is updated; %1 percent of the total space is used. La quota è aggiornata; %1 percento dello spazio totale è utilizzato. + Rename file Rinominare il file + + Resolve conflict Risolvi il conflitto + Retry all uploads Riprova tutti i caricamenti + Trigger the migration Avviare la migrazione @@ -4983,26 +6107,32 @@ Il server ha risposto con errore: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vuoi davvero rimuovere la connessione all'account <i>%1</i>?</p><p><b>Nota:</b> ciò <b>non</b> eliminerà alcun file.</p> + Cancel Annulla + Confirm Account Removal Conferma rimozione account + Leave share Lascia condivisione + Remove account Rimuovi account + Remove connection Rimuovi connessione @@ -5010,6 +6140,7 @@ Il server ha risposto con errore: %2 OCC::UserStatusSelectorModel + %n day(s) %n giorno @@ -5017,6 +6148,7 @@ Il server ha risposto con errore: %2 + %n hour(s) %n ora @@ -5024,6 +6156,7 @@ Il server ha risposto con errore: %2 + %n minute(s) %n minuto @@ -5031,54 +6164,70 @@ Il server ha risposto con errore: %2 + 1 hour 1 ora + 30 minutes 30 minuti + 4 hours 4 ore + Could not clear status message. Make sure you are connected to the server. Impossibile cancellare il messaggio di stato. Assicurati di essere connesso al server. + Could not fetch predefined statuses. Make sure you are connected to the server. Impossibile recuperare gli stati preimpostati. Assicurati di essere connesso al server. + Could not fetch status. Make sure you are connected to the server. Impossibile recuperare lo stato. Assicurati di essere connesso al server. + Could not set status. Make sure you are connected to the server. Impossibile impostare lo stato. Assicurati di essere connesso al server. + + Don't clear Non cancellare + Emojis are not supported. Some status functionality may not work. Gli emoji non sono supportati. Alcune caratteristiche dello stato potrebbero non funzionare. + Less than a minute Meno di un minuto + Status feature is not supported. You will not be able to set your status. La funzionalità dello stato non è supportata. Non potrai impostare il tuo stato. + + This week Questa settimana + + Today Oggi @@ -5086,14 +6235,17 @@ Il server ha risposto con errore: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1 è un'unità. Non supporta file virtuali. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1 è un'unità di rete. Non supporta file virtuali. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Si prega di scegliere una posizione diversa. %1non è un file system NTFS. Non supporta file virtuali. @@ -5101,30 +6253,37 @@ Il server ha risposto con errore: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 non è stato possibile scaricarlo. + + Error downloading %1 + Errore durante il download %1 + + + > More details > Più dettagli + Could not be downloaded Non è stato possibile effettuare il download + Download error Errore di download + Error downloading Errore durante il download - Error downloading %1 - Errore durante il download %1 - - + More details Più dettagli @@ -5132,6 +6291,8 @@ Il server ha risposto con errore: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido @@ -5139,6 +6300,8 @@ Il server ha risposto con errore: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Errore di aggiornamento dei metadati a causa dell'orario di modifica non valido @@ -5146,10 +6309,12 @@ Il server ha risposto con errore: %2 OCC::WebEnginePage + Invalid certificate detected Rilevato certificato non valido + The host "%1" provided an invalid certificate. Continue? L'host "%1" ha fornito un certificato non valido. Vuoi continuare? @@ -5157,6 +6322,7 @@ Il server ha risposto con errore: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Sei stato disconnesso dal tuo utente %1 su %2. Accedi nuovamente.</b> @@ -5164,22 +6330,27 @@ Il server ha risposto con errore: %2 OCC::WelcomePage - Form - Modulo - - + Host your own server Ospita il tuo server + Keep your data secure and under your control Mantieni i tuoi dati sicuri e sotto il tuo controllo + + Form + Modulo + + + Log in Accedi + Sign up with provider Registrati a un fornitore @@ -5187,27 +6358,33 @@ Il server ha risposto con errore: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy Proxy HTTP(S) + Hostname of proxy server Nome host del server proxy + Password for proxy server Password per il server proxy + Proxy Settings Dialog window title for proxy settings Impostazioni proxy + SOCKS5 proxy Proxy SOCKS5 + Username for proxy server Nome utente per il server proxy @@ -5215,55 +6392,68 @@ Il server ha risposto con errore: %2 OwncloudAdvancedSetupPage + &Local Folder Carte&lla locale + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Se questa casella è marcata, il contenuto della cartella locale sarà cancellato per avviare una nuova sincronizzazione dal server.</p><p>Non marcarla se il contenuto locale deve essere caricato nella cartella del server.</p></body></html> + Ask before syncing folders larger than Chiedi prima di sincronizzare cartelle più grandi di + Choose different folder Scegli una cartella diversa + Choose what to sync Scegli cosa sincronizzare + Erase local folder and start a clean sync Elimina la cartella locale e inizia una sincronizzazione pulita + Keep local data Mantieni i dati locali + Local Folder Cartella locale + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Indirizzo del server + Sync Logo Sincronizza logo + Synchronize everything from server Sincronizza tutto dal server + Username Nome utente @@ -5271,10 +6461,12 @@ Il server ha risposto con errore: %2 OwncloudHttpCredsPage + &Password &Password + &Username Nome &utente @@ -5282,10 +6474,12 @@ Il server ha risposto con errore: %2 OwncloudSetupPage + Server address Indirizzo del server + This is the link to your %1 web interface when you open it in the browser. Questo è il collegamento all'interfaccia web di %1 quando lo apri nel browser. @@ -5293,145 +6487,170 @@ Il server ha risposto con errore: %2 progress + Deleted Eliminato + Deleting Eliminazione + Downloaded Scaricato + Downloading Scaricamento + + Error Errore + Filesystem access error Errore di accesso al filesystem + Ignored Ignorato + Ignoring Ignorare + Moved to %1 Spostato in %1 + Moving Spostamento + Replaced by virtual file Sostituito da file virtuale + Server version downloaded, copied changed local file into case conflict conflict file Versione del server scaricata, copiato file locale modificato nel file di conflitto di maiuscole/minuscole + Server version downloaded, copied changed local file into conflict file Versione del server scaricata, il file locale modificato è stato copiato come file di conflitto + + Unknown Sconosciuto + Updated end-to-end encryption metadata Metadati di crittografia end-to-end aggiornati + Updated local metadata Metadati locali aggiornati + Updated local virtual files metadata Metadati dei file virtuali locali aggiornati + Updating end-to-end encryption metadata Aggiornamento dei metadati di crittografia end-to-end + Updating local metadata Aggiornamento dei metadati locali + Updating local virtual files metadata Aggiornamento dei metadati dei file virtuali locali + Uploaded Caricato + Uploading Caricamento + Virtual file created File virtuale creato - - updating local virtual files metadata - Aggiornamento dei metadati dei file virtuali locali - ProxySettings + Form Modulo + Host Host + Manually specify proxy Specificare manualmente il proxy + No proxy Nessun proxy + Note: proxy settings have no effects for accounts on localhost Nota: le impostazioni proxy non hanno effetto sugli account su localhost + Proxy Settings Impostazioni proxy + Proxy server requires authentication Il server proxy richiede l'autenticazione + Use system proxy Utilizza il proxy di sistema QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5440,6 +6659,7 @@ Il server ha risposto con errore: %2 + %nh delay in hours after an activity @@ -5448,6 +6668,7 @@ Il server ha risposto con errore: %2 + %nmin delay in minutes after an activity @@ -5456,174 +6677,222 @@ Il server ha risposto con errore: %2 + 1min one minute after activity date and time 1min - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. + + Some time ago + Tempo fa - Could not create debug archive in selected location! - Impossibile creare archivio con i log per il debug nel percorso selezionato! + + in the future + nel futuro - Error deleting the file - Errore durante l'eliminazione del file + + now + adesso + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + La directory %1 non può far parte della directory di sincronizzazione. Selezionare un'altra cartella. + + + + New folder + Nuova cartella + + Could not create debug archive in selected location! + Impossibile creare archivio con i log per il debug nel percorso selezionato! + + + Failed to create debug archive Impossibile creare archivio con i log per il debug - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Sembra che tu stia utilizzando un proxy che richiede l'autenticazione. Controlla le impostazioni e le credenziali del proxy. Se hai bisogno di aiuto, contatta l'amministratore del server. + + Synced %1 + %1 sincronizzato - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - La connessione al server sta impiegando troppo tempo. Riprova più tardi. Se hai bisogno di aiuto, contatta l'amministratore del server. + + You changed %1 + Hai modificato %1 - New folder - Nuova cartella + + You created %1 + Hai creato %1 - Paths beginning with '#' character are not supported in VFS mode. - I percorsi che iniziano con il carattere '#' non sono supportati in modalità VFS. + + You deleted %1 + Hai eliminato %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - I file del server sono cambiati durante il lavoro. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. + + You renamed %1 + Hai rinominato %1 - Some time ago - Tempo fa + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Si è verificato un errore imprevisto. Riprova a sincronizzare o contatta l'amministratore del server se il problema persiste. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Si è verificato un problema sul server. Riprova a sincronizzare più tardi o contatta l'amministratore del server se il problema persiste. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Sembra che tu stia utilizzando un proxy che richiede l'autenticazione. Controlla le impostazioni e le credenziali del proxy. Se hai bisogno di aiuto, contatta l'amministratore del server. - Synced %1 - %1 sincronizzato + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + La connessione al server sta impiegando troppo tempo. Riprova più tardi. Se hai bisogno di aiuto, contatta l'amministratore del server. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - L'indirizzo utilizzato per effettuare la richiesta è troppo lungo per essere gestito dal server. Prova ad abbreviare le informazioni che stai inviando o contatta l'amministratore del server per assistenza. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + I file del server sono cambiati durante il lavoro. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. - The directory %1 cannot be part of your sync directory. Please choose another folder. - La directory %1 non può far parte della directory di sincronizzazione. Selezionare un'altra cartella. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Si è verificato un problema sul server. Riprova a sincronizzare più tardi o contatta l'amministratore del server se il problema persiste. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + L'indirizzo utilizzato per effettuare la richiesta è troppo lungo per essere gestito dal server. Prova ad abbreviare le informazioni che stai inviando o contatta l'amministratore del server per assistenza. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Il file è troppo grande per essere caricato. Potrebbe essere necessario scegliere un file più piccolo o contattare l'amministratore del server per assistenza. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. La richiesta non è stata completata perché alcune condizioni obbligatorie non sono state soddisfatte. Riprova a sincronizzare più tardi. Per assistenza, contatta l'amministratore del server. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. La richiesta sta richiedendo più tempo del solito. Riprova a sincronizzare. Se il problema persiste, contatta l'amministratore del server. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. La risorsa a cui stai tentando di accedere è attualmente bloccata e non può essere modificata. Prova a modificarla più tardi o contatta l'amministratore del server per assistenza. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. Il server non è riuscito a elaborare la tua richiesta perché alcune informazioni sono errate o incomplete. Riprova a sincronizzare più tardi o contatta l'amministratore del server per assistenza. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. Il server non ha spazio sufficiente per completare la tua richiesta. Verifica la quota disponibile per il tuo utente contattando l'amministratore del server. + The server does not recognize the request method. Please contact your server administrator for help. Il server non riconosce il metodo di richiesta. Contatta l'amministratore del server per assistenza. + The server does not support the version of the connection being used. Contact your server administrator for help. Il server non supporta la versione della connessione utilizzata. Contatta l'amministratore del server per assistenza. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. Al momento il server è occupato. Riprova a connetterti tra qualche minuto o contatta l'amministratore del server in caso di urgenza. + This file type isn’t supported. Please contact your server administrator for assistance. Questo tipo di file non è supportato. Contatta l'amministratore del server per assistenza. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. Questa cartella o questo file non è più disponibile. Se hai bisogno di assistenza, contatta l'amministratore del server. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. Impossibile completare la richiesta perché mancano alcune condizioni obbligatorie. Riprova più tardi o contatta l'amministratore del server per assistenza. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. Non siamo riusciti a trovare quello che cercavi. Potrebbe essere stato spostato o eliminato. Se hai bisogno di aiuto, contatta l'amministratore del tuo server. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. Non siamo riusciti a elaborare la tua richiesta. Riprova a sincronizzare più tardi. Se il problema persiste, contatta l'amministratore del server per assistenza. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. Stiamo riscontrando problemi di connessione al server. Riprova più tardi. Se il problema persiste, l'amministratore del server può aiutarti. - You changed %1 - Hai modificato %1 - - - You created %1 - Hai creato %1 - - - You deleted %1 - Hai eliminato %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. Non hai accesso a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. Non hai l'autorizzazione per accedere a questa risorsa. Se ritieni che si tratti di un errore, contatta l'amministratore del server per chiedere assistenza. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. Hai effettuato troppe richieste. Attendi e riprova. Se continui a visualizzare questo messaggio, l'amministratore del server può aiutarti. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. Devi effettuare l'accesso per continuare. Se riscontri problemi con le tue credenziali, contatta l'amministratore del server. - You renamed %1 - Hai rinominato %1 - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. La tua rete necessita di un'autenticazione aggiuntiva. Controlla la tua connessione. Se il problema persiste, contatta l'amministratore del server per assistenza. - in the future - nel futuro + + Error deleting the file + Errore durante l'eliminazione del file - now - adesso + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + I percorsi che iniziano con il carattere '#' non sono supportati in modalità VFS. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5632,26 +6901,32 @@ Il server ha risposto con errore: %2 + All local versions Tutte le versioni locali + All server versions Tutte le versioni del server + Cancel Annulla + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Scegli se vuoi tenere la versione locale, quella del server, o entrambe. Se scegli entrambe, al nome del tuo file locale verrà aggiunto un numero. + Resolve conflicts Risolvi i conflitti + Solve sync conflicts Risolvi i conflitti di sincronizzazione @@ -5659,6 +6934,7 @@ Il server ha risposto con errore: %2 SesErrorBox + Error @@ -5666,14 +6942,17 @@ Il server ha risposto con errore: %2 SesTrayHeader + Open Nextcloud in browser Apri HiDrive Next nel browser + Open local or team folders Apri cartelle locali o di team + Website Homepage @@ -5681,10 +6960,12 @@ Il server ha risposto con errore: %2 ShareDelegate + Copied! Copiato! + Share options Opzioni di condivisione @@ -5692,66 +6973,78 @@ Il server ha risposto con errore: %2 ShareDetailsPage + Add another link Aggiungi un altro collegamento + Allow resharing Consenti la ri-condivisione + + Allow upload and editing Consenti caricamento e modifica + An error occurred setting the share password. Si è verificato un errore nell'impostazione della password di condivisione + Copy share link Copia il collegamento di condivisione + Custom Permissions Permessi definiti dall'utente + Enter a note for the recipient Inserisci una nota per il destinatario - Enter the note to recipient - Inserire una nota per il destinatario - - + File drop (upload only) File drop (solo invio) + Hide download Nascondi scaricamento + Note to recipient Nota al destinatario + Password protection Protezione con password + Set expiration date Imposta data di scadenza + Share link copied! Collegamento del link di condivisione copiato! + Unshare Rimuovi condivisione + View only Sola lettura @@ -5759,10 +7052,12 @@ Il server ha risposto con errore: %2 ShareeSearchField + Search for users or groups… Cerca utenti o gruppi… + Sharing is not available for this folder La condivisione non è disponibile per questa cartella @@ -5770,30 +7065,37 @@ Il server ha risposto con errore: %2 ShareView + Expires in %1 Scade tra %1 + Password required for new share Password richiesta per la nuova condivisione + Share password Condividi la password + Shared with you by %1 Condiviso con te da %1 + Sharing is disabled La condivisione è disabilitata + Sharing is disabled. La condivisione è disattivata. + This item cannot be shared. Questo elemento non può essere condiviso. @@ -5801,6 +7103,7 @@ Il server ha risposto con errore: %2 SyncJournalDb + Failed to connect database. Connessione al database non riuscita. @@ -5808,14 +7111,17 @@ Il server ha risposto con errore: %2 SyncStatus + Open browser Apri browser + Resolve conflicts Risolvi i conflitti + Sync now Sincronizza ora @@ -5823,10 +7129,12 @@ Il server ha risposto con errore: %2 TalkReplyTextField + Reply to … Rispondi a … + Send reply to chat message Invia risposta al messaggio di chat @@ -5834,14 +7142,17 @@ Il server ha risposto con errore: %2 TermsOfServiceCheckWidget + Logo Logo + Switch to your browser to accept the terms of service Passa al tuo browser per accettare i termini di servizio + Terms of Service Termini di servizio @@ -5849,42 +7160,52 @@ Il server ha risposto con errore: %2 theme + Error occurred during setup Si è verificato un errore durante l'installazione + Error occurred during sync Si è verificato un errore durante la sincronizzazione + Preparing to sync Preparazione della sincronizzazione + Stopping sync Interruzione della sincronizzazione + Sync is paused La sincronizzazione è sospesa + Sync is running La sincronizzazione è in corso + Sync status is unknown Lo stato di sincronizzazione è sconosciuto + Sync was successful Sincronizzazione riuscita + Sync was successful but some files were ignored La sincronizzazione è riuscita ma alcuni file sono stati ignorati + Waiting to start syncing In attesa di iniziare la sincronizzazione @@ -5892,30 +7213,37 @@ Il server ha risposto con errore: %2 TrayFoldersMenuButton + Files File + Open %1 in file explorer Apri %1 in esplora file + Open local folder Apri cartella locale + Open local folder "%1" Apri cartella locale "%1" + Open local or team folders Apri cartelle locali o di team + Open team folder "%1" Apri la cartella del team "%1" + User group and local folders menu Menu gruppo utenti e cartelle locali @@ -5923,42 +7251,52 @@ Il server ha risposto con errore: %2 TrayWindowAccountMenu + Account switcher and settings menu Menu di cambio account e impostazioni + Add account Aggiungi account + Current account Account corrente + Current account avatar Avatar dell'account corrente + Current account status is do not disturb Lo stato attuale dell'account è "non disturbare" + Current account status is online Lo stato attuale dell'account è online + Exit Uscita + Pause sync for all Sospendi la sincronizzazione per tutti + Resume sync for all Riprendi la sincronizzazione per tutti + Settings Impostazioni @@ -5966,14 +7304,17 @@ Il server ha risposto con errore: %2 TrayWindowHeader + More apps Altre app + Open %1 in browser Apri %1 nel browser + Open local or team folders Apri cartelle locali o di team @@ -5981,22 +7322,27 @@ Il server ha risposto con errore: %2 TrayWindowHeaderBar + More apps Altre app + Open %1 in browser Apri %1 nel browser + Open Nextcloud in browser Apri HiDrive Next nel browser + Open local or team folders Apri cartelle locali o di team + Website Homepage @@ -6004,6 +7350,7 @@ Il server ha risposto con errore: %2 UnifiedSearchInputContainer + Search files, messages, events … Cerca file, messaggi, eventi … @@ -6011,6 +7358,7 @@ Il server ha risposto con errore: %2 UnifiedSearchPlaceholderView + Start typing to search Inizia a digitare per cercare @@ -6018,6 +7366,7 @@ Il server ha risposto con errore: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Carica più risultati @@ -6025,6 +7374,7 @@ Il server ha risposto con errore: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Scheletro dei risultati di ricerca. @@ -6032,6 +7382,7 @@ Il server ha risposto con errore: %2 UnifiedSearchResultListItem + Load more results Carica più risultati @@ -6039,6 +7390,7 @@ Il server ha risposto con errore: %2 UnifiedSearchResultNothingFound + No results for Nessun risultato per @@ -6046,6 +7398,7 @@ Il server ha risposto con errore: %2 UnifiedSearchResultSectionItem + Search results section %1 Sezione dei risultati della ricerca %1 @@ -6053,22 +7406,29 @@ Il server ha risposto con errore: %2 UserLine + Account actions Azioni account + + Log in Accedi + + Log out Esci + Remove account Rimuovi account + Switch to account Cambia account @@ -6076,26 +7436,32 @@ Il server ha risposto con errore: %2 UserStatusMessageView + Apply Applica + Cancel Annulla + Clear Cancella + Clear status message after Cancella il messaggio di stato dopo + Status message Messaggio di stato + What is your status? Qual è il tuo stato? @@ -6103,38 +7469,47 @@ Il server ha risposto con errore: %2 UserStatusSetStatusView + Appear offline Appari non in linea + Away Assente + Busy Occupato + Do not disturb Non disturbare + Invisible Invisibile + Mute all notifications Disattiva tutte le notifiche + Online Online + Online status Stato online + Status message Messaggio di stato @@ -6142,30 +7517,37 @@ Il server ha risposto con errore: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) %n giorno @@ -6173,6 +7555,7 @@ Il server ha risposto con errore: %2 + %n hour(s) %n ora @@ -6180,6 +7563,7 @@ Il server ha risposto con errore: %2 + %n minute(s) %n minuto @@ -6187,6 +7571,7 @@ Il server ha risposto con errore: %2 + %n month(s) %n mese @@ -6194,6 +7579,7 @@ Il server ha risposto con errore: %2 + %n second(s) %n secondo @@ -6201,6 +7587,7 @@ Il server ha risposto con errore: %2 + %n year(s) %n anno @@ -6211,42 +7598,52 @@ Il server ha risposto con errore: %2 utility + Always available locally Sempre disponibile localmente + Available online only Disponibile solo in linea + Could not open browser Impossibile aprire il browser + Could not open email client Impossibile aprire il client di posta + Currently available locally Attualmente disponibile localmente + Free up local space Libera spazio locale + Make always available locally Rendi sempre disponibile localmente + Some available online only Alcuni disponibili solo in linea + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Si è verificato un errore durante l'avvio del browser per raggiungere l'URL %1. Forse non hai configurato un browser predefinito? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Si è verificato un errore durante l'avvio del client di posta per creare un nuovo messaggio. Forse non hai ancora configurato alcun client di posta predefinito? @@ -6254,14 +7651,17 @@ Il server ha risposto con errore: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" L'intestazione di controllo conteneva un tipo di codice di controllo "%1" sconosciuto + The checksum header is malformed. L'intestazione del codice di controllo non è valida. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" Il file scaricato non verifica il codice di controllo, sarà ripristinato. "%1" != "%2" diff --git a/translations/client_nl.ts b/translations/client_nl.ts index 2b764f62d2dfe..fadd705d3a773 100644 --- a/translations/client_nl.ts +++ b/translations/client_nl.ts @@ -1,55 +1,14 @@ - - - - Agree - Akkoord - - - Back - Terug - - - Necessary data - Noodzakelijke gegevens - - - Required to ensure that the software can be used as expected - Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht - - - Save Settings - Instellingen opslaan - - - Send anonymous use - Anoniem gebruik verzenden - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. - - ActivityItem + In %1 In %1 + Open %1 locally %1 lokaal openen @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Negeren + Open file details Bestandsdetails openen @@ -68,40 +29,40 @@ ActivityList + Activity list Activiteitenlijst + No activities yet Nog geen activiteiten + Scroll to top Naar boven schuiven - - BasicComboBox - - Clear status message menu - Statusbericht wissen - - CallNotificationDialog + Answer Talk call notification Answer Talk call notification + Decline Afwijzen + Decline Talk call notification Afwijzingsmelding voor gesprek + Talk notification caller avatar Spraakmelding beller avatar @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Controleren op wijzigingen in '%1' + Help Help + Log out Uitloggen + + No recently changed files Geen recent gewijzigde bestanden + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop + Open in browser Open in browser + Pause synchronization Pauzeer synchronisatie + Quit sync client Afsluiten synchronisatieclient + Recently changed Recent gewijzigd + Settings Instellingen + Sync paused Synchroniseren gepauzeerd + Syncing Synchroniseren + Syncing %1 Synchroniseren %1 + Syncing %1 (%2 left) Synchroniseren %1 (%2 over) + Syncing %1 of %2 Synchroniseren %1 van %2 + Syncing %1 of %2 (%3 left) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Lokale versie + Server version Serverversie @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Wisselen van gebruiker en instellingsmenu + Add account Gebruiker toevoegen + Add new account Nieuwe gebruiker toevoegen + Current account Huidige gebruiker + Current account avatar Huidige gebruiker avatar + Current account status is do not disturb Huidige gebruikersstatus is Niet Storen + Current account status is online Huidige gebruikersstatus is Online + Exit Verlaat + + Pause sync for all Synchronisatie pauzeren voor alles + + Resume sync for all Synchronisatie hervatten voor alles + Settings Instellingen @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Bestand openen voor lokaal bewerken @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis Geen recente emojis @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token De certificaten ontdekken die op je USB-token zijn opgeslagen @@ -260,6 +257,7 @@ ErrorBox + Error Fout @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 Bestandseigenschappen van %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Lokale kopieën + Reload Herlaad + Remove local copies Verwijder lokale kopieën - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - - FileProviderFileDelegate + Delete Verwijderen @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Virtuele bestanden inschakelen + General settings Algemene instellingen + Reset virtual files environment - Signal file provider domain - Signal file provider domain - - + Virtual files settings Virtuele bestandsinstellingen @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB van %2 GB remote bestanden gesychroniseerd - Evict local copies... - Lokale kopieën verwijderen... - - + Free up space … Maak ruimte ... + Local storage use Gebruik lokale opslag @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! Alles gesynchroniseerd! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Vraag een synchronisatie van wijzigingen voor de VFS-omgeving aan. macOS kan dit verzoek negeren of uitstellen. + Request sync Vraag synchronisatie aan + Syncing Synchroniseren @@ -373,10 +373,12 @@ macOS kan dit verzoek negeren of uitstellen. FileSystem + Could not remove folder "%1" Kan map "%1" niet verwijderen + Error removing "%1": %2 Fout bij verwijderen '%1': %2 @@ -384,22 +386,28 @@ macOS kan dit verzoek negeren of uitstellen. Flow2AuthWidget + + An error occurred while connecting. Please try again. Er is een fout opgetreden tijdens het verbinden. Probeer het opnieuw. + Browser Authentication Browserauthenticatie + Copy Link Kopiëren link + Logo Logo + Switch to your browser to connect your account Schakel over naar je browser om je account te verbinden @@ -407,10 +415,12 @@ macOS kan dit verzoek negeren of uitstellen. FolderWizardSelectiveSync + Add Folder Sync Mapsynchronisatie toevoegen + Step 3 of 3: Selektive Synchronisation Stap 3 van 3: Selektieve synchronisatie @@ -418,18 +428,22 @@ macOS kan dit verzoek negeren of uitstellen. FolderWizardSourcePage + &Choose &Kiezen + Add Folder Sync Mapsynchronisatie toevoegen + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecteer een map op je harde schijf die permanent verbonden moet zijn met je %1. Alle bestanden en submappen worden automatisch geüpload en gesynchroniseerd. + Step 1 of 3: Select local folder Stap 1 van 3: Selecteer lokale map @@ -437,30 +451,37 @@ macOS kan dit verzoek negeren of uitstellen. FolderWizardTargetPage + Add Folder Sync Mapsynchronisatie toevoegen + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Beide mappen zijn permanent gekoppeld en de respectieve inhoud wordt automatisch gesynchroniseerd en bijgewerkt. + Create folder Maak map + Folders Mappen + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Selecteer of maak nu een doelmap in uw %1 waar de inhoud moet worden geüpload en gesynchroniseerd. + Refresh Vernieuwen + Step 2 of 3: Directory in your %1 Stap 2 van 3: Directory in uw %1 @@ -468,14 +489,17 @@ macOS kan dit verzoek negeren of uitstellen. MainWindow + Main content + New activities + Unified search results list @@ -483,6 +507,7 @@ macOS kan dit verzoek negeren of uitstellen. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Gebouwd vanaf Git revisie <a href="%1">%2</a> op %3, %4 gebruik makend van Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS kan dit verzoek negeren of uitstellen. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + The server enforces strict transport security and does not accept untrusted certificates. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. @@ -505,18 +533,22 @@ macOS kan dit verzoek negeren of uitstellen. OCC::Account + File %1 is already locked by %2. Bestand %1 is al vergrendeld door %2. + Lock operation on %1 failed with error %2 Vergrendeling van %1 mislukt met fout %2 + Public Share Link + Unlock operation on %1 failed with error %2 Ontgrendeling van %1 mislukt met fout %2 @@ -524,29 +556,29 @@ macOS kan dit verzoek negeren of uitstellen. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - Er zijn %1 accounts gedetecteerd van een oudere desktopclient. -Moeten de accounts worden geïmporteerd? - - + An account was detected from a legacy desktop client. Should the account be imported? + Could not import accounts from legacy client configuration. Kon geen accounts importeren van legacy client configuratie. + Import Import + + Legacy import Legacy import + Skip Overslaan @@ -554,310 +586,333 @@ Should the account be imported? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) van %2 in gebruik. Sommige mappen, inclusief netwerkmappen en gedeelde mappen, kunnen andere limieten hebben. + %1 as %2 %1 als %2 + %1 in use %1 in gebruik + %1 of %2 in use %1 van %2 in gebruik + (experimental) (experimenteel) + <p>Could not create local folder <i>%1</i>.</p> <p>Kan lokale map <i>%1</i> niet maken.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Weet je zeker dat je het synchroniseren van map <i>%1</i> wilt stoppen?</p><p><b>Opmerking:</b> Dit zal <b>geen</b> bestanden verwijderen.</p> - Apply - Toepassen - - - Apply manual changes - Handmatige wijzigingen toepassen - - + + Availability Beschikbaarheid - Cancel - Annuleren - - + Choose what to sync Kies wat je wilt synchroniseren + Confirm Folder Sync Connection Removal Bevestig het verwijderen van de verbinding voor mapsynchronisatie + Connected to %1. Verbonden met %1. - Connected with <server> as <user> - Verbonden met <server> als <user> - - + Connecting to %1 … Verbinden met %1 ... - Connection settings - Verbindingsinstellingen - - + Could not encrypt folder because the folder does not exist anymore Kon map niet versleutelen omdat de map niet meer bestaat + + Create new folder Maak nieuwe map aan + Currently there is no storage usage information available. Er is nu geen informatie over het gebruik van de opslagruimte beschikbaar. + Disable support Ondersteuning uitschakelen + Disable virtual file support … Ondersteuning voor virtuele bestanden uitschakelen... + Disable virtual file support? Ondersteuning voor virtuele bestanden uitschakelen? + Display mnemonic Geheugensteun weergeven + + Do not encrypt folder Map niet versleutelen + Do you want to forget the end-to-end encryption settings for %1 on this device? + + Edit Ignored Files Genegeerde bestanden bewerken + Enable virtual file support %1 … Virtuele bestandsondersteuning inschakelen %1... + Encrypt Versleutelen + + Encrypt folder Versleutel map + Encryption failed Versleuteling mislukt + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. + End-to-end Encryption Begin-tot-eind versleuteling + End-to-end Encryption with Virtual Files End-to-end versleuteling met virtuele bestanden + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. + End-to-end encryption has not been initialized on this account. + End-to-end encryption mnemonic Geheugensteun voor begin-tot-eind versleuteling - Expand Memory - Geheugen uitbreiden - - - ExpandMemory-Link - https://wl.hidrive.com/easy/0097 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1045 - - + Folder creation failed Map maken mislukt + Force sync now Synchronisatie nu forceren + Forget encryption setup + Forget the end-to-end encryption on this device + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. + Migrate certificate to a new one + No %1 connection configured. Geen %1 connectie geconfigureerd. + No account configured. Geen account ingesteld. + + Open folder Map openen + Pause sync Synchronisatie pauzeren + Please wait for the folder to sync before trying to encrypt it. Wacht tot de map gesynchroniseerd is alvorens deze te versleutelen. + Remove Folder Sync Connection Verwijder verbinding voor mapsynchronisatie + Remove folder sync connection Verwijder verbinding voor mapsynchronisatie + Restart sync Synchronisatie herstarten + Resume sync Synchronisatie hervatten + Server %1 is currently being redirected, or your connection is behind a captive portal. Server %1 wordt momenteel doorgestuurd of je verbinding zit achter een 'captive portal'. + Server %1 is currently in maintenance mode. Server %1 is momenteel in onderhoudsmodus. + Server %1 is temporarily unavailable. Server %1 is tijdelijk niet beschikbaar. + Server configuration error: %1 at %2. Serverconfiguratiefout: %1 op %2. + Set up encryption Versleuteling instellen + Signed out from %1. Uitgelogd van %1. - Standard file sync - Standaard bestandssynchronisatie - - + Storage space %1% occupied Opslagruimte %1% bezet - Storage space: … - Opslagruimte: ... - - + Sync Running Bezig met synchroniseren - Synchronize all - Alles synchroniseren - - - Synchronize none - Niets synchroniseren - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully De map heeft een klein synchronisatieprobleem. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully De map heeft een synchronisatiefout. Versleuteling van de map is mogelijk als de synchronisatie gelukt is. + The server version %1 is unsupported! Proceed at your own risk. De serverversie %1 wordt niet ondersteund! Verdergaan is op eigen risico. + The syncing operation is running.<br/>Do you want to terminate it? Bezig met synchroniseren.<br/>Wil je stoppen met synchroniseren? + There are folders that have grown in size beyond %1MB: %2 Er zijn bestanden die groter zijn geworden dan %1MB: %2 + There are folders that were not synchronized because they are external storages: Er zijn mappen die niet gesynchroniseerd zijn, omdat ze op externe opslag staan: + There are folders that were not synchronized because they are too big or external storages: Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn of op externe opslag staan: + There are folders that were not synchronized because they are too big: Er zijn mappen die niet gesynchroniseerd zijn, omdat ze te groot zijn: + This account supports end-to-end encryption, but it needs to be set up first. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -870,65 +925,127 @@ Het enige voordeel van het uitschakelen van ondersteuning voor virtuele bestande Dit zal alle synchronisaties, die op dit moment bezig zijn, afbreken. + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Dit zal je map en alle bestanden erin versleutelen. Deze bestanden zullen niet langer toegankelijk zijn zonder je coderingssleutel. <b>Dit proces is niet omkeerbaar. Weet u zeker dat u wilt doorgaan? + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - - + Unable to connect to %1. Kan niet verbinden met %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - Niet-geselecteerde mappen worden <b>verwijderd</b> van je lokale bestandssysteem en zullen niet meer met deze computer worden gesynchroniseerd - - - Virtual file sync - Virtuele bestandssynchronisatie - - + Warning Waarschuwing + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. Je kunt een map met inhoud niet versleutelen, verwijder de bestanden. Wacht op de nieuwe synchronisatie en versleutel ze vervolgens. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? + You need to accept the terms of service at %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Het lijkt erop dat de functie Virtuele bestanden voor deze map is ingeschakeld. Momenteel is het niet mogelijk om impliciet virtuele bestanden te downloaden die begin-tot-eind versleuteld zijn. Om de beste ervaring met virtuele bestanden en begin-tot-eind versleuteling te krijgen, moet je ervoor zorgen dat de versleutelde map is gemarkeerd met "Altijd lokaal beschikbaar maken". - + + + Apply + Toepassen + + + + Apply manual changes + Handmatige wijzigingen toepassen + + + + + + Cancel + Annuleren + + + + Connected with <server> as <user> + Verbonden met <server> als <user> + + + + Connection settings + Verbindingsinstellingen + + + + Expand Memory + Geheugen uitbreiden + + + + Standard file sync + Standaard bestandssynchronisatie + + + + + Storage space: … + Opslagruimte: ... + + + + Synchronize all + Alles synchroniseren + + + + Synchronize none + Niets synchroniseren + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + Niet-geselecteerde mappen worden <b>verwijderd</b> van je lokale bestandssysteem en zullen niet meer met deze computer worden gesynchroniseerd + + + + Virtual file sync + Virtuele bestandssynchronisatie + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Toegang door server verboden. Om te verifiëren dat je toegang mag hebben, <a href="%1">klik hier</a> om met je browser toegang tot de service te krijgen. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. De geverifieerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. + There was an invalid response to an authenticated WebDAV request Er is een ongeldig antwoord ontvangen op een geverifieerde WebDAV aanvraag @@ -936,46 +1053,57 @@ Would you like to do this now? OCC::AccountState + Asking Credentials Vragen naar inloggegevens + Configuration error Configuratiefout + Connected Verbonden + Disconnected Niet verbonden + Maintenance mode Onderhoudsmodus + Need the user to accept the terms of service + Network error Netwerkfout + Redirect detected Redirect waargenomen + Service unavailable Dienst niet beschikbaar + Signed out Afgemeld + Unknown account state Onbekende account-status @@ -983,14 +1111,17 @@ Would you like to do this now? OCC::ActivityListModel + Fetching activities … Ophalen activiteiten... + For more activities please open the Activity app. Voor meer activiteiten open de Activiteit app. + Network error occurred: client will retry syncing. Netwerkfout opgetreden: cliënt probeert synchronisatie opnieuw. @@ -998,34 +1129,42 @@ Would you like to do this now? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Certificaat bestanden (*.p12 *.pfx) + + + + Select a certificate + Selecteer een certificaat + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. Een versleutelde pkcs12-bundel wordt sterk aanbevolen, aangezien er een kopie wordt opgeslagen in het configuratiebestand. + Browse … Bladeren ... + Certificate & Key (pkcs12): Certificaat & Sleutel (pkcs12): - Certificate files (*.p12 *.pfx) - Certificaat bestanden (*.p12 *.pfx) - - + Certificate password: Wachtwoord certificaat: + SSL client certificate authentication SSL client certificaat authenticatie - Select a certificate - Selecteer een certificaat - - + This server probably requires a SSL client certificate. De server vereist vermoedelijk een SSL client certificaat. @@ -1033,32 +1172,39 @@ Would you like to do this now? OCC::Application + %1 accounts number of accounts imported %1 accounts + %1 folders number of folders imported %1 mappen + 1 account 1 account + 1 folder 1 map + Continue Doorgaan + Error accessing the configuration file Fout bij benaderen configuratiebestand + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1066,35 +1212,43 @@ Would you like to do this now? %3 + Legacy import Legacy import + Quit Stoppen + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Sommige instellingen zijn geconfigureerd in nieuwere versies van deze cliënt en maken gebruik van functies die niet beschikbaar zijn in deze versie.<br><br>Doorgaan betekent <br>%2 van deze instellingen</br>. Van het huidige configuratiebestand is al een back-up gemaakt naar <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Fout bij het benaderen van het configuratiebestand op %1. Zorg ervoor dat het bestand door je systeemaccount kan worden benaderd. + deleting verwijderen + ignoring negeren + newer newer software version recenter + older older software version ouder @@ -1103,18 +1257,22 @@ Would you like to do this now? OCC::AuthenticationDialog + &Password: &Wachtwoord: + &Username: &Gebruikersnaam: + Authentication Required Authenticatie vereist + Enter username and password for "%1" at %2. Geef gebruikersnaam en wachtwoord op voor "%1" bij %2. @@ -1122,10 +1280,12 @@ Would you like to do this now? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 kon versleutelde map %2" niet ontgrendelen. + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". @@ -1133,18 +1293,22 @@ Would you like to do this now? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + File %1 can not be downloaded because of a local file name clash! + The file %1 is currently in use + Unable to update metadata of new file %1. error with update metadata of new Win VFS file @@ -1153,50 +1317,63 @@ Would you like to do this now? OCC::BulkPropagatorJob + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Bestand %1 kan niet worden geüpload omdat er al een ander bestand met dezelfde naam bestaat, al verschillen hoofd/kleine letters + File %1 has invalid modification time. Do not upload to the server. Bestand %1 heeft een ongeldige laatste wijziging datum. Upload niet naar de server. + File %1 has invalid modified time. Do not upload to the server. Bestand %1 heeft een ongeldige wijzigingstijd. Niet uploaden naar de server. + File Removed (start upload) %1 Bestand verwijderd (start upload) %1 + File contains leading or trailing spaces and couldn't be renamed + + Local file changed during sync. Lokaal bestand gewijzigd tijdens synchronisatie. + Local file changed during syncing. It will be resumed. Lokaal bestand gewijzigd gedurende synchronisatie. Wordt opnieuw meegenomen. + Network error: %1 Netwerkfout: %1 + Restoration failed: %1 Herstellen mislukt: %1 + The file %1 is currently in use Bestand %1 is momenteel in gebruik + The local file was removed during sync. Het lokale bestand werd verwijderd tijdens synchronisatie. @@ -1204,30 +1381,37 @@ Would you like to do this now? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Kan het bestand niet hernoemen omdat er al een bestand met dezelfde naam op de server bestaat. Kies een andere naam. + Could not rename file. Please make sure you are connected to the server. Kan het bestand niet hernoemen. Zorg dat je verbonden bent met de server. + Failed to fetch permissions with error %1 Ophalen van machtigingen mislukt met fout %1 + Filename contains leading and trailing spaces. De bestandsnaam bevat spaties vooraan en achteraan. + Filename contains leading spaces. De bestandsnaam bevat spaties vooraan. + Filename contains trailing spaces. De bestandsnaam bevat spaties achteraan. + You don't have the permission to rename this file. Please ask the author of the file to rename it. Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. @@ -1235,86 +1419,111 @@ Would you like to do this now? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 ondersteund geen overeenkomstige bestandsnamen met verschil in hoofdlettergebruik. + + Filename contains illegal characters: %1 + Bestandsnaam bevat ongeldige tekens: %1 + + + + Filename contains leading and trailing spaces. + De bestandsnaam bevat spaties vooraan en achteraan. + + + + Filename contains leading spaces. + De bestandsnaam bevat spaties vooraan. + + + + Filename contains trailing spaces. + De bestandsnaam bevat spaties achteraan. + + + + Rename file + Bestand hernoemen + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + Het bestand %1 kan niet worden gesynchroniseerd vanwege een conflict in hoofdlettergebruik met een bestaand bestand op dit systeem. + + + + Use invalid name + Gebruik ongeldige naam + + + + 0 byte 0 bytes + Case Clash Conflict Conflict in hoofdlettergebruik + Case clashing file Bestand met conflict in hoofdlettergebruik + Error Fout + Existing file Bestaand bestand - Filename contains illegal characters: %1 - Bestandsnaam bevat ongeldige tekens: %1 - - - Filename contains leading and trailing spaces. - De bestandsnaam bevat spaties vooraan en achteraan. - - - Filename contains leading spaces. - De bestandsnaam bevat spaties vooraan. - - - Filename contains trailing spaces. - De bestandsnaam bevat spaties achteraan. - - + New filename Nieuwe bestandsnaam + + Open clashing file Open bestand met conflict + + Open existing file Open bestaand bestand + Please enter a new name for the clashing file: Voer alsjeblieft een nieuwe naam in voor het bestand met het conflict: - Rename file - Bestand hernoemen - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - Het bestand %1 kan niet worden gesynchroniseerd vanwege een conflict in hoofdlettergebruik met een bestaand bestand op dit systeem. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. The file could not be synced because it generates a case clash conflict with an existing file on this system. - Use invalid name - Gebruik ongeldige naam - - + file A bestand A + file B bestand B + + today vandaag @@ -1322,6 +1531,7 @@ Would you like to do this now? OCC::CleanupPollsJob + Error writing metadata to the database Fout bij schrijven van metadata naar de database @@ -1329,27 +1539,33 @@ Would you like to do this now? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: + Enter E2E passphrase Invoeren E2E wachtwoord + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" + Invalid PIN. Login failed Ongeldige PIN. Login mislukt. + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Voer je begin-tot-eind versleutelingswachtwoord in: <br><br>Gebruiker: %2<br>Account: %3<br> @@ -1357,66 +1573,87 @@ Would you like to do this now? OCC::ConflictDialog - 0 byte - 0 bytes - - - <a href="%1">Open local version</a> - <a href="%1">Open lokale versie</a> - - - <a href="%1">Open server version</a> - <a href="%1">Open serverversie</a> - - - Click to open the file - Klik om het bestand te openen - - - Conflicting versions of %1. - Conflicterende versies van %1. - - + Keep both versions Bewaar beide versies + Keep local version Bewaar lokale versie + + Keep selected version Bewaar geselecteerde versie + Keep server version Bewaar serverversie - Local version - Lokale versie - - + Open local version Open lokale versie + Open server version Open serverversie + + + 0 byte + 0 bytes + + + + <a href="%1">Open local version</a> + <a href="%1">Open lokale versie</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Open serverversie</a> + + + + + Click to open the file + Klik om het bestand te openen + + + + + Conflicting versions of %1. + Conflicterende versies van %1. + + + + Local version + Lokale versie + + + Server version Serverversie + Sync Conflict Synchronisatieconflict + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Welke versie van het bestand wil je bewaren? <br/>Als je beide versies selecteert, wordt er een getal achter de bestandsnaam van het lokale bestand gezet. + + today vandaag @@ -1424,22 +1661,29 @@ Would you like to do this now? OCC::ConflictSolver + Confirm deletion Bevestig verwijderen + Do you want to delete the directory <i>%1</i> and all its contents permanently? Wil je de map <i>%1</i>met gehele inhoud permanent verwijderen? + Do you want to delete the file <i>%1</i> permanently? Wil je het bestand <i>%1</i>permanent verwijderen? + + Error Fout + + Moving file failed: %1 @@ -1451,27 +1695,33 @@ Would you like to do this now? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Authenticatiefout: Gebruikersnaam of wachtwoord onjuist. + No %1 account configured The placeholder will be the application name. Please keep it + Please update to the latest server and restart the client. Werk de server bij naar de nieuwste versie en herstart het programma. + The configured server for this client is too old De voor dit programma ingestelde server is te oud + The provided credentials are not correct De verstrekte inloggegevens zijn niet juist + Timeout Time-out @@ -1479,68 +1729,83 @@ Would you like to do this now? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. + + + Agree Akkoord + Form Formulier + Settings Instellingen - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://wl.hidrive.com/easy/0005'>privacybeleid</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Deze applicatie maakt gebruik van traceertechnologieën. Door op Akkoord te klikken, accepteert u de verwerking van uw geanonimiseerde gegevens. U kunt uw keuzes op elk gewenst moment aanpassen via de instellingen. <br/> <br/>Informatie over gegevensverwerking en meer kunt u vinden in ons <a href='https://static.hidrive.com/next/1005'>privacybeleid</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. + + + Back Terug + Form Formulier + Necessary data Noodzakelijke gegevens + Required to ensure that the software can be used as expected Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht + Save Settings Instellingen opslaan + Send anonymous use Anoniem gebruik verzenden + This helps us to optimize the software and to better identify system crashes and unexpected errors. Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - We verzamelen geanonimiseerde gegevens om onze app te optimaliseren. Hiervoor gebruiken we softwareoplossingen van verschillende partners. We willen je volledige transparantie en keuzevrijheid geven met betrekking tot het verzamelen en verwerken van je geanonimiseerde gebruik. Je kunt je instellingen op elk gewenst moment wijzigen onder het menu-item Gegevensbescherming. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Fout bij annuleren verwijderen van %1 + Error while canceling deletion of a file Fout bij het annuleren van verwijdering van een bestand @@ -1548,18 +1813,23 @@ Would you like to do this now? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Encrypted metadata setup error! + Encrypted metadata setup error: initial signature from server is empty. Fout bij opzetten versleutelde metagegevens: initiële handtekening van server is leeg. + Server error: PROPFIND reply is not XML formatted! Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” @@ -1567,22 +1837,27 @@ Would you like to do this now? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Map niet toegankelijk op client, toegang geweigerd + Directory not found: %1 Map niet gevonden: %1 + Error while opening directory %1 Fout bij het openen van map %1 + Error while reading directory %1 Fout tijdens lezen van map %1 + Filename encoding is not valid Bestandsnaamcodering is niet geldig @@ -1590,62 +1865,93 @@ Would you like to do this now? OCC::EditLocallyJob + + + An error occurred during data retrieval. Er trad een fout op tijdens het ophalen van data. + + An error occurred during setup. Er trad een fout op bij het instellen. + + An error occurred trying to synchronise the file to edit locally. Er trad een fout op bij de poging het bestand voor lokaal bewerken te synchroniseren. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het niet uitgesloten is door selectieve synchronisatie. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is en dat het lokaal gesynchroniseerd is. + Could not find a remote file info for local editing. Make sure its path is valid. Kon geen remote bestandsinformatie vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is. + Could not open %1 Kon %1 niet openen + + + + + + + + Could not start editing locally. Kon lokaal bewerken niet starten. + File %1 already locked. Bestand %1 is al vergrendeld. + File %1 could not be locked. Bestand %1 kon niet vergrendeld worden. + File %1 now locked. Bestand %1 is nu vergrendeld. + Invalid local file path. Ongeldig lokaal bestandspad. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Vergrendeling duurt %1 minuten. Als je klaar bent met verwerken, kan je het bestand ook handmatig ontgrendelen. + Please try again. Probeer a.u.b opnieuw + Server error: PROPFIND reply is not XML formatted! Serverfout: PROPFIND-antwoord heeft geen XML-opmaak! @@ -1653,10 +1959,12 @@ Would you like to do this now? OCC::EditLocallyManager + Could not validate the request to open a file from server. Kon de aanvraag niet valideren voor het openen van een bestand op de server. + Please try again. Probeer a.u.b opnieuw @@ -1664,26 +1972,34 @@ Would you like to do this now? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Er trad een fout op bij de aanvraag voor lokaal bewerken. + Could not find an account for local editing. Kon geen account vinden voor lokaal bewerken. + Could not start editing locally. Kon lokaal bewerken niet starten. + Invalid file path was provided. Ongeldig pad opgegeven. + Invalid token received. Ongeldig token ontvangen. + + + Please try again. Probeer a.u.b opnieuw @@ -1691,22 +2007,34 @@ Would you like to do this now? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Fout bij ophalen ID van versleutelde map. + + + + + + Error fetching metadata. Fout bij ophalen metadata: %1 + + + Error locking folder. Fout bij vergrendelen map. + Error parsing or decrypting metadata. Fout bij verwerken of ontsleutelen metadata. + Failed to upload metadata Kon metadata niet uploaden. @@ -1714,6 +2042,7 @@ Would you like to do this now? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Kan de metadata voor versleuteling niet genereren, de map wordt ontgrendeld. @@ -1723,6 +2052,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1731,6 +2061,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 hour(s) ago hours elapsed since file last modified @@ -1739,6 +2070,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 minute(s) ago minutes elapsed since file last modified @@ -1747,6 +2079,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 month(s) ago months elapsed since file last modified @@ -1755,6 +2088,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 second(s) ago seconds elapsed since file last modified @@ -1763,6 +2097,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 year(s) ago years elapsed since file last modified @@ -1771,6 +2106,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1782,22 +2118,28 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. De geretourneerde server-URL begint niet met HTTPS, ondanks dat de inlog-URL begint met HTTPS. Inloggen is niet mogelijk omdat dit een beveiligingsprobleem kan zijn. Neem contact op met je beheerder. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. @@ -1805,38 +2147,48 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. OCC::Flow2AuthWidget + Copy Link Kopiëren link + + Error Fout + Link copied to clipboard. Link gekopieerd naar het klembord. + Open Browser Browser openen + Polling for authorization Controleren op autorisatie + Starting authorization Starten autorisatie + Switch to your browser to connect your account Schakel over naar je browser om je account te verbinden + Unable to open the Browser, please copy the link to your Browser. Kan de browser niet openen, kopieer de link naar je browser. + Waiting for authorization Wachten op autorisatie @@ -1844,6 +2196,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. OCC::Folder + %1 and %n other file(s) are currently locked. %1 en %n ander bestand zijn momenteel op slot. @@ -1851,6 +2204,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 en %n ander bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details. @@ -1858,6 +2212,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 and %n other file(s) have been added. %1 en %n andere bestand zijn toegevoegd. @@ -1865,6 +2220,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 and %n other file(s) have been removed. @@ -1872,6 +2228,7 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 and %n other file(s) have been updated. %1 en %n ander bestand(en) zijn bijgewerkt. @@ -1879,14 +2236,17 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 could not be synced due to an error. See the log for details. %1 kon niet worden gesynchroniseerd door een fout. Bekijk het log voor details. + %1 has a sync conflict. Please check the conflict file! %1 heeft een synchronisatie-conflict. Controleer het conflictbestand! + %1 has and %n other file(s) have sync conflicts. %1 en %n ander bestand(en) hebben een sync conflict. @@ -1894,11 +2254,13 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 has been added. %1 names a file. %1 is toegevoegd. + %1 has been moved to %2 and %n other file(s) have been moved. %1 is verplaatst naar %2 en %n ander bestand(en) is verplaatst. @@ -1906,15 +2268,18 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 has been moved to %2. %1 is verplaatst naar %2. + %1 has been removed. %1 names a file. %1 is verwijderd. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 is hernoemd naar %2 en %n ander bestand(en) is hernoemd. @@ -1922,30 +2287,36 @@ Dit kan een probleem zijn met je OpenSSL-bibliotheken. + %1 has been renamed to %2. %1 and %2 name files. %1 is hernoemd naar %2. + %1 has been updated. %1 names a file. %1 is bijgewerkt. + %1 is currently locked. %1 is momenteel op slot. + A folder from an external storage has been added. Er is een map op externe opslag toegevoegd. + A folder has surpassed the set folder size limit of %1MB: %2. %3 Een map is groter geworden dan de ingestelde limiet van %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1954,6 +2325,7 @@ Bevestig alstublieft of u door wilt gaan met deze verwijderingen. U kunt ook alle verwijderde bestanden terugzetten door vanuit de map '%1' te uploaden naar de server. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1962,10 +2334,12 @@ Bevestig alstublieft of u door wilt gaan met deze verwijderingen. U kunt ook alle verwijderde bestanden herstellen door ze van de server te downloaden. + A new folder larger than %1 MB has been added: %2. Er is een nieuwe map groter dan %1 MB toegevoegd: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1978,70 +2352,87 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge %1 + Could not read system exclude file Kon het systeem-uitsluitingsbestand niet lezen + Keep syncing Doorgaan met synchronisatie + Please choose a different location. %1 isn't a readable folder. + Please choose a different location. %1 isn't a valid folder. + Please choose a different location. The folder %1 doesn't exist. + Please go in the settings to select it if you wish to download it. Ga naar de instellingen om het te selecteren als u deze wilt downloaden. + Proceed with Deletion Doorgaan met verwijderen + Remove all files? Alle bestanden verwijderen? + Restore Files from Server Bestanden terugzetten van server + Restore Files to Server Bestanden terugzetten naar server + Stop syncing Stop synchronisatie + Sync Activity Synchronisatie-activiteit + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Bestand %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Het wordt niet gesynchroniseerd. + The folder %1 has surpassed the set folder size limit of %2MB. De map %1 is groter geworden dan de ingestelde limiet van %2MB + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. Map %1 is gecreëerd, maar eerder uitgesloten van synchronisatie. Bestanden erin worden niet gesynchroniseerd. + Virtual file download failed with code "%1", status "%2" and error message "%3" + Would you like to stop syncing this folder? Wil je stoppen met het synchroniseren van deze map? @@ -2049,26 +2440,32 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge OCC::FolderCreationDialog + %1 Create new folder %1 Nieuwe map maken + Could not create a folder! Check your write permissions. Kan map niet aanmaken! Controleer je schrijfmachtiging. + + Error + Fout + + + Create new folder Maak nieuwe map aan + Enter folder name Geef mapnaam op - Error - Fout - - + Folder already exists Map bestaat al @@ -2076,108 +2473,136 @@ Dit betekent dat de synchronisatieclient misschien niet meteen lokale wijziginge OCC::FolderMan + %1 (Sync is paused) %1 (Synchronisatie onderbroken) + (backup %1) (backup %1) + (backup) (backup) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. Een oud synchronisatieverslag "%1" is gevonden maar kan niet worden verwijderd. Zorg ervoor dat geen applicatie dit bestand gebruikt. + Could not reset folder state Kan de beginstaat van de map niet terugzetten + Last sync was successful. Laatste synchronisatie was geslaagd. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url + + Please choose a different location. %1 is already being used as a sync folder. + Please choose a different location. %1 is already contained in a folder used as a sync folder. + Please choose a different location. The path %1 doesn't exist. + Please choose a different location. The path %1 isn't a folder. + Please choose a different location. The selected folder isn't valid. + + Please choose a different location. You don't have enough permissions to write to %1. folder location + Preparing for sync. Synchronisatie wordt voorbereid + Setup error. Installatiefout. + Sync finished with unresolved conflicts. Synchronisatie beëindigd met niet opgeloste conflicten. + Sync is paused. Synchronisatie gepauzeerd. + Sync is running. Bezig met synchroniseren. + Sync request was cancelled. Synchronisatieaanvraag werd geannuleerd. + Syncing %1 Synchroniseren %1 + Syncing %1 (%2 left) Synchroniseren %1 (%2 over) + Syncing %1 (A few seconds left) + Syncing %1 of %2 Synchroniseren %1 van %2 + Syncing %1 of %2 (%3 left) + Syncing %1 of %2 (A few seconds left) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2185,10 +2610,12 @@ For advanced users: this issue might be related to multiple sync database files + Undefined state. Ongedefinieerde status. + Waiting to start syncing. In afwachting van synchronisatie. @@ -2196,14 +2623,17 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusDelegate + Add Folder Sync Mapsynchronisatie toevoegen + File Bestand + Synchronize any other local folder with your %1 Synchroniseer een andere lokale map met uw %1 @@ -2211,114 +2641,142 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 van %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 ... + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 van %2, bestand %3 van %4 + %5 left, %1 of %2, file %3 of %4 %5 over, %1 van %2, bestand %3 van %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Een paar seconden over, %1 van %2, bestand %3 van %4 + About to start syncing In afwachting van synchronisatie + Checking for changes in local "%1" Controleren op wijzigingen in lokale "%1" + Checking for changes in remote "%1" Controleren op wijzigingen in externe "%1" + Click this button to add a folder to synchronize. Klik op deze knop om een te synchroniseren map toe te voegen. + Could not decrypt! Kon niet ontsleutelen! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Download %1/s + Error while loading the list of folders from the server. Fout bij ophalen mappenlijst van de server. + Fetching folder list from server … Mappenlijst ophalen van de server ... + File %1 of %2 Bestand %1 van %2 + Preparing to sync … Voorbereiden synchronisatie ... + Signed out Afgemeld + Synchronizing files in local folder Synchroniseren bestanden in lokale map + Synchronizing virtual files in local folder Synchroniseren virtuele bestanden in lokale map + Syncing local and remote changes Synchroniseren lokale en remote aanpassingen + There are unresolved conflicts. Click for details. Er zijn nog niet-opgehelderde conflicten. Klik voor details. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Upload %1/s + Virtual file support is enabled. Virtuele bestandsondersteuning is ingeschakeld. + Waiting for %n other folder(s) … @@ -2326,14 +2784,17 @@ For advanced users: this issue might be related to multiple sync database files + You need to be connected to add a folder U moet verbonden zijn om een map toe te voegen + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2341,6 +2802,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcher + The watcher did not receive a test notification. De kijker ontving geen testmelding. @@ -2348,6 +2810,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Dit gebeurt gewoonlijk wanneer de inotify monitors op zijn. Klik op de FAQ voor details. @@ -2355,10 +2818,12 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizard + Add Folder Sync Connection Toevoegen mapsynchronisatie verbinding + Add Sync Connection Toevoegen Sync verbinding @@ -2366,30 +2831,37 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardLocalPath + Add Folder Sync Mapsynchronisatie toevoegen + Choose Kies + Click to select a local folder to sync. Klikken om een lokale map te selecteren voor synchronisatie + Enter the path to the local folder. Geef het pad op naar de lokale map. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Selecteer een map op je harde schijf die permanent verbonden moet zijn met je %1. Alle bestanden en submappen worden automatisch geüpload en gesynchroniseerd. + Select the source folder Selecteer de bronmap + Step 1 of 3: Select local folder Stap 1 van 3: Selecteer lokale map @@ -2397,62 +2869,78 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardRemotePath + Add Folder Sync Mapsynchronisatie toevoegen + Authentication failed accessing %1 Authenticatie mislukt bij benaderen %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. Beide mappen zijn permanent gekoppeld en de respectieve inhoud wordt automatisch gesynchroniseerd en bijgewerkt. + Choose this to sync the entire account Kies dit om je volledige account te synchroniseren + Create Remote Folder Externe map aanmaken + Create folder Maak map + Enter the name of the new folder to be created below "%1": Voer de naam van de hieronder te maken nieuwe map in "%1": + Failed to create the folder on %1. Please check manually. Aanmaken van de map op %1 mislukt. Controleer handmatig. + Failed to list a folder. Error: %1 Tonen mappenlijst mislukt. Fout: %1 + Folder was successfully created on %1. Map is succesvol aangemaakt op %1. + + Please choose a different location. %1 is already being synced to %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Selecteer of maak nu een doelmap in uw %1 waar de inhoud moet worden geüpload en gesynchroniseerd. + Refresh Vernieuwen + Step 2 of 3: Directory in your %1 Stap 2 van 3: Directory in uw %1 + You are already syncing the subfolder %1 at %2. @@ -2460,26 +2948,36 @@ For advanced users: this issue might be related to multiple sync database files OCC::FolderWizardSelectiveSync + + + (experimental) (experimenteel) + Add Folder Sync Mapsynchronisatie toevoegen + Step 3 of 3: Selektive Synchronisation Stap 3 van 3: Selektieve synchronisatie + + + Use virtual files instead of downloading content immediately %1 Gebruik virtuele bestanden in plaats van direct downloaden content%1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. @@ -2487,22 +2985,7 @@ For advanced users: this issue might be related to multiple sync database files OCC::GeneralSettings - &Analysis data collection for needs-based design - &Analyse van gegevensverzameling voor een op behoeften gebaseerd ontwerp - - - &Automatically check for updates - &Controleer automatisch op updates - - - &Launch on System Startup - &Starten bij systeemstart - - - &Restart && Update - &Herstarten && Bijwerken - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2511,6 +2994,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2518,210 +3002,281 @@ Downgrading versions is not possible immediately: changing from stable to enterp + + Cancel + Annuleren + + + + Change update channel + Wijzigen bijwerkkanaal + + + + Changing update channel? + Wijzigen bijwerkkanaal? + + + + Debug Archive Created + Debugarchief Aangemaakt + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + + + + + Restore to &%1 + + + + + Server notifications that require attention. + Servermeldingen die aandacht nodig hebben. + + + + Show call notification dialogs. + Toon oproepmeldingenvensters. + + + + Show chat notification dialogs. + + + + + Show notification when quota usage exceeds 80%. + + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + + + + + You cannot disable autostart because system-wide autostart is enabled. + Je kunt autostart niet uitschakelen omdat systeem-brede autostart is ingeschakeld. + + + + Zip Archives + Zip Archieven + + + + daily + dagelijks + + + + enterprise + zakelijk + + + + &Automatically check for updates + &Controleer automatisch op updates + + + + &Launch on System Startup + &Starten bij systeemstart + + + + &Restart && Update + &Herstarten && Bijwerken + + + Advanced Geavanceerd + Ask for confirmation before synchronizing external storages Vraag bevestiging voor synchronisatie van mappen op externe opslag + Ask for confirmation before synchronizing new folders larger than Ask for confirmation before synchronizing new folders larger than + Automatically disable synchronisation of folders that overcome limit Automatically disable synchronisation of folders that overcome limit - Cancel - Annuleren - - - Change update channel - Wijzigen bijwerkkanaal - - - Changing update channel? - Wijzigen bijwerkkanaal? - - + + Check Now Controleer nu + + Create Debug Archive Debugarchief maken + Data Protection Gegevensbescherming - Debug Archive Created - Debugarchief Aangemaakt - - + Desktop client x.x.x Desktop cliënt x.x.x + Edit &Ignored Files Bewerken &genegeerde bestanden + For System Tray Voor systeemvak + General Settings Algemene instellingen + + Legal Notice Juridische bepalingen + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Meer informatie + Move removed files to trash Verplaats verwijderde bestanden naar de prullenbak + Necessary data Noodzakelijke gegevens + Notify when synchronised folders grow larger than specified limit Melding als gesynchroniseerde mappen groter worden dan de opgegeven limiet + Open Source Software Open source software + Privacy Policy Privacybeleid - Redact information deemed sensitive before sharing! Debug archive created at %1 - - - + Required to ensure that the software can be used as expected Vereist om ervoor te zorgen dat de software kan worden gebruikt zoals verwacht + Restore &Default - Restore to &%1 - - - + Send anonymous use Anoniem gebruik verzenden - Server notifications that require attention. - Servermeldingen die aandacht nodig hebben. - - + Server poll interval + Show &Quota Warning Notifications + Show Call Notifications Toon oproepmeldingen + Show Chat Notifications + Show Server &Notifications Tonen server&meldingen - Show call notification dialogs. - Toon oproepmeldingenvensters. - - - Show chat notification dialogs. - - - - Show notification when quota usage exceeds 80%. - - - + Show sync folders in &Explorer's navigation pane Show sync folders in &Explorer's navigation pane - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Dit helpt ons om de software te optimaliseren en om systeemcrashes en onverwachte fouten beter te identificeren. + Update channel Bijwerkkanaal + Updates Updates + Usage Documentation Gebruiksdocumentatie + Use &Monochrome Icons &Monochrome pictogrammen gebruiken - You cannot disable autostart because system-wide autostart is enabled. - Je kunt autostart niet uitschakelen omdat systeem-brede autostart is ingeschakeld. - - - Zip Archives - Zip Archieven - - + + beta beta - daily - dagelijks - - - enterprise - zakelijk - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) + + stable stabiel @@ -2729,22 +3284,27 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GETFileJob + Connection Timeout Verbindingstime-out + No E-Tag received from server, check Proxy/Gateway Geen E-Tag ontvangen van de server, controleer Proxy/Gateway + Server returned wrong content-range Server retourneerde verkeerde content-bandbreedte + We received a different E-Tag for resuming. Retrying next time. We ontvingen een afwijkende E-Tag om door te gaan. We proberen het later opnieuw. + We received an unexpected download Content-Length. We ontvingen een onverwachte download Content-Lengte. @@ -2752,6 +3312,7 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2760,14 +3321,17 @@ Downgrading versions is not possible immediately: changing from stable to enterp %1 + Password for share required Wachtwoord voor deellink vereist + Please enter a password for your link share: Voer het wachtwoord in voor je deellink: + Sharing error Fout bij delen @@ -2775,18 +3339,22 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Klik hier</a> om een nieuw app wachtwoord via de web interface op te vragen. + Enter Password Vul het wachtwoord in + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Voer %1 wachtwoord in:<br><br>Gebruiker: %2<br>Account: %3<br> + Reading from keychain failed with error: "%1" Het lezen van de sleutelketen is mislukt met fout: "%1" @@ -2794,49 +3362,50 @@ Downgrading versions is not possible immediately: changing from stable to enterp OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Dit gegeven is door het systeem vastgelegd op "%1" en kan niet worden aangepast in deze weergave. + + + Files Ignored by Patterns Bestanden volgens patroon genegeerd + Global Ignore Settings Algemene negeer-instellingen + Ignored Files Editor Genegeerde bestanden-editor + Sync hidden files Synchroniseer verborgen bestanden - - This entry is provided by the system at "%1" and cannot be modified in this view. - Dit gegeven is door het systeem vastgelegd op "%1" en kan niet worden aangepast in deze weergave. - - + OCC::IgnoreListTableWidget - Add - Toevoegen - - + Add a new ignore pattern: Voeg nieuw negeerpatroon toe: - Allow Deletion - Verwijderen toestaan - - + Cannot write changes to "%1". Kan geen wijzigingen wegschrijven naar "%1". + Could not open file Kan het bestand niet openen + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2845,18 +3414,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhinderen dat een map verwijderd wordt. Dit is nuttig voor metadata. + Ignore Pattern Patroon negeren + + Add + Toevoegen + + + + Allow Deletion + Verwijderen toestaan + + + Pattern Patroon + Remove Verwijderen + Remove all Alles verwijderen @@ -2864,109 +3447,135 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Kan het bestand niet hernoemen omdat er al een bestand met dezelfde naam op de server bestaat. Kies een andere naam. + Checking rename permissions … Hernoem machtigingen controleren ... + Could not rename file. Please make sure you are connected to the server. Kan het bestand niet hernoemen. Zorg ervoor dat je verbonden bent met de server. + Could not rename local file. %1 Kan lokaal bestand niet hernoemen. %1 - Error - Fout - - + Failed to fetch permissions with error %1 Ophalen van machtigingen mislukt met fout %1 + Filename contains illegal characters: %1 Bestandsnaam bevat ongeldige tekens: %1 + Filename contains leading and trailing spaces. De bestandsnaam bevat spaties vooraan en achteraan. + Filename contains leading spaces. De bestandsnaam bevat spaties vooraan. + Filename contains trailing spaces. De bestandsnaam bevat spaties achteraan. - Invalid filename - Ongeldige bestandsnaam - - - New filename - Nieuwe bestandsnaam - - - Please enter a new name for the file: - Voer alsjeblieft een nieuwe naam voor dit bestand in: - - + Rename file Bestand hernoemen + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Het bestand %1 kan niet worden gesynchroniseerd omdat de naam tekens bevat die niet zijn toegestaan op dit systeem. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Het bestand %1 kan niet worden gesynchroniseerd omdat de naam tekens bevat die niet zijn toegestaan op dit systeem. - The file could not be synced because it contains characters which are not allowed on this system. - Dit bestand kon niet worden gesynchroniseerd omdat het symbolen bevat die niet toegestaan zijn op dit systeem. - - + The following basenames are not allowed: %1 De volgende basisnamen zijn niet toegestaan: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces + The following characters are not allowed: %1 De volgende tekens zijn niet toegestaan: %1 + The following file extensions are not allowed: %1 De volgende bestandsextensies zijn niet toegestaan: %1 + The following filenames are not allowed: %1 De volgende bestandsnamen zijn niet toegestaan: %1 + Use invalid name Gebruik ongeldige naam + You don't have the permission to rename this file. Please ask the author of the file to rename it. Je bent niet gemachtigd om dit bestand te hernoemen. Vraag de auteur van het bestand om het te hernoemen. - + + + Error + Fout + + + + Invalid filename + Ongeldige bestandsnaam + + + + New filename + Nieuwe bestandsnaam + + + + Please enter a new name for the file: + Voer alsjeblieft een nieuwe naam voor dit bestand in: + + + + The file could not be synced because it contains characters which are not allowed on this system. + Dit bestand kon niet worden gesynchroniseerd omdat het symbolen bevat die niet toegestaan zijn op dit systeem. + + OCC::LegacyAccountSelectionDialog + Legacy import Legacy import + Select the accounts to import from the legacy configuration: @@ -2974,18 +3583,23 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Gelicenseerd onder de GNU General Public License (GPL) Versie 2.0 of later</p> + Close Sluiten + + Legal notice Juridische bepalingen @@ -2993,18 +3607,22 @@ Objecten die verwijderd mogen worden, worden verwijderd als ze zouden verhindere OCC::LogBrowser + Enable logging to temporary folder Inschakelen logging naar tijdelijke map + Log Output Log Output + Open folder Openen map + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3013,6 +3631,7 @@ Omdat logbestanden groot kunnen worden, zal de client een nieuwe starten voor el Indien ingeschakeld, worden logboeken naar % 1 geschreven + This setting persists across client restarts. Note that using any logging command line options will override this setting. Deze instelling blijft bestaan tijdens het opnieuw opstarten van de client. @@ -3022,10 +3641,14 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Bestand "%1"<br/>kan niet voor schrijven worden geopend.<br/><br/>De log output kan <b>niet</b> opgeslagen worden!</nobr> + + Error Fout @@ -3033,26 +3656,32 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Er trad een fout op bij het instellen. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Kon geen bestand vinden om lokaal te bewerken. Zorg ervoor dat het pad juist is en dat het lokaal gesynchroniseerd is. + Could not get file ID. Kon het bestands-ID niet ophalen. + Could not get file identifier. Kon het bestands-ID niet ophalen. + Could not start editing locally. Kon lokaal bewerken niet starten. + The file identifier is empty. Het bestands-ID is leeg. @@ -3060,117 +3689,150 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::NetworkSettings - Download Bandwidth - Download bandbreedte - - + HTTP(S) proxy HTTP(S) proxy - Host - Server - - + Hostname of proxy server Hostnaam van proxyserver + + Password for proxy server + Wachtwoord voor proxyserver + + + + SOCKS5 proxy + SOCKS5 proxy + + + + Username for proxy server + Gebruikersnaam voor proxyserver + + + + Download Bandwidth + Download bandbreedte + + + + Host + Server + + + + KBytes/s KBytes/s + + Limit automatically Beperk automatisch + + Limit to Beperkt tot + + Limit to 3/4 of estimated bandwidth Beperk tot 3/4 van de geschatte bandbreedte + Manually specify proxy Specificeer proxy handmatig + + No limit Geen beperking + No proxy Geen proxy + Note: proxy settings have no effects for accounts on localhost Let op: proxy-instellingen hebben geen effect voor accounts op localhost - Password for proxy server - Wachtwoord voor proxyserver - - + Proxy Settings Proxy Instellingen + Proxy server requires authentication Proxyserver heeft verificatie nodig - SOCKS5 proxy - SOCKS5 proxy - - + Upload Bandwidth Upload bandbreedte + Use system proxy Gebruik systeem proxy - - Username for proxy server - Gebruikersnaam voor proxyserver - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>Een nieuwe versie van de %1 Client is beschikbaar, maar het updaten is mislukt.</p><p><b>%2</b> is gedownload. De geïnstalleerde versie is %3. Als je herstarten en bijwerken bevestigt, kan je computer opnieuw opgestart worden om de installatie te voltooien.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>Er is een nieuwe versie van de %1 Client beschikbaar.</p><p><b>%2</b> is beschikbaar voor download. De geïnstalleerde versie is %3.</p> + Ask again later Vraag later nogmaals + Get update Ophalen update + New Version Available Nieuwe versie beschikbaar + Restart and update Herstarten en bijwerken + Skip this time Deze keer overslaan + Update Failed Bijwerken mislukt + Update manually Handmatig bijwerken @@ -3178,58 +3840,72 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OCUpdater + %1 available. Restart application to start the update. %1 beschikbaar. Herstart de applicatie om de update te starten. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. Een nieuwe update voor %1 wordt geïnstalleerd. De updater kan om extra privileges vragen tijdens het update proces. Je computer kan herstart worden om de installatie te voltooien. + Checking update server … Controleren updateserver ... + Could not check for new updates. Kan niet controleren op nieuwe updates. + Could not download update. Please open %1 to download the update manually. Kon de update niet downloaden. Open %1 om de update handmatig te downloaden. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Kon de download niet bijwerken. Open <a href='%1'>%1</a> om de update handmatig te downloaden. + Downloading %1 … Downloaden %1 … + New %1 is available. Please open %2 to download the update. Nieuwe %1 beschikbaar. Open %2 om de update te downloaden. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. Nieuwe %1 beschikbaar. Open <a href='%2'>%1</a> om de update te downloaden. + New %1 update ready Nieuwe %1 update is klaar + No updates available. Your installation is the latest version. + Update Check Controle update + Update status is unknown: Did not check for new updates. Update status is onbekend: niet gecontroleerd op nieuwe updates. + You are using the %1 update channel. Your installation is the latest version. @@ -3237,55 +3913,72 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 map "%2" is gesynchroniseerd naar de lokale map "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 vrije ruimte + + (%1) (%1) + + (experimental) (experimenteel) + Connect Verbinden + In Finder's "Locations" sidebar section + Local Sync Folder Lokale synchronisatiemap + Sync the folder "%1" Synchroniseer de map "%1" + There isn't enough free space in the local folder! Er is niet genoeg ruimte beschikbaar in de lokale map! + + Use &virtual files instead of downloading content immediately %1 Gebruik &virtuele bestanden in plaats van direct downloaden content%1 + Virtual files are not supported at the selected location + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Virtuele bestanden worden niet ondersteund voor Windows-partitie-hoofdmappen als lokale map. Kies een geldige submap onder de stationsletter. + Warning: The local folder is not empty. Pick a resolution! Waarschuwing: De lokale map is niet leeg. Maak een keuze! @@ -3293,26 +3986,32 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres <em>%1</em>.Hoe wilt u verder gaan?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Kan niet verbinden met het opgegeven beveiligde serveradres. Hoe wilt u verder gaan?</p></body></html> + Configure client-side TLS certificate Configureer het client-side TLS-certificaat + Connection failed Verbinding mislukt + Retry unencrypted over HTTP (insecure) Probeer onversleuteld over HTTP (onbeveiligd) + Select a different URL Selecteer een andere URL @@ -3320,71 +4019,88 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Account %1: %2 + Account synchronization is disabled Account synchronisatie is uitgeschakeld + Checking for changes in local "%1" Controleren op wijzigingen in lokale "%1" + Checking for changes in remote "%1" Controleren op wijzigingen in externe "%1" + Disconnected from %1 Losgekoppeld van %1 + Disconnected from accounts: Losgekoppeld van account: + Please sign in Log alstublieft in + Terms of service + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. De server van account %1 gebruikt een niet ondersteunde versie %2. Het gebruik van deze clientsoftware met niet-ondersteunde server versies is niet getest en mogelijk gevaarlijk. Verdergaan is op eigen risico. + There are no sync folders configured. Er zijn geen synchronisatie-mappen geconfigureerd. + Unsupported Server Version Niet-ondersteunde server versie + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. + macOS VFS for %1: A problem was encountered. + macOS VFS for %1: Last sync was successful. + macOS VFS for %1: Sync is running. @@ -3392,14 +4108,17 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudHttpCredsPage + &Email &E-mail + Connect to %1 Verbinden met %1 + Enter user credentials Vul uw inloggegevens in @@ -3407,6 +4126,8 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Onmogelijk om wijzigingstijd te krijgen voor bestand in conflict %1) @@ -3414,18 +4135,23 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudSetupPage + &Next > &Volgende > + Could not load certificate. Maybe wrong password? Kan certificaat niet laden. Misschien is het wachtwoord onjuist? + + Server address does not seem to be valid Het serveradres lijkt niet geldig + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name De link naar je %1 web interface wanneer je die opent in de browser. @@ -3434,118 +4160,150 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokale synch map %1 is succesvol aangemaakt!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Succesvol verbonden met %1: %2 versie %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.</font><br/>ga terug en controleer je inloggevens.</p> + A sync connection from %1 to remote directory %2 was set up. Er is een synchronisatie verbinding van %1 naar externe map %2 opgezet. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Toegang door server verboden. Om te verifiëren dat je toegang mag hebben, <a href="%1">klik hier</a> om met je browser toegang tot de service te krijgen. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Kan de map niet verwijderen en back-uppen, omdat de map of een bestand daarin, geopend is in een ander programma. Sluit de map of het bestand en drup op Opnieuw of annuleer de installatie. + Connection to %1 could not be established. Please check again. Er kan geen verbinding worden gemaakt met %1. Probeer het nog eens. + Could not create local folder %1 Kan lokale map %1 niet aanmaken + Creating local sync folder %1 … Creëren lokale synchronisatie map %1 ... + Error: %1 Fout: %1 + Failed to connect to %1 at %2:<br/>%3 Kon geen verbinding maken met %1 op %2:<br/>%3 + Folder rename failed Hernoemen map mislukt + Invalid URL Ongeldige URL + Local sync folder %1 already exists, setting it up for sync.<br/><br/> Lokale synchronisatie map %1 bestaat al, deze wordt ingesteld voor synchronisatie.<br/><br/> + No remote folder specified! Geen externe map opgegeven! + OK OK + Remote folder %1 created successfully. Externe map %1 succesvol gecreëerd. + + Remote folder %1 creation failed with error <tt>%2</tt>. Aanmaken van externe map %1 mislukt met fout <tt>%2</tt>. + Successfully connected to %1! Succesvol verbonden met %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. De geauthentiseerde aanvraag voor de server werd omgeleid naar "%1". De URL is onjuist, de server is verkeerd geconfigureerd. + + The folder creation resulted in HTTP error code %1 Het aanmaken van de map resulteerde in HTTP foutcode %1 + The remote folder %1 already exists. Connecting it for syncing. De externe map %1 bestaat al. Verbinden voor synchroniseren. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> Het aanmaken van de externe map is mislukt, waarschijnlijk omdat je inloggegevens fout waren.<br/>Ga terug en controleer je inloggegevens.</p> + There was an invalid response to an authenticated WebDAV request Er is een ongeldig antwoord ontvangen op een geauthenticeerde WebDAV opvraging + Timeout while trying to connect to %1 at %2. Time-out bij verbinden met %1 op %2. + + Trying to connect to %1 at %2 … Probeer te verbinden met %1 om %2 ... + creating folder on Nextcloud: %1 aanmaken map op Nextcloud: %1 + failed. mislukt. @@ -3553,45 +4311,55 @@ Merk op dat het gebruik van logging-opdrachtregel opties deze instelling zal ove OCC::OwncloudWizard + Add %1 account Toevoegen %1 account + Back Next button text in new account wizard Terug + Cancel Annuleren + Enable experimental feature? Inschakelen experimentele functies? + Enable experimental placeholder mode Inschakelen experimentele aanduider modus + Next Next button text in new account wizard + Proxy Settings Proxy Settings button text in new account wizard Proxy Instellingen + Skip folders configuration Sla configuratie van mappen over + Stay safe Blijf veilig + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3611,10 +4379,12 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PasswordInputDialog + Password for share required Wachtwoord voor delen vereist + Please enter a password for your share: Voer het wachtwoord in voor je deellink: @@ -3622,6 +4392,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PollJob + Invalid JSON reply from the poll URL Ongeldig JSON antwoord van de opgegeven URL @@ -3629,166 +4400,210 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. + Cannot modify encrypted item because the selected certificate is not valid. + Cannot sync due to invalid modification time Kan niet synchroniseren door ongeldig wijzigingstijdstip + Case Clash Conflict: Server file downloaded and renamed to avoid clash. + Conflict: Server version downloaded, local copy renamed and not uploaded. Bestandsconflict: serverversie is gedownload, de lokale kopie is hernoemd en niet geüpload + Could not upload file, because it is open in "%1". Kan bestand niet uploaden, omdat het geopend is in "%1". + Error while deleting file record %1 from the database Fout tijdens verwijderen bestandsrecord %1 uit de database + Error while reading the database Fout bij lezen database + File has extension reserved for virtual files. Bestand heeft een extensie gereserveerd voor virtuele bestanden. + File is listed on the ignore list. Het bestand is opgenomen op de negeerlijst. + File is not accessible on the server. server error + File name contains at least one invalid character De bestandsnaam bevat ten minste één ongeldig teken + File name is a reserved name on this file system. + File names containing the character "%1" are not supported on this file system. %1: the invalid character + File names ending with a period are not supported on this file system. Bestandsnamen die eindigen met een punt worden niet ondersteund door het bestandssysteem. + File/Folder is ignored because it's hidden. Bestand/Map is genegeerd omdat het verborgen is. + Filename contains leading and trailing spaces. De bestandsnaam bevat spaties vooraan en achteraan. + Filename contains leading spaces. De bestandsnaam bevat spaties vooraan. + Filename contains trailing spaces. De bestandsnaam bevat spaties achteraan. + Filename is too long. De bestandsnaam is te lang. + Folder is not accessible on the server. server error + Folder name contains at least one invalid character Mapnaam bevat minimaal één ongeldig karakter + Folder name is a reserved name on this file system. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character + Ignored because of the "choose what to sync" blacklist Genegeerd vanwege de "wat synchroniseren" negeerlijst + + Moved to invalid target, restoring Verplaatst naar ongeldig doel, herstellen + Not allowed because you don't have permission to add files in that folder Niet toegestaan omdat je geen machtiging hebt om bestanden in die map toe te voegen + Not allowed because you don't have permission to add subfolders to that folder Niet toegestaan, omdat je geen machtiging hebt om submappen aan die map toe te voegen + Not allowed to remove, restoring Niet toegestaan om te verwijderen, herstellen + Not allowed to upload this file because it is read-only on the server, restoring Niet toegestaan om dit bestand te uploaden, omdat het alleen-lezen is op de server, herstellen + Reason: the entire filename is forbidden. + Reason: the file has a forbidden extension (.%1). + Reason: the filename contains a forbidden character (%1). + Reason: the filename has a forbidden base name (filename start). + Stat failed. Stat mislukt. + Symbolic links are not supported in syncing. Symbolische links worden niet ondersteund bij het synchroniseren. + The filename cannot be encoded on your file system. De bestandsnaam kan op je bestandssysteem niet worden gecodeerd. + The filename is blacklisted on the server. De bestandsnaam staat op de negeerlijst van de server. + Upload of %1 exceeds %2 of space left in folder %3. + Upload of %1 exceeds %2 of space left in personal files. @@ -3796,26 +4611,38 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateDirectory + Could not delete file %1 from local DB + Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + File is currently in use Bestand is al in gebruik + + + + + + The folder %1 cannot be made read-only: %2 Map %1 kon niet alleen-lezen gemaakt worden: %2 + + unknown exception onbekende uitzondering @@ -3823,54 +4650,70 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB + Could not get file %1 from local DB + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + File %1 cannot be downloaded because encryption information is missing. Bestand %1 kan niet worden gedownload, omdat crypto informatie ontbreekt. + File %1 downloaded but it resulted in a local file name clash! Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! + + File %1 has invalid modified time reported by server. Do not save it. Bestand %1 heeft een ongeldige wijzigingstijd gerapporteerd door de server. Bewaar het niet. + + File has changed since discovery Het bestand is gewijzigd sinds het is gevonden + File was deleted from server Bestand was verwijderd van de server + Free space on disk is less than %1 Vrije schijfruimte is minder dan %1 + The download would reduce free local disk space below the limit De download zou de vrije lokale schijfruimte beperken tot onder de limiet + The downloaded file is empty, but the server said it should have been %1. Het gedownloade bestand is leeg, maar de server meldde dat het %1 zou moeten zijn. + The file %1 is currently in use Bestand %1 is al in gebruik + The file could not be downloaded completely. Het bestand kon niet volledig worden gedownload. @@ -3878,10 +4721,12 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateItemJob + ; Restoration Failed: %1 ; Herstellen mislukt: %1 + A file or folder was removed from a read only share, but restoring failed: %1 Er is een bestand of map verwijderd van een alleen-lezen share, maar herstellen is mislukt: %1 @@ -3889,30 +4734,39 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateLocalMkdir + Could not create folder %1 Kon map %1 niet maken + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + Folder %1 cannot be created because of a local file or folder name clash! Map %1 kan niet worden gemaakt wegens een lokaal map- of bestandsnaam conflict! + The file %1 is currently in use Bestand %1 is al in gebruik + + + The folder %1 cannot be made read-only: %2 Map %1 kon niet alleen-lezen gemaakt worden: %2 + could not delete file %1, error: %2 kon bestand file %1 niet verwijderen, fout: %2 + unknown exception onbekende uitzondering @@ -3920,14 +4774,19 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB + Could not remove %1 because of a local file name clash Bestand %1 kon niet worden verwijderd, omdat de naam conflicteert met een lokaal bestand + + + Temporary error when removing local item removed from server. @@ -3935,38 +4794,49 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateLocalRename + Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB + + Could not get file %1 from local DB + + Error setting pin state Fout bij instellen pin status + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + Failed to propagate directory rename in hierarchy + Failed to rename file Kon bestand niet hernoemen + File %1 downloaded but it resulted in a local file name clash! Bestand %1 gedownload maar het resulteerde in een lokaal bestandsnaam conflict! + Folder %1 cannot be renamed because of a local file or folder name clash! Map %1 kan niet hernoemd worden vanwege een lokale bestands- of mapnaamclash! + The file %1 is currently in use Bestand %1 is al in gebruik @@ -3974,10 +4844,12 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". @@ -3985,6 +4857,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2". @@ -3992,18 +4865,22 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Fout bij schrijven van metadata naar de database: %1 + Failed to encrypt a folder %1 Kon een map %1 niet versleutelen + The file %1 is currently in use Bestand %1 is al in gebruik + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht was 201, maar ontvangen "%1 %2". @@ -4011,34 +4888,44 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Kon bestandsrecord %1 niet verwijderen uit de lokale DB + Could not get file %1 from local DB + Could not rename %1 to %2, error: %3 Kon niet %1 hernoemen naar %2, fout: %3 + Error setting pin state Fout bij instellen pin status + + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + Error writing metadata to the database Fout bij schrijven van Metadata naar de database + + The file %1 is currently in use Bestand %1 is al in gebruik + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Foutieve HTTP code ontvangen van de server. Verwacht werd 201, maar ontvangen "%1 %2". @@ -4046,46 +4933,60 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateUploadFileCommon + Error updating metadata: %1 Fout bij bijwerken metadata: %1 + Failed to unlock encrypted folder. Kon versleutelde map niet ontgrendelen. + Failed to upload encrypted file. Kon versleuteld bestand niet uploaden. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Bestand %1 kan niet worden geüpload omdat er al een ander bestand met dezelfde naam bestaat, al verschillen hoofd/kleine letters + + + File %1 has invalid modification time. Do not upload to the server. Bestand %1 heeft een ongeldige laatste wijziging datum. Upload niet naar de server. + File Removed (start upload) %1 Bestand verwijderd (start upload) %1 + Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. + Local file changed during syncing. It will be resumed. Lokaal bestand gewijzigd gedurende sync. Wordt opnieuw meegenomen. + The file %1 is currently in use Bestand %1 is al in gebruik + Unable to upload an item with invalid characters Kon een item met onjuiste tekens niet uploaden + + Upload of %1 exceeds the quota for the folder Upload van %1 overschrijdt het quotum voor de map @@ -4093,32 +4994,39 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateUploadFileNG + File is not accessible on the server. server error + Folder is not accessible on the server. server error + Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. + Missing File ID from server Ontbrekende File ID van de server + Poll URL missing Peilingen-URL ontbreekt + The local file was removed during sync. Het lokale bestand werd verwijderd tijdens sync. + Unexpected return code from server (%1) Onverwachte reactie van server (%1) @@ -4126,18 +5034,22 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::PropagateUploadFileV1 + Local file changed during sync. Lokaal bestand gewijzigd tijdens sync. + Poll URL missing URL opvraag ontbreekt + The local file was removed during sync. Het lokale bestand werd verwijderd tijdens sync. + The server did not acknowledge the last chunk. (No e-tag was present) De server heeft het laatste deel niet bevestigd (er was geen e-tag aanwezig) @@ -4145,22 +5057,27 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ProxyAuthDialog + Password: Wachtwoord: + Proxy authentication required Proxy-authenticatie vereist + Proxy: Proxy: + The proxy server needs a username and password. De proxyserver heeft een gebruikersnaam en wachtwoord nodig + Username: Gebruikersnaam: @@ -4168,6 +5085,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::SelectiveSyncDialog + Choose What to Sync Kies wat te synchroniseren @@ -4175,26 +5093,33 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Er trad een fout op bij het laden van de lijst met submappen. + Deselect remote folders you do not wish to synchronize. Deselecteer de externe mappen die u niet wenst te synchroniseren. + Loading … Laden ... + Name Naam + + No subfolders currently on the server. Momenteel geen submappen op de server. + Size Grootte @@ -4202,10 +5127,12 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ServerNotificationHandler + Dismiss Terzijde leggen + Reply Antwoord @@ -4213,14 +5140,17 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::sesSnackBar + Error Fout + Success Succes + Warning Waarschuwing @@ -4228,23 +5158,28 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud %1 Instellingen + Account Account + General Algemeen + New account Nieuw account + Settings Instellingen @@ -4252,19 +5187,24 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Zoekresultaten (global) + No results found Geen resultaten gevonden + + Search globally Zoek door alles @@ -4272,6 +5212,7 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ShareManager + Error Fout @@ -4279,38 +5220,47 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::ShareModel + %1 days + 1 day + Could not find local folder for %1 Kan lokale map niet vinden voor %1 + Internal link Interne link + Link share + Secure file drop Beveiligde bestands-drop + Secure file drop link Beveiligde bestands-drop link + Share link Deellink + Today Vandaag @@ -4318,22 +5268,28 @@ Dit is een nieuwe, experimentele modus. Als je besluit het te gebruiken, vragen OCC::SocketApi + + Activity Activiteit + Context menu share Contextmenu delen + Copy internal link Kopieer interne link + Copy private link to clipboard Kopieer privé-link naar klembord + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4342,18 +5298,22 @@ Server replied with error: %2 Server antwoordde met fout: %2 + Delete Verwijderen + Delete local changes Verwijder lokale aanpassingen + Encrypt Versleutel + Expires in %1 minutes remaining time before lock expires @@ -4362,82 +5322,104 @@ Server antwoordde met fout: %2 + Failed to encrypt folder Kon de map niet versleutelen + Failed to encrypt folder at "%1" Kon een map niet versleutelen in %1 + Folder encrypted successfully Map succesvol versleuteld + I shared something with you Ik deelde iets met u + Leave this share Verlaat deze gedeelde locatie + Lock file Vergrendel bestand + Locked by %1 Vergrendeld door %1 + Move and rename … Verplaatsen en hernoemen ... + Move and upload … Verplaatsen en uploaden ... + Move, rename and upload … Verplaatsen, hernoemen en uploaden ... + + Open in browser Openen in browser + Resharing this file is not allowed Opnieuw delen van dit bestand is niet toegestaan + Resharing this folder is not allowed Opnieuw delen van deze map is niet toegestaan + Resolve conflict … Oplossen conflict ... + Select new location … Selecteer nieuwe locatie ... + Send private link by email … Verstuur privélink per e-mail --- + + Share options Deelopties + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. Het account %1 heeft geen begin-tot-eind versleuteling ingesteld. Ga naar je accountinstellingen om mapversleuteling in te stellen. + The following folder was encrypted successfully: "%1" De volgende map was succesvol versleuteld: "%1" + Unlock file Ontgrendel bestand @@ -4445,98 +5427,122 @@ Server antwoordde met fout: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (zelf ondertekend) + <h3>Certificate Details</h3> <h3>Certificaat details</h3> + <h3>Fingerprints</h3> <h3>Vingerafdrukken</h3> + <h3>Issuer</h3> <h3>Uitgever</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Let op:</b> Dit certificaat werd handmatig goedgekeurd</p> + Certificate information: Certificaat informatie: + Common Name (CN): Common Name (CN): + Country: Land: + Expires on: Vervalt op: + Issued on: Uitgegeven op: + Issuer: Uitgever: + No support for SSL session tickets/identifiers Geen ondersteuning voor SSL-sessie tickets/identifiers + Organization (O): Organisatie (O): + Organizational Unit (OU): Organisatie unit (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Serienummer: + Server version: %1 Serverversie: %1 + State/Province: Land/Provincie: + Subject Alternative Names: Alternatieve subject namen: + The connection is not secure De verbinding is niet veilig + This connection is NOT secure as it is not encrypted. Deze verbinding is NIET veilig, omdat deze niet versleuteld is. + This connection is encrypted using %1 bit %2. Deze verbinding is versleuteld via %1 bit %2. @@ -4544,122 +5550,156 @@ Server antwoordde met fout: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;niet gespecificeerd&gt; + Additional errors: Additionele fouten: + Cannot connect securely to <i>%1</i>: Kan niet beveiligd verbinden met <i>%1</i>: + + Country: %1 Land: %1 + Effective Date: %1 Ingangsdatum: %1 + Expiration Date: %1 Vervaldatum: %1 + Fingerprint (SHA-256): <tt>%1</tt> Fingerprint (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Fingerprint (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Fingerprint (SHA1): <tt>%1</tt> + Issuer: %1 Uitgever: %1 + + Organization: %1 Organisatie: %1 - Trust this certificate anyway - Vertrouw dit certificaat alsnog - - + + Unit: %1 Unit: %1 + Untrusted Certificate Niet vertrouwd certificaat + with Certificate %1 met certificaat %1 - + + + Trust this certificate anyway + Vertrouw dit certificaat alsnog + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (overgeslagen wegens een eerdere fout, probeer opnieuw over %2) + Cannot open the sync journal Kan het sync transactielog niet openen + Could not set file record to local DB: %1 Kon bestandsrecord %1 niet instellen op de lokale DB: %1 + Could not update file metadata: %1 Kon bestand metadata niet bijwerken: %1 + Could not update file: %1 Kon bestand niet bijwerken: %1 + Could not update virtual file metadata: %1 Kon virtuele bestand metadata niet bijwerken: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Schijfruimte laag: Downloads die de vrije ruimte tot onder %1 zouden reduceren, zijn overgeslagen. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Slechts %1 beschikbaar, maar heeft minimaal %2 nodig om te starten + There is insufficient space available on the server for some uploads. Onvoldoende schijfruimte op de server voor sommige uploads. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Kon de lokale sync-database niet openen of aanmaken. Zorg ervoor dat je schrijf-toegang hebt in de sync-map + Unable to read from the sync journal. Niet mogelijk om te lezen uit het synchronisatie verslag. + Unable to read the blacklist from the local database Kan de blacklist niet lezen uit de lokale database + Unresolved conflict. Bestandsconflict + Using virtual files with suffix, but suffix is not set gebruik maken van virtuele bestanden met achtervoegsel, maar achtervoegsel niet ingesteld @@ -4667,58 +5707,76 @@ Server antwoordde met fout: %2 OCC::SyncStatusSummary + %1 of %2 %1 van %2 + %1 of %2 · %3 left %1 van %2 · %3 resterend + + + All synced! Alles gesynchroniseerd! + Checking folder changes Controleren op wijzigingen map + + + Offline Offline + See below for errors Zie hieronder voor fouten + See below for warnings Zie hieronder voor waarschuwingen + Some files could not be synced! Sommige bestanden konden niet gesynchroniseerd worden! + Some files couldn't be synced! Sommige bestanden konden niet gesynchroniseerd worden! + Sync paused Synchronisatie gepauzeerd + Syncing Synchroniseren + Syncing changes Synchroniseren wijzigingen + Syncing file %1 of %2 Bestand %1 van %2 synchroniseren + You need to accept the terms of service @@ -4726,43 +5784,55 @@ Server antwoordde met fout: %2 OCC::Systray + Add account Account toevoegen + Download Download + Exit %1 %1 afsluiten + Help Help + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Open %1 Desktop + + Pause sync Pauzeer sync + Pause sync for all Pauzeer sync voor iedereen + + Resume sync Vervolg sync + Resume sync for all Vervolg sync voor iedereen + Settings Instellingen @@ -4770,22 +5840,27 @@ Server antwoordde met fout: %2 OCC::TermsOfServiceCheckWidget + Copy Link Kopiëren link + Link copied to clipboard. Link gekopieerd naar het klembord. + Open Browser Browser openen + Polling + Waiting for terms to be accepted @@ -4793,90 +5868,115 @@ Server antwoordde met fout: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Gebruik makend van virtuele bestanden plugin: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Deze release is geleverd door %1</p> - - + ExpandMemory-Link https://wl.hidrive.com/easy/0097 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1045 - Help-Link - https://wl.hidrive.com/easy/0108 + + Login_URL + https://storage.ionos.com - Help-Link_STRATO - https://static.hidrive.com/next/1015 + + Login_URL_STRATO + https://storage.ionos.com + LegalNotice-Link https://wl.hidrive.com/easy/0004 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1025 - Login_URL - https://storage.ionos.com - - - Login_URL_STRATO - https://storage.ionos.com - - + MoreInformation-Link https://wl.hidrive.com/easy/0007 + MoreInformation-Link_STRATO https://static.hidrive.com/next/1015 + OpenSource-Link https://wl.hidrive.com/easy/0006 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://wl.hidrive.com/easy/0005 + Privacy-Link_STRATO https://static.hidrive.com/next/1005 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Gebruik makend van virtuele bestanden plugin: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Deze release is geleverd door %1</p> + + + + + + Help-Link + https://wl.hidrive.com/easy/0108 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1015 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Fout bij het laden van providers. + Failed to fetch search providers for '%1'. Error: %2 Fout bij het zoeken van providers voor '%1'. Error: %2 + Search has failed for '%1'. Error: %2 Fout bij het zoeken naar '%1'. Error: %2 + Search has failed for '%2'. Fout bij het zoeken naar '%2'. @@ -4884,14 +5984,17 @@ Server antwoordde met fout: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Failed to finalize item. + Failed to unlock encrypted folder. Kon versleutelde map niet ontgrendelen. + Failed to update folder metadata. Kon metadata niet uploaden. @@ -4899,33 +6002,43 @@ Server antwoordde met fout: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Kan gebruiker %1 niet toevoegen of verwijderen voor toegang tot map %2 + Could not fetch public key for user %1 Kon de publieke sleutel voor gebruiker %1 niet vinden + Could not find root encrypted folder for folder %1 Kon de versleutelde basismap voor map %1 niet vinden + + + + + + + + + Error updating metadata for a folder %1 Fout bij bijwerken metadata voor een map: %1 + Failed to unlock a folder. Kon een map niet ontgrendelen. OCC::User - - %1 notifications - %1 kennisgevingen - + %n notification(s) %n melding @@ -4933,44 +6046,55 @@ Server antwoordde met fout: %2 + End-to-end certificate needs to be migrated to a new one + Open %1 Assistant in browser The placeholder will be the application name. Please keep it + Open %1 Talk in browser The placeholder will be the application name. Please keep it + Public Share Link + Quota Warning - %1 percent or more storage in use + Quota is updated; %1 percent of the total space is used. + Rename file Bestand hernoemen + + Resolve conflict Conflict oplossen... + Retry all uploads Probeer alle uploads opnieuw + Trigger the migration @@ -4978,26 +6102,32 @@ Server antwoordde met fout: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Wilt je echt de verbinding met het account <i>%1</i> verbreken?</p><p><b>Let op:</b> Hierdoor verwijder je <b>geen</b> bestanden.</p> + Cancel Annuleren + Confirm Account Removal Bevestig verwijderen account + Leave share + Remove account + Remove connection Verwijderen verbinding @@ -5005,6 +6135,7 @@ Server antwoordde met fout: %2 OCC::UserStatusSelectorModel + %n day(s) @@ -5012,6 +6143,7 @@ Server antwoordde met fout: %2 + %n hour(s) @@ -5019,6 +6151,7 @@ Server antwoordde met fout: %2 + %n minute(s) @@ -5026,54 +6159,70 @@ Server antwoordde met fout: %2 + 1 hour 1 uur + 30 minutes 30 minuten + 4 hours 4 uren + Could not clear status message. Make sure you are connected to the server. Kan het statusbericht niet wissen. Zorg ervoor dat je verbonden bent met de server. + Could not fetch predefined statuses. Make sure you are connected to the server. Kan vooraf gedefinieerde statussen niet ophalen. Zorg ervoor dat je verbonden bent met de server. + Could not fetch status. Make sure you are connected to the server. Kan status niet ophalen. Zorg ervoor dat je verbonden bent met de server. + Could not set status. Make sure you are connected to the server. Kan status niet instellen. Zorg ervoor dat je verbonden bent met de server. + + Don't clear Niet wissen + Emojis are not supported. Some status functionality may not work. Emoji's worden niet ondersteund. Sommige gebruikersstatusfuncties werken mogelijk niet. + Less than a minute Minder dan een minuut + Status feature is not supported. You will not be able to set your status. Gebruikersstatus functie wordt niet ondersteund. Je zult je gebruikersstatus niet kunnen instellen. + + This week Deze week + + Today Vandaag @@ -5081,14 +6230,17 @@ Server antwoordde met fout: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. @@ -5096,30 +6248,37 @@ Server antwoordde met fout: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 kon niet worden gedownload. + + Error downloading %1 + Fout bij downloaden %1 + + + > More details > Meer details + Could not be downloaded + Download error Downloadfout + Error downloading Fout bij downloaden - Error downloading %1 - Fout bij downloaden %1 - - + More details Meer details @@ -5127,6 +6286,8 @@ Server antwoordde met fout: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum @@ -5134,6 +6295,8 @@ Server antwoordde met fout: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Fout bij bijwerken metadata door ongeldige laatste wijziging datum @@ -5141,10 +6304,12 @@ Server antwoordde met fout: %2 OCC::WebEnginePage + Invalid certificate detected Ongeldig certificaat gedetecteerd + The host "%1" provided an invalid certificate. Continue? De server "%1" heeft een ongeldig certificaat . Wilt u doorgaan? @@ -5152,6 +6317,7 @@ Server antwoordde met fout: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>U bent afgemeld bij uw account %1 op %2. Log opnieuw in.</b> @@ -5159,22 +6325,27 @@ Server antwoordde met fout: %2 OCC::WelcomePage - Form - Formulier - - + Host your own server Host je eigen server + Keep your data secure and under your control Hou je gegevens veilig en in eigen beheer + + Form + Formulier + + + Log in Aanmelden + Sign up with provider Aanmelden bij provider @@ -5182,27 +6353,33 @@ Server antwoordde met fout: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy HTTP(S) proxy + Hostname of proxy server Hostnaam van proxyserver + Password for proxy server Wachtwoord voor proxyserver + Proxy Settings Dialog window title for proxy settings Proxy Instellingen + SOCKS5 proxy SOCKS5 proxy + Username for proxy server Gebruikersnaam voor proxyserver @@ -5210,55 +6387,68 @@ Server antwoordde met fout: %2 OwncloudAdvancedSetupPage + &Local Folder &Lokale map + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Als deze checkbox is aangevinkt zullen bestaande bestanden in de lokale map worden gewist om een schone sync vanaf de server te starten.</p><p>Vink dit niet aan als de lokale bestanden naar de map op de server zouden moeten worden geüploadet.</p></body></html> + Ask before syncing folders larger than Vraag bevestiging voor synchronisatie van mappen groter dan + Choose different folder Kies een andere map + Choose what to sync Selectieve synchronisatie + Erase local folder and start a clean sync Wis de map op je computer en start een schone sync + Keep local data Bewaar de lokale gegevens + Local Folder Lokale map + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Serveradres + Sync Logo Sync Logo + Synchronize everything from server Synchroniseer alles vanaf de server + Username Gebruikersnaam @@ -5266,10 +6456,12 @@ Server antwoordde met fout: %2 OwncloudHttpCredsPage + &Password &Wachtwoord + &Username &Gebruikersnaam @@ -5277,10 +6469,12 @@ Server antwoordde met fout: %2 OwncloudSetupPage + Server address Serveradres + This is the link to your %1 web interface when you open it in the browser. De link naar je %1 web interface wanneer je die opent in de browser. @@ -5288,145 +6482,170 @@ Server antwoordde met fout: %2 progress + Deleted Verwijderd + Deleting Verwijderen + Downloaded Gedownload + Downloading Downloaden + + Error Fout + Filesystem access error Toegangsfout van het bestandssysteem + Ignored Genegeerd + Ignoring Negeren + Moved to %1 Verplaatst naar %1 + Moving Verplaatsen + Replaced by virtual file Vervangen door virtueel bestand + Server version downloaded, copied changed local file into case conflict conflict file Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand + Server version downloaded, copied changed local file into conflict file Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand + + Unknown Onbekend + Updated end-to-end encryption metadata + Updated local metadata Lokale metadata geüploaded + Updated local virtual files metadata Metagegevens van lokale virtuele bestanden bijgewerkt + Updating end-to-end encryption metadata + Updating local metadata Bijwerken lokale metadata + Updating local virtual files metadata Bijwerken lokale virtuele bestanden metadata + Uploaded Geüpload + Uploading Uploaden + Virtual file created Virtueel bestand gecreëerd - - updating local virtual files metadata - Metagegevens van lokale virtuele bestanden bijwerken - ProxySettings + Form Formulier + Host Server + Manually specify proxy Specificeer proxy handmatig + No proxy Geen proxy + Note: proxy settings have no effects for accounts on localhost Let op: proxy-instellingen hebben geen effect voor accounts op localhost + Proxy Settings Proxy Instellingen + Proxy server requires authentication Proxyserver heeft verificatie nodig + Use system proxy Gebruik systeem proxy QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5435,6 +6654,7 @@ Server antwoordde met fout: %2 + %nh delay in hours after an activity @@ -5443,6 +6663,7 @@ Server antwoordde met fout: %2 + %nmin delay in minutes after an activity @@ -5451,174 +6672,222 @@ Server antwoordde met fout: %2 + 1min one minute after activity date and time - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - + + Some time ago + Even geleden - Could not create debug archive in selected location! - Kon geen debug-archief aanmaken op geselecteerde locatie! + + in the future + in de toekomst - Error deleting the file - + + now + nu + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + De map %1 kan geen deel uitmaken van je synchronisatiemap. Kies een andere map. + + + + New folder + Nieuwe map + + Could not create debug archive in selected location! + Kon geen debug-archief aanmaken op geselecteerde locatie! + + + Failed to create debug archive Debug-archief is niet aangemaakt - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - + + Synced %1 + Gesynchroniseerd %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - + + You changed %1 + Je wijzigde %1 - New folder - Nieuwe map + + You created %1 + Je creëerde %1 - Paths beginning with '#' character are not supported in VFS mode. - + + You deleted %1 + Je verwijderde %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + + You renamed %1 + Je hernoemde %1 + + + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Some time ago - Even geleden + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Synced %1 - Gesynchroniseerd %1 + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - The directory %1 cannot be part of your sync directory. Please choose another folder. - De map %1 kan geen deel uitmaken van je synchronisatiemap. Kies een andere map. + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. + The server does not recognize the request method. Please contact your server administrator for help. + The server does not support the version of the connection being used. Contact your server administrator for help. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. + This file type isn’t supported. Please contact your server administrator for assistance. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. - You changed %1 - Je wijzigde %1 - - - You created %1 - Je creëerde %1 - - - You deleted %1 - Je verwijderde %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. - You renamed %1 - Je hernoemde %1 + + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. + - Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. + + Error deleting the file - in the future - in de toekomst + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - now - nu + + Paths beginning with '#' character are not supported in VFS mode. + - + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5627,26 +6896,32 @@ Server antwoordde met fout: %2 + All local versions Alle lokale versies + All server versions Alle server versies + Cancel Annuleren + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Kies of je lokale versie, server versie of beide wilt behouden. Als je voor beide kiest, krijgt het lokale bestand een nummer toegevoegd aan de naam. + Resolve conflicts Los conflicten op + Solve sync conflicts Los synchronisatieconflicten op @@ -5654,6 +6929,7 @@ Server antwoordde met fout: %2 SesErrorBox + Error Fout @@ -5661,14 +6937,17 @@ Server antwoordde met fout: %2 SesTrayHeader + Open Nextcloud in browser HiDrive Next in browser openen + Open local or team folders + Website Website @@ -5676,10 +6955,12 @@ Server antwoordde met fout: %2 ShareDelegate + Copied! Gekopieerd! + Share options Deelopties @@ -5687,66 +6968,78 @@ Server antwoordde met fout: %2 ShareDetailsPage + Add another link Nog een link toevoegen + Allow resharing Opnieuw delen toestaan + + Allow upload and editing Uploaden en bewerken toestaan + An error occurred setting the share password. Er trad een fout op bij het instellen van het wachtwoord voor de deellink + Copy share link Copy share link + Custom Permissions Aangepaste machtigingen + Enter a note for the recipient - Enter the note to recipient - Voer de notitie aan de ontvanger in - - + File drop (upload only) Bestands-drop (alleen uploaden) + Hide download Verberg download + Note to recipient Notitie voor ontvanger + Password protection + Set expiration date Instellen vervaldatum + Share link copied! Share link copied! + Unshare Delen opheffen + View only Alleen bekijken @@ -5754,10 +7047,12 @@ Server antwoordde met fout: %2 ShareeSearchField + Search for users or groups… Zoeken naar gebruikers of groepen ... + Sharing is not available for this folder Delen is niet beschikbaar voor deze map @@ -5765,30 +7060,37 @@ Server antwoordde met fout: %2 ShareView + Expires in %1 + Password required for new share Wachtwoord vereist voor delen + Share password Wachtwoord + Shared with you by %1 + Sharing is disabled Delen is uitgeschakeld + Sharing is disabled. Delen is uitgeschakeld. + This item cannot be shared. Dit item kan niet worden gedeeld @@ -5796,6 +7098,7 @@ Server antwoordde met fout: %2 SyncJournalDb + Failed to connect database. Kon niet verbinden met database. @@ -5803,14 +7106,17 @@ Server antwoordde met fout: %2 SyncStatus + Open browser + Resolve conflicts Los conflicten op + Sync now Nu synchroniseren @@ -5818,10 +7124,12 @@ Server antwoordde met fout: %2 TalkReplyTextField + Reply to … Antwoord aan ... + Send reply to chat message Stuur antwoord op chatbericht @@ -5829,14 +7137,17 @@ Server antwoordde met fout: %2 TermsOfServiceCheckWidget + Logo Logo + Switch to your browser to accept the terms of service + Terms of Service @@ -5844,42 +7155,52 @@ Server antwoordde met fout: %2 theme + Error occurred during setup Er trad een fout op bij het instellen + Error occurred during sync Er trad een fout op tijdens synchronisatie + Preparing to sync Voorbereiden synchronisatie + Stopping sync Synchronisatie stoppen + Sync is paused Synchronisatie is gepauzeerd + Sync is running Bezig met synchroniseren + Sync status is unknown Synchronisatiestatus is onbekend + Sync was successful Synchronisatie was geslaagd + Sync was successful but some files were ignored Synchronisatie geslaagd, sommige bestanden werden genegeerd + Waiting to start syncing In afwachting van synchronisatie @@ -5887,30 +7208,37 @@ Server antwoordde met fout: %2 TrayFoldersMenuButton + Files Bestanden + Open %1 in file explorer Open %1 in bestandsverkenner + Open local folder Open lokale map + Open local folder "%1" Open lokale map "%1" + Open local or team folders + Open team folder "%1" + User group and local folders menu Menu gebruikersgroep en lokale mappen @@ -5918,42 +7246,52 @@ Server antwoordde met fout: %2 TrayWindowAccountMenu + Account switcher and settings menu Wisselen van gebruiker en instellingsmenu + Add account + Current account Huidige gebruiker + Current account avatar Huidige gebruiker avatar + Current account status is do not disturb Huidige gebruikersstatus is Niet Storen + Current account status is online Huidige gebruikersstatus is Online + Exit Verlaat + Pause sync for all Synchronisatie pauzeren voor alles + Resume sync for all Synchronisatie hervatten voor alles + Settings Instellingen @@ -5961,14 +7299,17 @@ Server antwoordde met fout: %2 TrayWindowHeader + More apps + Open %1 in browser + Open local or team folders @@ -5976,22 +7317,27 @@ Server antwoordde met fout: %2 TrayWindowHeaderBar + More apps + Open %1 in browser + Open Nextcloud in browser HiDrive Next in browser openen + Open local or team folders + Website Website @@ -5999,6 +7345,7 @@ Server antwoordde met fout: %2 UnifiedSearchInputContainer + Search files, messages, events … Zoek in bestanden, berichten, afspraak ... @@ -6006,6 +7353,7 @@ Server antwoordde met fout: %2 UnifiedSearchPlaceholderView + Start typing to search @@ -6013,6 +7361,7 @@ Server antwoordde met fout: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Laad meer resultaten @@ -6020,6 +7369,7 @@ Server antwoordde met fout: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Zoekresultaat skelet. @@ -6027,6 +7377,7 @@ Server antwoordde met fout: %2 UnifiedSearchResultListItem + Load more results Laad meer resultaten @@ -6034,6 +7385,7 @@ Server antwoordde met fout: %2 UnifiedSearchResultNothingFound + No results for Geen resultaten voor @@ -6041,6 +7393,7 @@ Server antwoordde met fout: %2 UnifiedSearchResultSectionItem + Search results section %1 Zoekresultaten sectie %1 @@ -6048,22 +7401,29 @@ Server antwoordde met fout: %2 UserLine + Account actions Accountacties + + Log in Meld u aan + + Log out Afmelden + Remove account + Switch to account Omschakelen naar account @@ -6071,26 +7431,32 @@ Server antwoordde met fout: %2 UserStatusMessageView + Apply Toepassen + Cancel Annuleren + Clear Wissen + Clear status message after + Status message Status bericht + What is your status? @@ -6098,38 +7464,47 @@ Server antwoordde met fout: %2 UserStatusSetStatusView + Appear offline + Away Afwezig + Busy Bezet + Do not disturb Niet storen + Invisible Onzichtbaar + Mute all notifications Demp alle meldingen + Online Online + Online status Online status + Status message Status bericht @@ -6137,30 +7512,37 @@ Server antwoordde met fout: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) @@ -6168,6 +7550,7 @@ Server antwoordde met fout: %2 + %n hour(s) @@ -6175,6 +7558,7 @@ Server antwoordde met fout: %2 + %n minute(s) @@ -6182,6 +7566,7 @@ Server antwoordde met fout: %2 + %n month(s) @@ -6189,6 +7574,7 @@ Server antwoordde met fout: %2 + %n second(s) @@ -6196,6 +7582,7 @@ Server antwoordde met fout: %2 + %n year(s) @@ -6206,42 +7593,52 @@ Server antwoordde met fout: %2 utility + Always available locally Altijd lokaal beschikbaar + Available online only Alleen online beschikbaar + Could not open browser Kon browser niet openen + Could not open email client Kon e-mailclient niet openen + Currently available locally Momenteel lokaal beschikbaar + Free up local space Lokale ruimte vrijmaken + Make always available locally Maak altijd lokaal beschikbaar + Some available online only Sommige alleen online beschikbaar + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Er trad een fout op bij het starten van de browser om naar URL %1 te gaan. Misschien is er geen standaardbrowser geconfigureerd? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Er trad een fout op bij het starten van de e-mailclient om een nieuw bericht te maken. Misschien is er geen e-mailclient gedefinieerd? @@ -6249,14 +7646,17 @@ Server antwoordde met fout: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" Het header controlegetal bevat een onbekend controlegetal type "%1" + The checksum header is malformed. De header van het controlegetal is misvormd. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" Het gedownloade bestand komt niet overeen met het controlegetal. Het wordt opnieuw verwerkt. "%1" != "%2" diff --git a/translations/client_sv.ts b/translations/client_sv.ts index 3915ad40977f5..e19ca79970956 100644 --- a/translations/client_sv.ts +++ b/translations/client_sv.ts @@ -1,55 +1,14 @@ - - - - Agree - Håller med - - - Back - Tillbaka - - - Necessary data - Nödvändiga uppgifter - - - Required to ensure that the software can be used as expected - Krävs för att säkerställa att programvaran kan användas som förväntat - - - Save Settings - Spara inställningar - - - Send anonymous use - Skicka anonym användning - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. - - - This helps us to optimize the software and to better identify system crashes and unexpected errors. - Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. - - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. - - ActivityItem + In %1 Om %1 + Open %1 locally Öppna %1 lokalt @@ -57,10 +16,12 @@ ActivityItemContent + Dismiss Avfärda + Open file details Öppna filinformation @@ -68,40 +29,40 @@ ActivityList + Activity list Aktivitetslista + No activities yet Inga aktiviteter än + Scroll to top Bläddra till toppen - - BasicComboBox - - Clear status message menu - Meny för att ta bort statusmeddelande - - CallNotificationDialog + Answer Talk call notification Meddelande om samtal vid Answer Talk + Decline Avvisa + Decline Talk call notification Avvisa meddelande om samtal + Talk notification caller avatar Avatar för samtalsnotis för uppringare @@ -109,71 +70,89 @@ CloudProviderWrapper + %1 (%2, %3) %1 (%2, %3) + Checking for changes in "%1" Söker efter ändringar i "%1" + Help Hjälp + Log out Logga ut + + No recently changed files Inga nyligen ändrade filer + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Öppna %1 Desktop + Open in browser Öppna i webbläsare + Pause synchronization Pausa synkronisering + Quit sync client Avsluta synkroniseringsklienten + Recently changed Nyligen ändrade + Settings Inställningar + Sync paused Synkroniseringen pausad + Syncing Synkroniserar + Syncing %1 Synkroniserar %1 + Syncing %1 (%2 left) Synkroniserar %1 (%2 kvar) + Syncing %1 of %2 Synkroniserar %1 av %2 + Syncing %1 of %2 (%3 left) Synkroniserar %1 av %2 (%3 kvar) @@ -181,10 +160,12 @@ ConflictDelegate + Local version Lokal version + Server version Serverversion @@ -192,46 +173,59 @@ CurrentAccountHeaderButton + Account switcher and settings menu Kontobytare och inställningsmeny + Add account Lägg till konto + Add new account Lägg till nytt konto + Current account Nuvarande konto + Current account avatar Avatar för aktuellt konto + Current account status is do not disturb Aktuell kontostatus är stör ej + Current account status is online Aktuell kontostatus är online + Exit Avsluta + + Pause sync for all Pausa synkronisering för alla + + Resume sync for all Återuppta synkronisering för alla + Settings Inställningar @@ -239,6 +233,7 @@ EditFileLocallyLoadingDialog + Opening file for local editing Öppnar fil för lokal redigering @@ -246,6 +241,7 @@ EmojiPicker + No recent emojis Inga senaste emojier @@ -253,6 +249,7 @@ EncryptionTokenDiscoveryDialog + Discovering the certificates stored on your USB token Sök efter certifikaten som är lagrade på din USB-token @@ -260,6 +257,7 @@ ErrorBox + Error Fel @@ -267,6 +265,7 @@ FileDetailsPage + Dismiss Avfärda @@ -274,6 +273,7 @@ FileDetailsWindow + File details of %1 · %2 Filinformation för %1 · %2 @@ -281,28 +281,25 @@ FileProviderEvictionDialog + Local copies Lokala kopior + Reload Ladda om + Remove local copies Ta bort lokala kopior - - FileProviderFastEnumerationSettings - - Fast sync will only sync changes in files and folders within folders that have been explored. This can significantly increase responsiveness on initial configuration of virtual files. However, it will cause redundant downloads of files moved to an unexplored folder. - Snabbsynkronisering synkroniserar endast ändringar i filer och mappar inom mappar som har utforskats. Detta kan avsevärt öka svarstiden vid den första konfigurationen av virtuella filer. Det kommer dock att orsaka överflödiga nedladdningar av filer som flyttas till en outforskad mapp. - - FileProviderFileDelegate + Delete Radera @@ -310,22 +307,22 @@ FileProviderSettings + Enable virtual files Aktivera virtuella filer + General settings Allmänna inställningar + Reset virtual files environment Återställ miljön för virtuella filer - Signal file provider domain - Domän för leverantör av signalfil - - + Virtual files settings Inställningar virtuella filer @@ -333,18 +330,17 @@ FileProviderStorageInfo + %1 GB of %2 GB remote files synced %1 GB av %2 GB filer synkroniserade - Evict local copies... - Utesluta lokala kopior... - - + Free up space … Frigör utrymme … + Local storage use Användning lokal lagring @@ -352,20 +348,24 @@ FileProviderSyncStatus + All synced! Allt synkroniserat! + Request a sync of changes for the VFS environment. macOS may ignore or delay this request. Begär en synkronisering av ändringar för VFS-miljön. macOS kan ignorera eller fördröja denna begäran. + Request sync Begär synkronisering + Syncing Synkroniserar @@ -373,10 +373,12 @@ macOS kan ignorera eller fördröja denna begäran. FileSystem + Could not remove folder "%1" Kunde inte ta bort mappen "%1" + Error removing "%1": %2 Kunde inte radera "%1": %2 @@ -384,22 +386,28 @@ macOS kan ignorera eller fördröja denna begäran. Flow2AuthWidget + + An error occurred while connecting. Please try again. Ett fel inträffade vid anslutning. Försök igen. + Browser Authentication Webbläsarautentisering + Copy Link Kopiera länk + Logo Logotyp + Switch to your browser to connect your account Använd din webbläsare för att få åtkomst till ditt konto @@ -407,10 +415,12 @@ macOS kan ignorera eller fördröja denna begäran. FolderWizardSelectiveSync + Add Folder Sync Lägg till mappsynkronisering + Step 3 of 3: Selektive Synchronisation Steg 3 av 3: Selektiv synkronisering @@ -418,18 +428,22 @@ macOS kan ignorera eller fördröja denna begäran. FolderWizardSourcePage + &Choose &Välj + Add Folder Sync Lägg till mappsynkronisering + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Välj en mapp på din hårddisk som ska vara permanent ansluten till din %1. Alla filer och undermappar laddas upp och synkroniseras automatiskt. + Step 1 of 3: Select local folder Steg 1 av 3: Välj lokal mapp @@ -437,30 +451,37 @@ macOS kan ignorera eller fördröja denna begäran. FolderWizardTargetPage + Add Folder Sync Lägg till mappsynkronisering + Both folders are permanently linked and the respective contents are automatically synchronized and updated. De båda mapparna är permanent länkade och respektive innehåll synkroniseras och uppdateras automatiskt. + Create folder Skapa mapp + Folders Mappar + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Välj eller skapa nu en målmapp i din %1 där innehållet ska laddas upp och synkroniseras. + Refresh Uppdatera + Step 2 of 3: Directory in your %1 Steg 2 av 3: Katalog i din %1 @@ -468,14 +489,17 @@ macOS kan ignorera eller fördröja denna begäran. MainWindow + Main content Huvudinnehåll + New activities Nya aktiviteter + Unified search results list Sammanlagda sökresultat @@ -483,6 +507,7 @@ macOS kan ignorera eller fördröja denna begäran. nextcloudTheme::aboutInfo() + <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> <p><small>Byggd från Git revision <a href="%1">%2</a> den %3, %4 med Qt %5, %6</small></p> @@ -490,14 +515,17 @@ macOS kan ignorera eller fördröja denna begäran. OCC::AbstractNetworkJob + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. + The server enforces strict transport security and does not accept untrusted certificates. Servern tillämpar strikt transport­skydd och accepterar inte opålitliga certifikat. + The server took too long to respond. Check your connection and try syncing again. If it still doesn’t work, reach out to your server administrator. Servern tog för lång tid på sig att svara. Kontrollera din anslutning och försök synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. @@ -505,18 +533,22 @@ macOS kan ignorera eller fördröja denna begäran. OCC::Account + File %1 is already locked by %2. Filen %1 är redan låst av %2. + Lock operation on %1 failed with error %2 Låsning av %1 misslyckades med felet %2 + Public Share Link Offentlig delningslänk + Unlock operation on %1 failed with error %2 Upplåsning av %1 misslyckades med felet %2 @@ -524,30 +556,30 @@ macOS kan ignorera eller fördröja denna begäran. OCC::AccountManager - %1 accounts were detected from a legacy desktop client. -Should the accounts be imported? - %1 konton upptäcktes från en äldre stationär klient. -Bör kontona importeras? - - + An account was detected from a legacy desktop client. Should the account be imported? Ett konto upptäcktes från en äldre skrivbordsklient. Ska kontot importeras? + Could not import accounts from legacy client configuration. Kunde inte importera konton från äldre klientkonfiguration. + Import Importera + + Legacy import Import från äldre version + Skip Hoppa över @@ -555,310 +587,333 @@ Ska kontot importeras? OCC::AccountSettings + %1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits. %1 (%3%) av %2 används. Vissa mappar, inklusive nätverksmonterade eller delade mappar, kan ha andra gränser. + %1 as %2 %1 som %2 + %1 in use %1 används + %1 of %2 in use %1 av %2 används + (experimental) (experimentell) + <p>Could not create local folder <i>%1</i>.</p> <p>Kunde inte skapa lokal mapp <i>%1</i>.</p> + <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vill du verkligen avbryta synkronisering av mappen <i>%1</i>?</p><p><b>Observera:</b> Detta kommer <b>inte</b> att radera några filer.</p> - Apply - Tillämpa - - - Apply manual changes - Spara manuella ändringar - - + + Availability Tillgänglighet - Cancel - Avbryt - - + Choose what to sync Välj vad som ska synkroniseras + Confirm Folder Sync Connection Removal Bekräfta borttagning av synkroniseringskoppling för mapp + Connected to %1. Ansluten till %1. - Connected with <server> as <user> - Ansluten till <server> som <user> - - + Connecting to %1 … Ansluter till %1 … - Connection settings - Anslutningsinställningar - - + Could not encrypt folder because the folder does not exist anymore Kunde inte kryptera mappen eftersom den inte längre finns + + Create new folder Skapa ny mapp + Currently there is no storage usage information available. För närvarande finns ingen information om lagringsanvändning tillgänglig. + Disable support Inaktivera stöd + Disable virtual file support … Inaktivera stöd för virtuella filer ... + Disable virtual file support? Inaktivera stöd för virtuella filer? + Display mnemonic Visa krypteringsord + + Do not encrypt folder Kryptera inte mapp + Do you want to forget the end-to-end encryption settings for %1 on this device? Vill du glömma inställningarna till ände-till-ände-kryptering för %1 på den här enheten? + + Edit Ignored Files Redigera ignorerade filer + Enable virtual file support %1 … Aktivera stöd för virtuella filer %1 … + Encrypt Kryptera + + Encrypt folder Kryptera mapp + Encryption failed Kryptering misslyckades + Encryption is set-up. Remember to <b>Encrypt</b> a folder to end-to-end encrypt any new files added to it. Kryptering är konfigurerad. Kom ihåg att <b>Kryptera</b> en mapp för att ände-till-ände-kryptera alla nya filer som läggs till i den. + End-to-end Encryption Ände-till-ände-kryptering + End-to-end Encryption with Virtual Files ände-till-ände-kryptering med virtuella filer + End-to-end encryption has been initialized on this account with another device.<br>Enter the unique mnemonic to have the encrypted folders synchronize on this device as well. Ände-till-ände-kryptering har initierats på det här kontot med en annan enhet.<br>Ange den unika minnesfrasen för att synkronisera de krypterade mapparna även på den här enheten. + End-to-end encryption has not been initialized on this account. Ände-till-ände-kryptering har inte aktiverats på detta konto. + End-to-end encryption mnemonic Krypteringsord för ände-till-ände-kryptering - Expand Memory - Expandera minnet - - - ExpandMemory-Link - https://static.hidrive.com/next/1045 - - - ExpandMemory-Link_STRATO - https://static.hidrive.com/next/1044 - - + Folder creation failed Kunde inte skapa mappen + Force sync now Tvinga synkronisering nu + Forget encryption setup Glöm krypteringsinställning + Forget the end-to-end encryption on this device Glöm ände-till-ände-krypteringen på den här enheten + Forgetting end-to-end encryption will remove the sensitive data and all the encrypted files from this device.<br>However, the encrypted files will remain on the server and all your other devices, if configured. Att glömma ände-till-ände-kryptering kommer att ta bort känslig data och alla krypterade filer från den här enheten.<br>Filerna kommer dock att finnas kvar på servern och på alla dina andra enheter, om de är konfigurerade. + Migrate certificate to a new one Migrera certifikat till ett nytt + No %1 connection configured. Ingen %1 anslutning konfigurerad. + No account configured. Inget konto konfigurerat. + + Open folder Öppna mapp + Pause sync Pausa synkronisering + Please wait for the folder to sync before trying to encrypt it. Vänta tills mappen är synkroniserad innan du försöker kryptera den. + Remove Folder Sync Connection Ta bort synkroniseringskoppling för mapp + Remove folder sync connection Ta bort synkroniseringskoppling för mapp + Restart sync Starta om synkronisering + Resume sync Återuppta synkronisering + Server %1 is currently being redirected, or your connection is behind a captive portal. Server %1 omdirigeras för närvarande, eller så ligger din anslutning bakom en inloggningsportal. + Server %1 is currently in maintenance mode. Servern %1 är för närvarande i underhållsläge. + Server %1 is temporarily unavailable. Servern %1 är för tillfället inte tillgänglig. + Server configuration error: %1 at %2. Felaktig serverkonfiguration: %1 vid %2. + Set up encryption Aktivera kryptering + Signed out from %1. Utloggad från %1. - Standard file sync - Filsynkronisering standard - - + Storage space %1% occupied Förvaringsutrymme %1% upptaget - Storage space: … - Lagringsutrymme: … - - + Sync Running Synkronisering pågår - Synchronize all - Synkronisera alla - - - Synchronize none - Synkronisera inga - - + The folder has a minor sync problem. Encryption of this folder will be possible once it has synced successfully Mappen har ett mindre synkroniseringsproblem. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats + The folder has a sync error. Encryption of this folder will be possible once it has synced successfully Mappen har ett synkroniseringsfel. Kryptering av denna mapp kommer att vara möjlig när den väl har synkroniserats + The server version %1 is unsupported! Proceed at your own risk. Serverversion %1 stöds inte! Fortsätt på egen risk. + The syncing operation is running.<br/>Do you want to terminate it? En synkronisering pågår.<br/>Vill du avbryta den? + There are folders that have grown in size beyond %1MB: %2 Det finns mappar som har vuxit i storlek större än %1MB: %2 + There are folders that were not synchronized because they are external storages: Det finns mappar som inte synkroniserades eftersom de är externa lagringsutrymmen: + There are folders that were not synchronized because they are too big or external storages: Det finns mappar som inte synkroniserades eftersom de är för stora eller externa lagringsutrymmen: + There are folders that were not synchronized because they are too big: Det finns mappar som inte synkroniserades eftersom de är för stora: + This account supports end-to-end encryption, but it needs to be set up first. Det här kontot stöder ände-till-ände-kryptering, men det måste konfigureras först. + This action will disable virtual file support. As a consequence contents of folders that are currently marked as "available online only" will be downloaded. The only advantage of disabling virtual file support is that the selective sync feature will become available again. @@ -871,73 +926,129 @@ Den enda fördelen med att inaktivera stödet för virtuella filer är att funkt Den här åtgärden avbryter alla pågående synkroniseringar. - This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. -<b>This process is not reversible. Are you sure you want to proceed?</b> - Detta kommer att kryptera din mapp och alla filer i den. Dessa filer kommer inte längre att vara åtkomliga utan din krypteringsnyckel. -<b>Den här processen är inte reversibel. Är du säker på att du vill fortsätta?</b> - - + This will encrypt your folder and all files within it. These files will no longer be accessible without your encryption mnemonic key. <b>This process is not reversible. Are you sure you want to proceed?</b> Detta kommer att kryptera din mapp och alla filer den innehåller. Dessa filer kommer inte längre att vara tillgängliga utan dina krypteringsord. <b>Denna process går inte att ångra. Är du säker på att du vill fortsätta?</b> + To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note it down and keep it safe. You will need it to set-up the synchronization of encrypted folders on your other devices. För att skydda din kryptografiska identitet krypterar vi den med en minnesfras bestående av 12 ord från en ordlista. Skriv ner den och förvara den säkert. Du kommer att behöva den för att konfigurera synkronisering av krypterade mappar på dina andra enheter. - To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. Please note these down and keep them safe. They will be needed to add other devices to your account (like your mobile phone or laptop). - För att skydda din kryptografiska identitet krypterar vi den med en mnemonik bestående av 12 ordboksord. Anteckna dessa och förvara dem säkert. De kommer att behövas för att lägga till andra enheter till ditt konto (som din mobiltelefon eller bärbara dator). - - + Unable to connect to %1. Kan inte ansluta till %1. - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - De mappar som inte väljs kommer att <b>raderas</b> från det lokala filsystemet och kommer inte att synkroniseras till den här datorn längre. - - - Virtual file sync - Filsynkronisering virtuella filer - - + Warning Varning + You cannot encrypt a folder with contents, please remove the files. Wait for the new sync, then encrypt it. Du kan inte kryptera en mapp med innehåll, ta bort filerna. Vänta på en ny synk och kryptera den sedan. + You cannot encrypt this folder because the end-to-end encryption is not set-up yet on this device. Would you like to do this now? Du kan inte ände-till-ände-kryptera den här mappen eftersom end-to-end-kryptering ännu inte är konfigurerad på den här enheten. Vill du konfigurera den nu? + You need to accept the terms of service at %1. Du måste acceptera användarvillkoren på %1. + You seem to have the Virtual Files feature enabled on this folder. At the moment, it is not possible to implicitly download virtual files that are end-to-end encrypted. To get the best experience with virtual files and end-to-end encryption, make sure the encrypted folder is marked with "Make always available locally". Det verkar som att funktionen "Virtuella filer" är aktiverad för denna mapp. För närvarande är det inte möjligt att ladda ner virtuella filer som är end-to-end-krypterade. För att använda virtuella filer med ände-till-ände-kryptering, säkerställ att "Gör alltid tillgänglig lokalt" är aktiverat på den krypterade mappen. - + + + Apply + Tillämpa + + + + Apply manual changes + Spara manuella ändringar + + + + + + Cancel + Avbryt + + + + Connected with <server> as <user> + Ansluten till <server> som <user> + + + + Connection settings + Anslutningsinställningar + + + + Expand Memory + Expandera minnet + + + + Standard file sync + Filsynkronisering standard + + + + + Storage space: … + Lagringsutrymme: … + + + + Synchronize all + Synkronisera alla + + + + Synchronize none + Synkronisera inga + + + + Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore + De mappar som inte väljs kommer att <b>raderas</b> från det lokala filsystemet och kommer inte att synkroniseras till den här datorn längre. + + + + Virtual file sync + Filsynkronisering virtuella filer + + OCC::AccountSetupFromCommandLineJob + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Åtkomst förbjuden av servern. För att kontrollera att du har korrekta rättigheter, <a href="%1">klicka här</a> för att ansluta till tjänsten med din webb-läsare. + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. Den autentiserade begäran till servern omdirigerades till "%1". URL:en är felaktig, servern är felkonfigurerad. + There was an invalid response to an authenticated WebDAV request Det kom ett felaktigt svar på en autentiserad WebDAV-begäran @@ -945,46 +1056,57 @@ Vill du konfigurera den nu? OCC::AccountState + Asking Credentials Frågar efter inloggningsuppgifter + Configuration error Konfigurationsfel + Connected Ansluten + Disconnected Bortkopplad + Maintenance mode Underhållsläge + Need the user to accept the terms of service Användaren behöver acceptera användarvillkoren + Network error Nätverksfel + Redirect detected Omdirigering upptäcktes + Service unavailable Tjänsten är inte tillgänglig + Signed out Utloggad + Unknown account state Okänd kontostatus @@ -992,14 +1114,17 @@ Vill du konfigurera den nu? OCC::ActivityListModel + Fetching activities … Hämtar aktiviteter ... + For more activities please open the Activity app. Öppna Aktivitetsappen för fler aktiviteter. + Network error occurred: client will retry syncing. Nätverksfel inträffade: klienten kommer att försöka synkronisera igen. @@ -1007,34 +1132,42 @@ Vill du konfigurera den nu? OCC::AddCertificateDialog + + Certificate files (*.p12 *.pfx) + Certifikatfiler (*.p12 *.pfx) + + + + Select a certificate + Välj ett certifikat + + + An encrypted pkcs12 bundle is strongly recommended as a copy will be stored in the configuration file. En krypterad PKCS12-kedja är starkt rekommenderad då en kopia kommer att lagras i konfigurationsfilen. + Browse … Välj … + Certificate & Key (pkcs12): Certifikat och nyckel (pkcs12) : - Certificate files (*.p12 *.pfx) - Certifikatfiler (*.p12 *.pfx) - - + Certificate password: Certifikatlösenord: + SSL client certificate authentication SSL klientcertifikat-autentisering - Select a certificate - Välj ett certifikat - - + This server probably requires a SSL client certificate. Denna server kräver förmodligen ett SSL klientcertifikat @@ -1042,32 +1175,39 @@ Vill du konfigurera den nu? OCC::Application + %1 accounts number of accounts imported %1 konton + %1 folders number of folders imported %1 mappar + 1 account 1 konto + 1 folder 1 mapp + Continue Fortsätt + Error accessing the configuration file Kunde inte komma åt konfigurationsfilen + Imported %1 and %2 from a legacy desktop client. %3 number of accounts and folders imported. list of users. @@ -1075,35 +1215,43 @@ Vill du konfigurera den nu? %3 + Legacy import Import från äldre version + Quit Avsluta + Some settings were configured in %1 versions of this client and use features that are not available in this version.<br><br>Continuing will mean <b>%2 these settings</b>.<br><br>The current configuration file was already backed up to <i>%3</i>. Vissa inställningar har konfigurerats i %1 versioner av den här klienten och använder funktioner som inte är tillgängliga i den här versionen.<br><br>Att fortsätta kommer att betyda <b>%2 dessa inställningar</b>.<br><br>Den aktuella konfigurationsfilen har redan säkerhetskopierats till <i>%3</i>. + There was an error while accessing the configuration file at %1. Please make sure the file can be accessed by your system account. Ett fel uppstod vid läsning av konfigurationsfilen vid %1. Kontrollera att filen kan nås av ditt datorkonto. + deleting radera + ignoring ignorera + newer newer software version nyare + older older software version äldre @@ -1112,18 +1260,22 @@ Vill du konfigurera den nu? OCC::AuthenticationDialog + &Password: &Lösenord: + &Username: &Användarnamn: + Authentication Required Autentisering krävs + Enter username and password for "%1" at %2. Ange användarnamn och lösenord för "%1" på %2. @@ -1131,10 +1283,12 @@ Vill du konfigurera den nu? OCC::BasePropagateRemoteDeleteEncrypted + "%1 Failed to unlock encrypted folder %2". "%1 kunde inte låsa upp den krypterade mappen %2". + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. 204 förväntades, men "%1 %2" mottogs. @@ -1142,18 +1296,22 @@ Vill du konfigurera den nu? OCC::BulkPropagatorDownloadJob + Error updating metadata: %1 Fel vid uppdatering av metadata: %1 + File %1 can not be downloaded because of a local file name clash! Filen %1 kan inte laddas ner på grund av en namnkonflikt med en lokal fil! + The file %1 is currently in use Filen %1 används för närvarande + Unable to update metadata of new file %1. error with update metadata of new Win VFS file Kunde inte uppdatera metadata för den nya filen %1. @@ -1162,50 +1320,63 @@ Vill du konfigurera den nu? OCC::BulkPropagatorJob + Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Fil %1 kan inte laddas upp eftersom en annan fil med samma namn, där endast stora/små bokstäver skiljer sig, finns + File %1 has invalid modification time. Do not upload to the server. Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. + File %1 has invalid modified time. Do not upload to the server. Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. + File Removed (start upload) %1 Filen borttagen (starta uppladdning) %1 + File contains leading or trailing spaces and couldn't be renamed Filen innehåller inledande eller avslutande mellanslag och kunde inte döpas om + + Local file changed during sync. Lokal fil ändrades under synkronisering. + Local file changed during syncing. It will be resumed. Lokal fil ändrades under synkronisering. Den kommer återupptas. + Network error: %1 Nätverksfel: %1 + Restoration failed: %1 Återställning misslyckades: %1 + The file %1 is currently in use Filen %1 används för närvarande + The local file was removed during sync. Den lokala filen togs bort under synkronisering. @@ -1213,30 +1384,37 @@ Vill du konfigurera den nu? OCC::CaseClashConflictSolver + Cannot rename file because a file with the same name already exists on the server. Please pick another name. Kunde inte byta namn på filen eftersom filnamnet är upptaget. Ange ett annat filnamn. + Could not rename file. Please make sure you are connected to the server. Kunde inte byta namn på filen. Kontrollera anslutningen till servern. + Failed to fetch permissions with error %1 Misslyckades att hämta behörigheter med felet %1 + Filename contains leading and trailing spaces. Filnamnet innehåller blanksteg i början och slutet. + Filename contains leading spaces. Filnamnet innehåller inledande blanksteg. + Filename contains trailing spaces. Filnamnet innehåller blanksteg i slutet. + You don't have the permission to rename this file. Please ask the author of the file to rename it. Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. @@ -1244,86 +1422,111 @@ Vill du konfigurera den nu? OCC::CaseClashFilenameDialog + %1 does not support equal file names with only letter casing differences. %1 stöder inte lika filnamn med endast skillnader i versalisering. + + Filename contains illegal characters: %1 + Filnamnet innehåller ogiltiga tecken: %1 + + + + Filename contains leading and trailing spaces. + Filnamnet innehåller blanksteg i början och slutet. + + + + Filename contains leading spaces. + Filnamnet innehåller inledande blanksteg. + + + + Filename contains trailing spaces. + Filnamnet innehåller blanksteg i slutet. + + + + Rename file + Byt namn på fil + + + + The file "%1" could not be synced because of a case clash conflict with an existing file on this system. + Filen "%1" kunde inte synkroniseras på grund av en versaliseringskrock med en befintlig fil på detta system. + + + + Use invalid name + Använd ogiltigt namn + + + + 0 byte 0 byte + Case Clash Conflict Versaliseringskrock + Case clashing file Fil med versaliseringskrock + Error Fel + Existing file Befintlig fil - Filename contains illegal characters: %1 - Filnamnet innehåller ogiltiga tecken: %1 - - - Filename contains leading and trailing spaces. - Filnamnet innehåller blanksteg i början och slutet. - - - Filename contains leading spaces. - Filnamnet innehåller inledande blanksteg. - - - Filename contains trailing spaces. - Filnamnet innehåller blanksteg i slutet. - - + New filename Nytt filnamn + + Open clashing file Öppna filen med krocken + + Open existing file Öppna befintlig fil + Please enter a new name for the clashing file: Ange ett nytt namn för filen med krocken: - Rename file - Byt namn på fil - - - The file "%1" could not be synced because of a case clash conflict with an existing file on this system. - Filen "%1" kunde inte synkroniseras på grund av en versaliseringskrock med en befintlig fil på detta system. - - + The file could not be synced because it generates a case clash conflict with an existing file on this system. Filen kunde inte synkroniseras eftersom den skapar en konflikt med en befintlig fil på det här systemet. - Use invalid name - Använd ogiltigt namn - - + file A fil A + file B fil B + + today idag @@ -1331,6 +1534,7 @@ Vill du konfigurera den nu? OCC::CleanupPollsJob + Error writing metadata to the database Fel vid skrivning av metadata till databasen @@ -1338,27 +1542,33 @@ Vill du konfigurera den nu? OCC::ClientSideEncryption + Enter Certificate USB Token PIN: Ange PIN-kod för certifikat-USB-token: + Enter E2E passphrase Ange lösenord för E2E + Input PIN code Please keep it short and shorter than "Enter Certificate USB Token PIN:" Ange PIN-kod + Invalid PIN. Login failed Ogiltig PIN-kod. Inloggningen misslyckades + Login to the token failed after providing the user PIN. It may be invalid or wrong. Please try again! Inloggningen till token misslyckades efter att användarens PIN-kod angavs. Den kan vara ogiltig eller felaktig. Försök igen! + Please enter your end-to-end encryption passphrase:<br><br>Username: %2<br>Account: %3<br> Ange din lösenordsfras för ände-till-ände-kryptering:<br><br>Användarnamn: %2<br>Konto: %3<br> @@ -1366,66 +1576,87 @@ Vill du konfigurera den nu? OCC::ConflictDialog - 0 byte - 0 byte - - - <a href="%1">Open local version</a> - <a href="%1">Öppna lokal version</a> - - - <a href="%1">Open server version</a> - <a href="%1">Öppna serverversion</a> - - - Click to open the file - Klicka för att öppna filen - - - Conflicting versions of %1. - Versioner med konflikter av %1. - - + Keep both versions Behåll båda versionerna + Keep local version Behåll lokal version + + Keep selected version Behåll vald version + Keep server version Behåll serverversion - Local version - Lokal version - - + Open local version Öppna lokal version + Open server version Öppna serverversion + + + 0 byte + 0 byte + + + + <a href="%1">Open local version</a> + <a href="%1">Öppna lokal version</a> + + + + <a href="%1">Open server version</a> + <a href="%1">Öppna serverversion</a> + + + + + Click to open the file + Klicka för att öppna filen + + + + + Conflicting versions of %1. + Versioner med konflikter av %1. + + + + Local version + Lokal version + + + Server version Serverversion + Sync Conflict Synk-konflikt + Which version of the file do you want to keep?<br/>If you select both versions, the local file will have a number added to its name. Vilken version av filen vill du behålla?<br/>Om du väljer båda versionerna kommer den lokala filen att få ett nummer adderat till namnet. + + today idag @@ -1433,22 +1664,29 @@ Vill du konfigurera den nu? OCC::ConflictSolver + Confirm deletion Bekräfta radering + Do you want to delete the directory <i>%1</i> and all its contents permanently? Vill du radera mappen <i>%1</i> och allt innehåll permanent? + Do you want to delete the file <i>%1</i> permanently? Vill du radera filen <i>%1</i> permanent? + + Error Fel + + Moving file failed: %1 @@ -1460,27 +1698,33 @@ Vill du konfigurera den nu? OCC::ConnectionValidator + Authentication error: Either username or password are wrong. Autentiseringsfel: Användarnamn eller lösenord är felaktigt + No %1 account configured The placeholder will be the application name. Please keep it Inget %1 konto konfigurerat + Please update to the latest server and restart the client. Vänligen uppdatera till den senaste servern och starta om klienten. + The configured server for this client is too old Den konfigurerade servern är för den här klienten är för gammal + The provided credentials are not correct De angivna uppgifterna stämmer inte + Timeout Timeout @@ -1488,68 +1732,83 @@ Vill du konfigurera den nu? OCC::DataProtectionPage + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. + + + + This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO + Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. + + + Agree Håller med + Form Formulär + Settings Inställningar - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>. - Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. - - - This application uses tracking technologies. By clicking on Agree, you accept the processing of your anonymized data. You can adjust your choices at any time via the settings. <br/> <br/>Information on data processing and more can be found in our <a href='https://wl.hidrive.com/easy/0005'>privacy policy</a>._STRATO - Denna applikation använder spårningsteknik. Genom att klicka på Godkänn accepterar du behandlingen av dina anonymiserade data. Du kan när som helst justera dina val via inställningarna. <br/> <br/>Information om databehandling och mer finns i vår <a href='https://wl.hidrive.com/easy/1004'>integritetspolicy</a>. - - + OCC::DataProtectionSettingsPage + + We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. + Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. + + + Back Tillbaka + Form Formulär + Necessary data Nödvändiga uppgifter + Required to ensure that the software can be used as expected Krävs för att säkerställa att programvaran kan användas som förväntat + Save Settings Spara inställningar + Send anonymous use Skicka anonym användning + This helps us to optimize the software and to better identify system crashes and unexpected errors. Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. - - We collect anonymized data to optimize our app. We use software solutions from various partners for this purpose. We want to give you full transparency and freedom of choice regarding the collection and processing of your anonymized usage. You can change your settings at any time under the menu item Data Protection. - Vi samlar in anonymiserade data för att optimera vår app. Vi använder mjukvarulösningar från olika partners för detta ändamål. Vi vill ge dig full insyn och valfrihet när det gäller insamling och behandling av din anonymiserade användning. Du kan när som helst ändra dina inställningar under menyalternativet Dataskydd. - - + OCC::DiscoveryPhase + Error while canceling deletion of %1 Ett fel uppstod när radering av %1 skulle avbrytas + Error while canceling deletion of a file Ett fel uppstod när radering av en fil skulle avbrytas @@ -1557,18 +1816,23 @@ Vill du konfigurera den nu? OCC::DiscoverySingleDirectoryJob + + Encrypted metadata setup error! Fel i installationen av krypterade metadata! + Encrypted metadata setup error: initial signature from server is empty. Fel vid inställning av krypterade metadata: den ursprungliga signaturen från servern är tom. + Server error: PROPFIND reply is not XML formatted! Serverfel: PROPFIND-svar är inte XML-formaterat! + The server returned an unexpected response that couldn’t be read. Please reach out to your server administrator.” Servern returnerade ett oväntat svar som inte kunde läsas. Kontakta din serveradministratör. @@ -1576,22 +1840,27 @@ Vill du konfigurera den nu? OCC::DiscoverySingleLocalDirectoryJob + Directory not accessible on client, permission denied Mappen kan inte öppnas av klienten, åtkomst nekad + Directory not found: %1 Mappen hittades inte: %1 + Error while opening directory %1 Fel uppstod när mappen %1 öppnades + Error while reading directory %1 Ett fel uppstod när mappen %1 skulle öppnas + Filename encoding is not valid Filnamnets teckenuppsättning är ogiltig @@ -1599,62 +1868,93 @@ Vill du konfigurera den nu? OCC::EditLocallyJob + + + An error occurred during data retrieval. Ett fel uppstod under datahämtning. + + An error occurred during setup. Ett fel uppstod under installationen. + + An error occurred trying to synchronise the file to edit locally. Ett fel uppstod vid försök att synkronisera filen för att redigera lokalt. + + + + Could not find a file for local editing. Make sure it is not excluded via selective sync. Det gick inte att hitta en fil för lokal redigering. Kontrollera att den inte exkluderas via selektiv synkronisering. + + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Det gick inte att hitta en fil för lokal redigering. Se till att sökvägen är giltig och att den är synkroniserad lokalt. + Could not find a remote file info for local editing. Make sure its path is valid. Kunde inte hitta filinformation för lokal redigering. Kontrollera att sökvägen är giltig. + Could not open %1 Kunde inte öppna %1 + + + + + + + + Could not start editing locally. Det gick inte att börja redigera lokalt. + File %1 already locked. Filen %1 är redan låst. + File %1 could not be locked. Filen %1 kunde inte låsas. + File %1 now locked. Filen %1 är nu låst. + Invalid local file path. Ogiltig lokal filsökväg. + + Lock will last for %1 minutes. You can also unlock this file manually once you are finished editing. Låset varar i %1 minuter. Du kan också låsa upp filen manuellt när du är klar med redigeringen. + Please try again. Försök igen. + Server error: PROPFIND reply is not XML formatted! Serverfel: PROPFIND-svar är inte XML-formaterat! @@ -1662,10 +1962,12 @@ Vill du konfigurera den nu? OCC::EditLocallyManager + Could not validate the request to open a file from server. Det gick inte att validera begäran om att öppna en fil från servern. + Please try again. Försök igen. @@ -1673,26 +1975,34 @@ Vill du konfigurera den nu? OCC::EditLocallyVerificationJob + An error occurred trying to verify the request to edit locally. Ett fel uppstod vid försök att verifiera begäran om att redigera lokalt. + Could not find an account for local editing. Det gick inte att hitta ett konto för lokal redigering. + Could not start editing locally. Det gick inte att börja redigera lokalt. + Invalid file path was provided. Ogiltig sökväg angavs. + Invalid token received. Ogiltig token mottagen. + + + Please try again. Försök igen. @@ -1700,22 +2010,34 @@ Vill du konfigurera den nu? OCC::EncryptedFolderMetadataHandler + Error fetching encrypted folder ID. Fel vid hämtning av krypterat mapp-ID. + + + + + + Error fetching metadata. Fel vid hämtning av metadata. + + + Error locking folder. Fel vid låsning av mapp. + Error parsing or decrypting metadata. Fel vid tolkning eller dekryptering av metadata. + Failed to upload metadata Misslyckades med att ladda upp metadata @@ -1723,6 +2045,7 @@ Vill du konfigurera den nu? OCC::EncryptFolderJob + Could not generate the metadata for encryption, Unlocking the folder. This can be an issue with your OpenSSL libraries. Kunde inte generera metadata för kryptering, låser upp mappen. @@ -1732,6 +2055,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. OCC::FileDetails + %1 day(s) ago days elapsed since file last modified @@ -1740,6 +2064,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 hour(s) ago hours elapsed since file last modified @@ -1748,6 +2073,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 minute(s) ago minutes elapsed since file last modified @@ -1756,6 +2082,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 month(s) ago months elapsed since file last modified @@ -1764,6 +2091,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 second(s) ago seconds elapsed since file last modified @@ -1772,6 +2100,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 year(s) ago years elapsed since file last modified @@ -1780,6 +2109,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + Locked by %1 - Expires in %2 minute(s) remaining time before lock expires @@ -1791,22 +2121,28 @@ Det kan vara problem med dina OpenSSL-bibliotek. OCC::Flow2Auth + + An unexpected error occurred when trying to access the server. Please try to access it again later or contact your server administrator if the issue continues. Ett oväntat fel inträffade vid försök att komma åt servern. Försök igen senare eller kontakta serveradministratören om problemet kvarstår. + The returned server URL does not start with HTTPS despite the login URL started with HTTPS. Login will not be possible because this might be a security issue. Please contact your administrator. Den returnerade server-URL:n börjar inte med HTTPS trots att inloggnings-URL:n började med HTTPS. Inloggning kommer inte att vara möjlig eftersom detta kan vara ett säkerhetsproblem. Kontakta din administratör. + The server did not reply with the expected data. Please try connecting again later or contact your server administrator if the issue continues. Servern svarade inte som förväntat. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. + The server is temporarily unavailable because it is in maintenance mode. Please try again once maintenance has finished. Servern är tillfälligt otillgänglig eftersom den är i underhållsläge. Försök igen när underhållet har avslutats. + We couldn't parse the server response. Please try connecting again later or contact your server administrator if the issue continues. Vi kunde inte tolka serversvaret. Försök att ansluta igen senare eller kontakta serveradministratören om problemet kvarstår. @@ -1814,38 +2150,48 @@ Det kan vara problem med dina OpenSSL-bibliotek. OCC::Flow2AuthWidget + Copy Link Kopiera länk + + Error Fel + Link copied to clipboard. Länken kopierad till urklipp. + Open Browser Öppna webbläsaren + Polling for authorization Kontrollerar auktorisation + Starting authorization Startar auktorisering + Switch to your browser to connect your account Använd din webbläsare för att få åtkomst till ditt konto + Unable to open the Browser, please copy the link to your Browser. Det går inte att öppna webbläsaren, kopiera länken till din webbläsare. + Waiting for authorization Väntar på auktorisation @@ -1853,6 +2199,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. OCC::Folder + %1 and %n other file(s) are currently locked. %1 och %n andra fil(er) är för närvarande låsta. @@ -1860,6 +2207,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 and %n other file(s) could not be synced due to errors. See the log for details. %1 och %n andra filer kunde inte synkas på grund av fel. Se loggen för detaljer. @@ -1867,6 +2215,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 and %n other file(s) have been added. %1 fil har lagts till. @@ -1874,6 +2223,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 and %n other file(s) have been removed. %1 och %n annan fil har tagits bort. @@ -1881,6 +2231,7 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 and %n other file(s) have been updated. %1 och %n andra filer har uppdaterats. @@ -1888,14 +2239,17 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 could not be synced due to an error. See the log for details. %1 kunde inte synkroniseras på grund av ett fel. Se loggen för detaljer. + %1 has a sync conflict. Please check the conflict file! %1 har en synkroniseringskonflikt. Vänligen kontrollera konfliktfilen! + %1 has and %n other file(s) have sync conflicts. %1 har och %n annan fil har synkroniseringskonflikter. @@ -1903,11 +2257,13 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 has been added. %1 names a file. %1 har lagts till. + %1 has been moved to %2 and %n other file(s) have been moved. %1 har flyttats till %2 och %n andra filer har flyttats. @@ -1915,15 +2271,18 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 has been moved to %2. %1 har flyttats till %2. + %1 has been removed. %1 names a file. %1 har tagits bort. + %1 has been renamed to %2 and %n other file(s) have been renamed. %1 har döpts om till %2 och %n andra filer har döpts om. @@ -1931,30 +2290,36 @@ Det kan vara problem med dina OpenSSL-bibliotek. + %1 has been renamed to %2. %1 and %2 name files. %1 har döpts om till %2. + %1 has been updated. %1 names a file. %1 har uppdaterats. + %1 is currently locked. %1 är för närvarande låst. + A folder from an external storage has been added. En mapp från ett externt lagringsutrymme har lagts till. + A folder has surpassed the set folder size limit of %1MB: %2. %3 En mapp har överskridit den inställda mappstorleksgränsen på %1MB: %2. %3 + A large number of files in the server have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by uploading from '%1' folder to the server. @@ -1963,6 +2328,7 @@ Vänligen bekräfta om du vill fortsätta med dessa lösningar. Alternativt kan du återställa alla lösta filer, om de laddas upp från Ordner "%1" på servern. + A large number of files in your local '%1' folder have been deleted. Please confirm if you'd like to proceed with these deletions. Alternatively, you can restore all deleted files by downloading them from the server. @@ -1971,10 +2337,12 @@ Vänligen bekräfta om du vill fortsätta med dessa lösningar. Alternativt kan du återställa alla lösta filer, om du hämtar dem från servern. + A new folder larger than %1 MB has been added: %2. En ny mapp som är större än %1 MB har lagts till: %2. + Changes in synchronized folders could not be tracked reliably. This means that the synchronization client might not upload local changes immediately and will instead only scan for local changes and upload them occasionally (every two hours by default). @@ -1987,70 +2355,87 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome %1 + Could not read system exclude file Kunde inte läsa systemets exkluderings-fil + Keep syncing Fortsätt synkronisera + Please choose a different location. %1 isn't a readable folder. Välj en annan plats. %1 är inte en läsbar mapp. + Please choose a different location. %1 isn't a valid folder. Välj en annan plats. %1 är inte en giltig mapp. + Please choose a different location. The folder %1 doesn't exist. Välj en annan plats. Mappen %1 finns inte. + Please go in the settings to select it if you wish to download it. Vänligen gå till inställningar och välj den om du önskar att hämta den. + Proceed with Deletion Fortsätt med borttagningen + Remove all files? Ta bort alla filer? + Restore Files from Server Återställ filer från server + Restore Files to Server Återställ filer till server + Stop syncing Sluta synkronisera + Sync Activity Synkroniseringsaktivitet + The file %1 was created but was excluded from synchronization previously. It will not be synchronized. Filen %1 skapades men var tidigare exkluderad från synkronisering. Den kommer inte att synkroniseras. + The folder %1 has surpassed the set folder size limit of %2MB. Mappen %1 har överskridit den inställda mappstorleksgränsen på %2MB. + The folder %1 was created but was excluded from synchronization previously. Data inside it will not be synchronized. Mappen %1 skapades men var tidigare exkluderad från synkronisering. Data i denna mapp kommer inte att synkroniseras. + Virtual file download failed with code "%1", status "%2" and error message "%3" Virtuell filnedladdning misslyckades med koden "%1", status "%2" och felmeddelandet "%3" + Would you like to stop syncing this folder? Vill du sluta synkronisera den här mappen? @@ -2058,26 +2443,32 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome OCC::FolderCreationDialog + %1 Create new folder %1 Skapa ny mapp + Could not create a folder! Check your write permissions. Kunde inte skapa mappen! Kontrollera skrivrättigheterna. + + Error + Fel + + + Create new folder Skapa ny mapp + Enter folder name Ange mappens namn - Error - Fel - - + Folder already exists Mappen finns redan @@ -2085,108 +2476,136 @@ Det betyder att synkroniseringsklienten inte kan ladda upp lokala ändringar ome OCC::FolderMan + %1 (Sync is paused) %1 (synkronisering pausad) + (backup %1) (säkerhetskopia %1) + (backup) (backup) + An old sync journal "%1" was found, but could not be removed. Please make sure that no application is currently using it. En gammal synkroniseringsjournal "%1" hittades, men kunde inte tas bort. Kontrollera att inget program använder den för närvarande. + Could not reset folder state Kunde inte återställa mappens skick + Last sync was successful. Senaste synkronisering lyckades. + Please choose a different location. %1 is already being used as a sync folder for %2. folder location, server url Välj en annan plats.. %1 används redan som en synkroniseringsmapp för %2. + + Please choose a different location. %1 is already being used as a sync folder. Välj en annan plats. %1 används redan som en synkroniseringsmapp. + Please choose a different location. %1 is already contained in a folder used as a sync folder. Välj en annan plats. %1 finns redan i en mapp som används som en synkroniseringsmapp. + Please choose a different location. The path %1 doesn't exist. Välj en annan plats. Sökvägen %1 finns inte. + Please choose a different location. The path %1 isn't a folder. Välj en annan plats. Sökvägen %1 är inte en mapp. + Please choose a different location. The selected folder isn't valid. Välj en annan plats. Den valda mappen är inte giltig. + + Please choose a different location. You don't have enough permissions to write to %1. folder location Välj en annan plats. Du har inte tillräckliga behörigheter för att skriva till %1. + Preparing for sync. Förbereder synkronisering + Setup error. Inställningsfel. + Sync finished with unresolved conflicts. Synkroniseringen lyckades, men olösta konflikter uppstod. + Sync is paused. Synkronisering är pausad. + Sync is running. Synkronisering pågår. + Sync request was cancelled. Synkroniseringsbegäran avbröts. + Syncing %1 Synkroniserar %1 + Syncing %1 (%2 left) Synkroniserar %1 (%2 kvar) + Syncing %1 (A few seconds left) Synkroniserar %1 (några sekunder kvar) + Syncing %1 of %2 Synkroniserar %1 av %2 + Syncing %1 of %2 (%3 left) Synkroniserar %1 av %2 (%3 kvar) + Syncing %1 of %2 (A few seconds left) Synkroniserar %1 av %2 (några sekunder kvar) + The folder %1 is linked to multiple accounts. This setup can cause data loss and it is no longer supported. To resolve this issue: please remove %1 from one of the accounts and create a new sync folder. @@ -2197,10 +2616,12 @@ För att lösa problemet: ta bort %1 från ett av kontona och skapa en ny synkro För avancerade användare: det här problemet kan vara relaterat till flera synkdatabasfiler i en mapp. Kontrollera %1 om det finns föråldrade och oanvända .sync_*.db-filer och ta bort dem. + Undefined state. Okänt tillstånd. + Waiting to start syncing. Väntar på att starta synkronisering. @@ -2208,14 +2629,17 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderStatusDelegate + Add Folder Sync Lägg till mappsynkronisering + File Fil + Synchronize any other local folder with your %1 Synkronisera en annan lokal mapp med din %1 @@ -2223,113 +2647,141 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderStatusModel + %1 %2 Example text: "Uploading foobar.png" %1 %2 + %1 %2 (%3 of %4) Example text: "Uploading foobar.png (2MB of 2MB)" %1 %2 (%3 av %4) + %1 %2 … Example text: "Uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" Example text: "Syncing 'foo.txt', 'bar.txt'" %1 %2 … + + %1 (%2) %1 (%2) + %1 of %2, file %3 of %4 Example text: "12 MB of 345 MB, file 6 of 7" %1 av %2, fil %3 av %4 + %5 left, %1 of %2, file %3 of %4 %5 kvar, %1 av %2, fil %3 av %4 + + , , + A few seconds left, %1 of %2, file %3 of %4 Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7" Några sekunder kvar, %1 av %2, fil %3 av %4 + About to start syncing Ska börja synkronisera + Checking for changes in local "%1" Söker efter ändringar i lokala "%1" + Checking for changes in remote "%1" Söker efter ändringar i fjärrmappen "%1" + Click this button to add a folder to synchronize. Klicka på den här knappen för att lägga till en mapp att synkronisera. + Could not decrypt! Kunde inte dekryptera! + Download %1/s Example text: "Download 24Kb/s" (%1 is replaced by 24Kb (translated)) Nedladdning %1/s + Error while loading the list of folders from the server. Ett fel uppstod när mapplistan försökte läsas in från servern. + Fetching folder list from server … Hämtar mapplistan från server … + File %1 of %2 Fil %1 av %2 + Preparing to sync … Förbereder synk ... + Signed out Utloggad + Synchronizing files in local folder Synkronisera filer i lokal mapp + Synchronizing virtual files in local folder Synkronisera virtuella filer i lokal mapp + Syncing local and remote changes Synkroniserar lokala och fjärrändringar + There are unresolved conflicts. Click for details. Det finns olösta konflikter. Klicka för detaljer. + Upload %1/s Example text: "Upload 24Kb/s" (%1 is replaced by 24Kb (translated)) Uppladdning %1/s + Virtual file support is enabled. Stöd för virtuella filer är aktiverat. + Waiting for %n other folder(s) … Väntat på %n annan mapp … @@ -2337,14 +2789,17 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn + You need to be connected to add a folder Du måste vara ansluten för att lägga till en mapp + ↑ %1/s ↑ %1/s + ↓ %1/s ↓ %1/s @@ -2352,6 +2807,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWatcher + The watcher did not receive a test notification. Bevakaren fick ingen testnotifikation. @@ -2359,6 +2815,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWatcherPrivate + This problem usually happens when the inotify watches are exhausted. Check the FAQ for details. Detta problem uppstår oftast vid problem med inotify. Se FAQ för mer information. @@ -2366,10 +2823,12 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizard + Add Folder Sync Connection Lägg till synkroniseringskoppling för map + Add Sync Connection Lägg till synkroniseringskoppling. @@ -2377,30 +2836,37 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizardLocalPath + Add Folder Sync Lägg till mappsynkronisering + Choose Välj + Click to select a local folder to sync. Klicka för att välja en lokal mapp att synkronisera. + Enter the path to the local folder. Ange sökvägen till den lokala mappen. + Select a folder on your hard drive that should be permanetly connected to your %1. All files and subfolders are automatically uploaded and synchronized Välj en mapp på din hårddisk som ska vara permanent ansluten till din %1. Alla filer och undermappar laddas upp och synkroniseras automatiskt. + Select the source folder Välj källmapp + Step 1 of 3: Select local folder Steg 1 av 3: Välj lokal mapp @@ -2408,62 +2874,78 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizardRemotePath + Add Folder Sync Lägg till mappsynkronisering + Authentication failed accessing %1 Autentisering misslyckades att komma åt %1 + Both folders are permanently linked and the respective contents are automatically synchronized and updated. De båda mapparna är permanent länkade och respektive innehåll synkroniseras och uppdateras automatiskt. + Choose this to sync the entire account Välj detta för att synkronisera hela kontot + Create Remote Folder Skapa fjärrmapp + Create folder Skapa mapp + Enter the name of the new folder to be created below "%1": Ange namnet på den nya mappen som ska skapas under "%1": + Failed to create the folder on %1. Please check manually. Det gick inte att skapa mappen på %1. Kontrollera manuellt. + Failed to list a folder. Error: %1 Kunde inte lista en mapp. Felkod: %1 + Folder was successfully created on %1. Mappen skapades på %1. + + Please choose a different location. %1 is already being synced to %2. Välj en annan plats. %1 synkroniseras redan till %2. + Please now select or create a target folder in your %1 where the content should be uploaded and synchronized. Välj eller skapa nu en målmapp i din %1 där innehållet ska laddas upp och synkroniseras. + Refresh Uppdatera + Step 2 of 3: Directory in your %1 Steg 2 av 3: Katalog i din %1 + You are already syncing the subfolder %1 at %2. Du synkroniserar redan undermappen %1 på %2. @@ -2471,26 +2953,36 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::FolderWizardSelectiveSync + + + (experimental) (experimentell) + Add Folder Sync Lägg till mappsynkronisering + Step 3 of 3: Selektive Synchronisation Steg 3 av 3: Selektiv synkronisering + + + Use virtual files instead of downloading content immediately %1 Använd virtuella filer istället för att ladda ner innehåll direkt %1 + Virtual files are not supported at the selected location Virtuella filer stöds inte på den valda platsen + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. @@ -2498,22 +2990,7 @@ För avancerade användare: det här problemet kan vara relaterat till flera syn OCC::GeneralSettings - &Analysis data collection for needs-based design - &Analys av datainsamling för behovsbaserad design - - - &Automatically check for updates - &Automatisk kontroll av uppdateringar - - - &Launch on System Startup - &Starta vid uppstart - - - &Restart && Update - &Starta om && Uppdatera - - + - beta: contains versions with new features that may not be tested thoroughly - daily: contains versions created daily only for testing and development @@ -2525,6 +3002,7 @@ Downgrading versions is not possible immediately: changing from beta to stable m Nedgradering av versioner är inte möjligt omedelbart: att byta från beta till stabil innebär att vänta på den nya stabila versionen. + - enterprise: contains stable versions for customers. Downgrading versions is not possible immediately: changing from stable to enterprise means waiting for the new enterprise version. @@ -2534,212 +3012,283 @@ Downgrading versions is not possible immediately: changing from stable to enterp Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil till enterprise innebär att man väntar på den nya enterprise-versionen. + + Cancel + Avbryt + + + + Change update channel + Ändra uppdateringskanal + + + + Changing update channel? + Ändra uppdateringskanal? + + + + Debug Archive Created + Felsökningsarkiv skapat + + + + Redact information deemed sensitive before sharing! Debug archive created at %1 + Redigera information som anses känslig innan du delar! Felsökningsarkiv skapat på %1 + + + + Restore to &%1 + Återställ till &%1 + + + + Server notifications that require attention. + Serveraviseringar som kräver uppmärksamhet. + + + + Show call notification dialogs. + Visa dialogrutor för samtalsmeddelanden. + + + + Show chat notification dialogs. + Visa dialogrutor för chattaviseringar. + + + + Show notification when quota usage exceeds 80%. + Visa avisering när kvotanvändningen överstiger 80%. + + + + The channel determines which upgrades will be offered to install: +- stable: contains tested versions considered reliable + + starts list of available update channels, stable is always available + Kanalen avgör vilka uppgraderingar som kommer att erbjudas att installera: +- stable: innehåller testade versioner som anses tillförlitliga + + + + + You cannot disable autostart because system-wide autostart is enabled. + Du kan inte deaktivera autostart eftersom autostart är aktiverat på systemnivå. + + + + Zip Archives + Zip-arkiv + + + + daily + dagligen + + + + enterprise + enterprise + + + + &Automatically check for updates + &Automatisk kontroll av uppdateringar + + + + &Launch on System Startup + &Starta vid uppstart + + + + &Restart && Update + &Starta om && Uppdatera + + + Advanced Avancerat + Ask for confirmation before synchronizing external storages Be om bekräftelse innan du synkroniserar externa lagringsenheter + Ask for confirmation before synchronizing new folders larger than Be om bekräftelse innan du synkroniserar nya mappar som är större än + Automatically disable synchronisation of folders that overcome limit Automatisk inaktivering av synkronisering av mappar som överskrider gränsen - Cancel - Avbryt - - - Change update channel - Ändra uppdateringskanal - - - Changing update channel? - Ändra uppdateringskanal? - - + + Check Now Kolla nu + + Create Debug Archive Skapa felsökningsarkiv + Data Protection Dataskydd - Debug Archive Created - Felsökningsarkiv skapat - - + Desktop client x.x.x Skrivbordsklient x.x.x + Edit &Ignored Files Ändra &ignorerade filer + For System Tray För aktivitetsfältet + General Settings Generella inställningar + + Legal Notice Rättsligt meddelande + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + More Information Mer information + Move removed files to trash Flytta borttagna filer till papperskorgen + Necessary data Nödvändiga uppgifter + Notify when synchronised folders grow larger than specified limit Meddela när synkroniserade mappar växer sig större än den angivna gränsen + Open Source Software Programvara med öppen källkod + Privacy Policy Integritetspolicy - Redact information deemed sensitive before sharing! Debug archive created at %1 - Redigera information som anses känslig innan du delar! Felsökningsarkiv skapat på %1 - - + Required to ensure that the software can be used as expected Krävs för att säkerställa att programvaran kan användas som förväntat + Restore &Default Återställ &Standard - Restore to &%1 - Återställ till &%1 - - + Send anonymous use Skicka anonym användning - Server notifications that require attention. - Serveraviseringar som kräver uppmärksamhet. - - + Server poll interval Serverns uppdateringsintervall + Show &Quota Warning Notifications Visa &kvotvarningar + Show Call Notifications Visa samtalsmeddelanden + Show Chat Notifications Visa chattaviseringar + Show Server &Notifications Visa server&aviseringar - Show call notification dialogs. - Visa dialogrutor för samtalsmeddelanden. - - - Show chat notification dialogs. - Visa dialogrutor för chattaviseringar. - - - Show notification when quota usage exceeds 80%. - Visa avisering när kvotanvändningen överstiger 80%. - - + Show sync folders in &Explorer's navigation pane Visa synkroniseringsmappar i &Explorers navigeringsfönster - The channel determines which upgrades will be offered to install: -- stable: contains tested versions considered reliable - - starts list of available update channels, stable is always available - Kanalen avgör vilka uppgraderingar som kommer att erbjudas att installera: -- stable: innehåller testade versioner som anses tillförlitliga - - - + This helps us to optimize the software and to better identify system crashes and unexpected errors. Detta hjälper oss att optimera programvaran och att bättre identifiera systemkrascher och oväntade fel. + Update channel Uppdateringskanal + Updates Uppdateringar + Usage Documentation Användardokumentation + Use &Monochrome Icons Använd &monokroma ikoner - You cannot disable autostart because system-wide autostart is enabled. - Du kan inte deaktivera autostart eftersom autostart är aktiverat på systemnivå. - - - Zip Archives - Zip-arkiv - - + + beta beta - daily - dagligen - - - enterprise - enterprise - - + seconds (if <a href="https://github.com/nextcloud/notify_push">Client Push</a> is unavailable) sekunder (om <a href="https://github.com/nextcloud/notify_push">Client Push</a> inte är tillgängligt) + + stable stabil @@ -2747,22 +3296,27 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil OCC::GETFileJob + Connection Timeout Anslutningen avbröts på grund av timeout + No E-Tag received from server, check Proxy/Gateway Ingen E-Tag mottogs från servern, kontrollera proxy/gateway + Server returned wrong content-range Servern returnerade felaktig content-range + We received a different E-Tag for resuming. Retrying next time. Vi mottog en helt annan e-tag för att återuppta. Försök igen nästa gång. + We received an unexpected download Content-Length. Nerladdningens storlek är inkorrekt. @@ -2770,6 +3324,7 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil OCC::GetOrCreatePublicLinkShare + Could not retrieve or create the public link share. Error: %1 @@ -2778,14 +3333,17 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil %1 + Password for share required Lösenord för delning krävs + Please enter a password for your link share: Ange ett lösenord för din länkdelning: + Sharing error Fel vid delning @@ -2793,18 +3351,22 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil OCC::HttpCredentialsGui + <a href="%1">Click here</a> to request an app password from the web interface. <a href="%1">Klicka här</a> för att begära ett applösenord från webbgränssnittet. + Enter Password Ange lösenord + Please enter %1 password:<br><br>Username: %2<br>Account: %3<br> Ange %1 lösenord:<br><br>Användarnamn: %2<br>Konto: %3<br> + Reading from keychain failed with error: "%1" Läsning från nyckelkedjan misslyckades med fel: "%1" @@ -2812,49 +3374,50 @@ Det är inte möjligt att nedgradera versioner omedelbart: att byta från stabil OCC::IgnoreListEditor + + This entry is provided by the system at "%1" and cannot be modified in this view. + Denna post hanteras av systemet '%1' och kan inte ändras i denna vy. + + + Files Ignored by Patterns Filer ignorerade av mönster + Global Ignore Settings Globala blockeringsinställningar + Ignored Files Editor Ändra ignorerade filer + Sync hidden files Synkronisera dolda filer - - This entry is provided by the system at "%1" and cannot be modified in this view. - Denna post hanteras av systemet '%1' och kan inte ändras i denna vy. - - + OCC::IgnoreListTableWidget - Add - Lägg till - - + Add a new ignore pattern: Lägg till ett nytt ignoreringsmönster: - Allow Deletion - Tillåt radering - - + Cannot write changes to "%1". Kunde inte spara ändringar av "%1". + Could not open file Kunde inte öppna fil + Files or folders matching a pattern will not be synchronized. Items where deletion is allowed will be deleted if they prevent a directory from being removed. This is useful for meta data. @@ -2863,18 +3426,32 @@ Items where deletion is allowed will be deleted if they prevent a directory from Objekt där radering är tillåten raderas om de förhindrar att en katalog tas bort. Detta är användbart för metadata. + Ignore Pattern Ignorera mönster + + Add + Lägg till + + + + Allow Deletion + Tillåt radering + + + Pattern Filter + Remove Ta bort + Remove all Ta bort alla @@ -2882,109 +3459,135 @@ Objekt där radering är tillåten raderas om de förhindrar att en katalog tas OCC::InvalidFilenameDialog + Cannot rename file because a file with the same name does already exist on the server. Please pick another name. Kunde inte byta namn på filen eftersom filnamnet är upptaget. Ange ett annat filnamn. + Checking rename permissions … Kontrollerar behörigheter för att byta namn ... + Could not rename file. Please make sure you are connected to the server. Kunde inte byta namn på filen. Kontrollera anslutningen till servern. + Could not rename local file. %1 Kunde inte byta namn på lokal fil. %1 - Error - Fel - - + Failed to fetch permissions with error %1 Misslyckades att hämta behörigheter med felet %1 + Filename contains illegal characters: %1 Filnamnet innehåller ogiltiga tecken: %1 - Filename contains leading and trailing spaces. - Filnamnet innehåller blanksteg i början och slutet. - - - Filename contains leading spaces. - Filnamnet innehåller mellanslag i början. - - - Filename contains trailing spaces. - Filnamnet innehåller blanksteg i slutet. - - - Invalid filename - Ogiltigt filnamn + + Filename contains leading and trailing spaces. + Filnamnet innehåller blanksteg i början och slutet. - New filename - Nytt filnamn + + Filename contains leading spaces. + Filnamnet innehåller mellanslag i början. - Please enter a new name for the file: - Ange ett nytt namn för filen: + + Filename contains trailing spaces. + Filnamnet innehåller blanksteg i slutet. + Rename file Byt filnamn + The file "%1" could not be synced because the name contains characters which are not allowed on the server. Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på servern. + The file "%1" could not be synced because the name contains characters which are not allowed on this system. Filen "%1" kunde inte synkroniseras eftersom namnet innehåller tecken som inte är tillåtna på det här systemet. - The file could not be synced because it contains characters which are not allowed on this system. - Filen kunde inte synkroniseras då den innehåller tecken som är ogiltiga under detta system. - - + The following basenames are not allowed: %1 Följande basnamn är inte tillåtna: %1 + The following characters are not allowed on the system: \ / : ? * " < > | leading/trailing spaces Följande tecken är inte tillåtna i systemet: \ / : ? * “ < > | samt inledande/avslutande mellanslag + The following characters are not allowed: %1 Följande tecken är inte tillåtna: %1 + The following file extensions are not allowed: %1 Följande filtillägg är inte tillåtna: %1 + The following filenames are not allowed: %1 Följande filnamn är inte tillåtna: %1 + Use invalid name Använd ogiltigt namn + You don't have the permission to rename this file. Please ask the author of the file to rename it. Du har inte behörighet att byta namn på den här filen. Be ägaren till filen att byta namn på den. - + + + Error + Fel + + + + Invalid filename + Ogiltigt filnamn + + + + New filename + Nytt filnamn + + + + Please enter a new name for the file: + Ange ett nytt namn för filen: + + + + The file could not be synced because it contains characters which are not allowed on this system. + Filen kunde inte synkroniseras då den innehåller tecken som är ogiltiga under detta system. + + OCC::LegacyAccountSelectionDialog + Legacy import Import från äldre version + Select the accounts to import from the legacy configuration: Välj konton som ska importeras från den äldre konfigurationen: @@ -2992,18 +3595,23 @@ Objekt där radering är tillåten raderas om de förhindrar att en katalog tas OCC::LegalNotice + <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> <p>Copyright 2017-2026 Nextcloud GmbH<br />Copyright 2012-2023 ownCloud GmbH</p> + <p>Licensed under the GNU General Public License (GPL) Version 2.0 or any later version.</p> <p>Licenserad under GNU General Public License (GPL) Version 2.0 eller annan senare version.</p> + Close Stäng + + Legal notice Rättsligt meddelande @@ -3011,18 +3619,22 @@ Objekt där radering är tillåten raderas om de förhindrar att en katalog tas OCC::LogBrowser + Enable logging to temporary folder Aktivera loggning till tillfällig mapp + Log Output Loggdata + Open folder Öppna mapp + The client can write debug logs to a temporary folder. These logs are very helpful for diagnosing problems. Since log files can get large, the client will start a new one for each sync run and compress older ones. It will also delete log files after a couple of hours to avoid consuming too much disk space. If enabled, logs will be written to %1 @@ -3031,6 +3643,7 @@ Eftersom loggfiler kan bli stora kommer klienten att skapa en ny för varje synk Om aktiverat kommer loggar att skrivas till %1 + This setting persists across client restarts. Note that using any logging command line options will override this setting. Den här inställningen kvarstår även när klienten startas om. @@ -3040,10 +3653,14 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::Logger + + <nobr>File "%1"<br/>cannot be opened for writing.<br/><br/>The log output <b>cannot</b> be saved!</nobr> <nobr>Filen "%1"<br/>kan inte öppnas för skrivning.<br/><br/>Loggtexten <b>kan inte</b> sparas!</nobr> + + Error Fel @@ -3051,26 +3668,32 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::Mac::FileProviderEditLocallyJob + An error occurred during setup. Ett fel uppstod under installationen. + Could not find a file for local editing. Make sure its path is valid and it is synced locally. Det gick inte att hitta en fil för lokal redigering. Se till att sökvägen är giltig och att den är synkroniserad lokalt. + Could not get file ID. Kunde inte hämta fil-ID. + Could not get file identifier. Kunde inte hämta filidentifierare. + Could not start editing locally. Det gick inte att börja redigera lokalt. + The file identifier is empty. Filidentifieraren är tom. @@ -3078,117 +3701,150 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::NetworkSettings - Download Bandwidth - Bandbredd för hämtning - - + HTTP(S) proxy HTTP(S) proxy - Host - Server - - + Hostname of proxy server Värdnamn för proxyserver + + Password for proxy server + Lösenord för proxyanvändare + + + + SOCKS5 proxy + SOCKS5 proxy + + + + Username for proxy server + Användarnamn för proxyserver + + + + Download Bandwidth + Bandbredd för hämtning + + + + Host + Server + + + + KBytes/s KBytes/s + + Limit automatically Begränsa automatiskt + + Limit to Begränsa till + + Limit to 3/4 of estimated bandwidth Begränsa till 3/4 av uppskattad bandbredd + Manually specify proxy Ange proxy manuellt + + No limit Ingen gräns + No proxy Ingen proxy + Note: proxy settings have no effects for accounts on localhost Observera att proxy-inställningar inte används för konton på localhost - Password for proxy server - Lösenord för proxyanvändare - - + Proxy Settings Proxyinställningar + Proxy server requires authentication Proxyservern kräver autentisering - SOCKS5 proxy - SOCKS5 proxy - - + Upload Bandwidth Bandbredd för uppladdning + Use system proxy Använd systemets proxyinställning - - Username for proxy server - Användarnamn för proxyserver - - + OCC::NSISUpdater + <p>A new version of the %1 Client is available but the updating process failed.</p><p><b>%2</b> has been downloaded. The installed version is %3. If you confirm restart and update, your computer may reboot to complete the installation.</p> <p>En ny version av %1 klienten är tillgänglig men uppdateringsprocessen misslyckades.</p><p><b>%2</b> har laddats ner. Den installerade versionen är %3. Om du bekräftar omstart och uppdatering kan det hända att datorn startas om för att slutföra installationen.</p> + <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> <p>En ny version av %1 klienten är tillgänglig.</p><p><b>%2</b> är tillgänglig för hämtning. Den installerade versionen är %3.</p> + Ask again later Fråga igen senare + Get update Hämta uppdatering + New Version Available Ny version tillgänglig + Restart and update Starta om och uppdatera + Skip this time Hoppa över denna gång + Update Failed Uppdateringen misslyckades + Update manually Uppdatera manuellt @@ -3196,58 +3852,72 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OCUpdater + %1 available. Restart application to start the update. %1 tillgänglig. Starta om appen för att starta uppdateringen. + A new update for %1 is about to be installed. The updater may ask for additional privileges during the process. Your computer may reboot to complete the installation. En ny uppdatering för %1 kommer att installeras. Uppdateraren kan be om ytterligare rättigheter under processen. Datorn kan starta om för att slutföra installationen. + Checking update server … Kontrollerar med uppdateringsserver ... + Could not check for new updates. Kunde inte söka efter uppdateringar. + Could not download update. Please open %1 to download the update manually. Kunde inte ladda ner uppdateringen. Öppna %1 för att ladda ner uppdateringen manuellt. + Could not download update. Please open <a href='%1'>%1</a> to download the update manually. Kunde inte ladda ner uppdatering. Tryck på <a href='%1'>%1</a> för att ladda ner uppdateringen manuellt. + Downloading %1 … Laddar ner %1 … + New %1 is available. Please open %2 to download the update. Ny %1 är tillgänglig. Öppna %2 för att ladda ner uppdateringen. + New %1 is available. Please open <a href='%2'>%2</a> to download the update. Ny %1 är tillgänglig. Öppna <a href='%2'>%2</a> för att ladda ner uppdateringen. + New %1 update ready Ny %1-uppdatering redo + No updates available. Your installation is the latest version. Inga uppdateringar tillgängliga. Din installation är den senaste versionen. + Update Check Uppdateringskontroll + Update status is unknown: Did not check for new updates. Uppdateringsstatus är okänd: Gjorde ingen kontroll av nya uppdateringar. + You are using the %1 update channel. Your installation is the latest version. Du använder uppdateringskanalen %1 Din installation är den senaste versionen. @@ -3255,55 +3925,72 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudAdvancedSetupPage + %1 folder "%2" is synced to local folder "%3" %1 mappen "%2" är synkroniserad mot den lokala mappen "%3" + + %1 free space %1 gets replaced with the size and a matching unit. Example: 3 MB or 5 GB %1 ledigt utrymme + + (%1) (%1) + + (experimental) (experimentell) + Connect Anslut + In Finder's "Locations" sidebar section I sidopanelens avsnitt “Platser” i Finder + Local Sync Folder Lokal mapp för synkronisering + Sync the folder "%1" Synkronisera mappen '%1' + There isn't enough free space in the local folder! Det finns inte tillräckligt med ledigt utrymme i den lokala mappen! + + Use &virtual files instead of downloading content immediately %1 Använd &virtuella filer istället för att ladda ner innehåll direkt %1 + Virtual files are not supported at the selected location Virtuella filer stöds inte på den valda platsen + Virtual files are not supported for Windows partition roots as local folder. Please choose a valid subfolder under drive letter. Windows stödjer inte virtuella filer direkt i rotkataloger. Välj en underkatalog. + Warning: The local folder is not empty. Pick a resolution! Varning: Den lokala mappen är inte tom. Välj en lösning! @@ -3311,26 +3998,32 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudConnectionMethodDialog + <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> <html><head/><body><p>Misslyckades med att ansluta till den säkra serveradressen <em>%1</em>. Hur vill du gå vidare?</p></body></html> + <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> <html><head/><body><p>Misslyckades med att upprätta anslutning till den angivna servern. Hur vill du fortsätta?</p></body></html> + Configure client-side TLS certificate Konfigurera TLS klient-certifikat + Connection failed Anslutningen misslyckades + Retry unencrypted over HTTP (insecure) Försök igen okrypterat över HTTP (osäkert) + Select a different URL Välj en annan webbadress @@ -3338,71 +4031,88 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::ownCloudGui + %1 (%2, %3) %1 (%2, %3) + %1: %2 Example text: "Nextcloud: Syncing 25MB (3 minutes left)" (%1 is the folder name to be synced, %2 a status message for that folder) %1: %2 + Account %1: %2 Konto %1: %2 + Account synchronization is disabled Synkronisering för konto är avstängd + Checking for changes in local "%1" Söker efter ändringar i lokala "%1" + Checking for changes in remote "%1" Söker efter ändringar i fjärrmappen "%1" + Disconnected from %1 Koppla från %1 + Disconnected from accounts: Bortkopplad från dessa konton: + Please sign in Vänliga logga in + Terms of service Användarvillkor + The server on account %1 runs an unsupported version %2. Using this client with unsupported server versions is untested and potentially dangerous. Proceed at your own risk. Servern på kontot %1 kör en version %2 som inte stöds. Att använda den här klienten med serverversioner som inte stöds är oprövat och potentiellt farligt. Fortsätt på egen risk. + There are no sync folders configured. Det finns inga synkroniseringsmappar konfigurerade. + Unsupported Server Version Serverversion stöds inte + Your account %1 requires you to accept the terms of service of your server. You will be redirected to %2 to acknowledge that you have read it and agrees with it. Ditt konto %1 kräver att du accepterar din servers användarvillkor. Du kommer bli omdirigerad till %2 för att bekräfta att du har läst och håller med om villkoren. + macOS VFS for %1: A problem was encountered. macOS VFS för %1: Ett problem påträffades. + macOS VFS for %1: Last sync was successful. macOS VFS för %1: Senaste synkroniseringen lyckades. + macOS VFS for %1: Sync is running. macOS VFS för %1: Synkronisering körs. @@ -3410,14 +4120,17 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudHttpCredsPage + &Email &E-post + Connect to %1 Anslut till %1 + Enter user credentials Ange inloggningsuppgifter @@ -3425,6 +4138,8 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudPropagator + + Impossible to get modification time for file in conflict %1 Omöjligt att få ändringstid för filen i konflikten %1 @@ -3432,18 +4147,23 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudSetupPage + &Next > &Nästa > + Could not load certificate. Maybe wrong password? Kunde inte läsa in certifikatet. Felaktigt lösenord? + + Server address does not seem to be valid Serverns adress verkar var ogiltig + The link to your %1 web interface when you open it in the browser. %1 will be replaced with the application name Länken till din %1 webbsida när du öppnar den i webbläsaren. @@ -3452,118 +4172,150 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudSetupWizard + <font color="green"><b>File Provider-based account %1 successfully created!</b></font> <font color="green"><b>Filleverantörsbaserat konto %1 har skapats!</b></font> + <font color="green"><b>Local sync folder %1 successfully created!</b></font> <font color="green"><b>Lokal synkroniseringsmapp %1 skapad!</b></font> + <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> <font color="green">Lyckades ansluta till %1: %2 version %3 (%4)</font><br/><br/> + <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> <p><font color="red">Misslyckades skapa fjärrmappen, troligen p.g.a felaktiga inloggningsuppgifter.</font><br/>Kontrollera dina inloggningsuppgifter.</p> + A sync connection from %1 to remote directory %2 was set up. En synkroniseringskoppling från %1 till extern mapp %2 har skapats. + Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. Åtkomst förbjuden av servern. För att bekräfta att du har korrekta rättigheter, <a href="%1">klicka här</a> för att ansluta till tjänsten med din webb-läsare. + Cannot remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. Kan inte ta bort och göra en säkerhetskopia av mappen på grund av att mappen eller en fil i den används av ett annat program. Stäng mappen eller filen och försök igen eller avbryt installationen. + Connection to %1 could not be established. Please check again. Anslutningen till %1 kunde inte etableras. Vänligen kontrollera och försök igen. + Could not create local folder %1 Kunde inte skapa lokal mapp %1 + Creating local sync folder %1 … Skapar lokal synkroniseringsmapp %1 ... + Error: %1 Fel: %1 + Failed to connect to %1 at %2:<br/>%3 Misslyckades att ansluta till %1 vid %2:<br/>%3 + Folder rename failed Omdöpning av mapp misslyckades + Invalid URL Ogiltig webbadress + Local sync folder %1 already exists, setting it up for sync.<br/><br/> Den lokala synkroniseringsmappen % 1 finns redan, aktiverar den för synkronisering.<br/><br/> + No remote folder specified! Ingen fjärrmapp specificerad! + OK OK + Remote folder %1 created successfully. Fjärrmapp %1 har skapats. + + Remote folder %1 creation failed with error <tt>%2</tt>. Misslyckades skapa fjärrmapp %1 med fel <tt>%2</tt>. + Successfully connected to %1! Ansluten till %1! + The authenticated request to the server was redirected to "%1". The URL is bad, the server is misconfigured. Den autentiserade begäran till servern omdirigerades till "%1". URL:n är felaktig, servern är felkonfigurerad. + + The folder creation resulted in HTTP error code %1 Skapande av mapp resulterade i HTTP felkod %1 + The remote folder %1 already exists. Connecting it for syncing. Fjärrmappen %1 finns redan. Ansluter den för synkronisering. + The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> Det gick inte att skapa mappen efter som du inte har tillräckliga rättigheter!<br/>Vänligen återvänd och kontrollera dina rättigheter. + There was an invalid response to an authenticated WebDAV request Det var ett ogiltigt svar på en verifierad WebDAV-begäran + Timeout while trying to connect to %1 at %2. Försök att ansluta till %1 på %2 tog för lång tid. + + Trying to connect to %1 at %2 … Försöker ansluta till %1 på %2 ... + creating folder on Nextcloud: %1 skapar mapp på Nextcloud: %1 + failed. misslyckades. @@ -3571,45 +4323,55 @@ Observera att om du använder kommandoradsalternativ för loggning kommer den h OCC::OwncloudWizard + Add %1 account Lägg till %1 konto + Back Next button text in new account wizard Tillbaka + Cancel Avbryt + Enable experimental feature? Aktivera experimentell funktion? + Enable experimental placeholder mode Aktivera experimentellt platshållarläge + Next Next button text in new account wizard Nästa + Proxy Settings Proxy Settings button text in new account wizard Proxyinställningar + Skip folders configuration Hoppa över konfiguration av mappar + Stay safe Var försiktig + When the "virtual files" mode is enabled no files will be downloaded initially. Instead, a tiny "%1" file will be created for each file that exists on the server. The contents can be downloaded by running these files or by using their context menu. The virtual files mode is mutually exclusive with selective sync. Currently unselected folders will be translated to online-only folders and your selective sync settings will be reset. @@ -3629,10 +4391,12 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PasswordInputDialog + Password for share required Lösenord krävs för delning + Please enter a password for your share: Ange ett lösenord för din delning: @@ -3640,6 +4404,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PollJob + Invalid JSON reply from the poll URL Ogiltigt JSON-svar från hämtningswebbadressen @@ -3647,166 +4412,210 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ProcessDirectoryJob + + + + Cannot be renamed or uploaded. Kan inte bytas namn på eller laddas upp. + Cannot modify encrypted item because the selected certificate is not valid. Det går inte att ändra det krypterade objektet eftersom det valda certifikatet är ogiltigt. + Cannot sync due to invalid modification time Det går inte att synkronisera på grund av ogiltig ändringstid + Case Clash Conflict: Server file downloaded and renamed to avoid clash. Skiftlägeskonflikt: Serverfilen har laddats ner och döpts om för att undvika konflikt. + Conflict: Server version downloaded, local copy renamed and not uploaded. Konflikt: Serverversion hämtad, lokal kopia omdöpt och inte uppladdad. + Could not upload file, because it is open in "%1". Kunde inte ladda upp filen eftersom den är öppen i "%1". + Error while deleting file record %1 from the database Fel vid borttagning av filpost %1 från databasen + Error while reading the database Fel uppstod när databasen skulle läsas + File has extension reserved for virtual files. Filens ändelse är reserverad för virtuella filer. + File is listed on the ignore list. Filen är listad i undantagslistan. + File is not accessible on the server. server error Filen är inte åtkomlig på servern. + File name contains at least one invalid character Filnamnet innehåller minst ett ogiltigt tecken + File name is a reserved name on this file system. Filnamnet är ett reserverat namn i detta filsystem. + File names containing the character "%1" are not supported on this file system. %1: the invalid character Filnamn som innehåller tecknet "%1" stöds inte i detta filsystem. + File names ending with a period are not supported on this file system. Filnamn som slutar med en punkt stöds inte på detta filsystem. + File/Folder is ignored because it's hidden. Filen/mappen ignoreras eftersom den är dold. + Filename contains leading and trailing spaces. Filnamnet innehåller blanksteg i början och slutet. + Filename contains leading spaces. Filnamnet innehåller inledande blanksteg. + Filename contains trailing spaces. Filnamnet innehåller inledande blanksteg. + Filename is too long. Filnamnet är för långt. + Folder is not accessible on the server. server error Mappen är inte åtkomlig på servern. + Folder name contains at least one invalid character Mappnamnet innehåller minst ett ogiltigt tecken + Folder name is a reserved name on this file system. Mappnamnet är ett reserverat namn i detta filsystem. + Folder names containing the character "%1" are not supported on this file system. %1: the invalid character Mappnamn som innehåller tecknet "%1" stöds inte i detta filsystem. + Ignored because of the "choose what to sync" blacklist Ignorerad eftersom den är svartlistad i "välj vad som ska synkroniseras" + + Moved to invalid target, restoring Flyttade till ogiltigt mål, återställer + Not allowed because you don't have permission to add files in that folder Otillåtet eftersom du inte har rättigheter att lägga till filer i den mappen. + Not allowed because you don't have permission to add subfolders to that folder Otillåtet eftersom du inte har rättigheter att lägga till undermappar i den mappen. + Not allowed to remove, restoring Borttagning tillåts ej, återställer + Not allowed to upload this file because it is read-only on the server, restoring Inte tillåtet att ladda upp denna fil eftersom den är skrivskyddad på servern, återställer + Reason: the entire filename is forbidden. Orsak: hela filnamnet är förbjudet. + Reason: the file has a forbidden extension (.%1). Orsak: filen har ett förbjudet tillägg (.%1). + Reason: the filename contains a forbidden character (%1). Orsak: filnamnet innehåller ett förbjudet tecken (%1). + Reason: the filename has a forbidden base name (filename start). Orsak: filnamnet har ett förbjudet basnamn (filnamnsstart). + Stat failed. Status misslyckades. + Symbolic links are not supported in syncing. Symboliska länkar kan ej synkroniseras. + The filename cannot be encoded on your file system. Filnamnet kan inte avkodas på ditt filsystem. + The filename is blacklisted on the server. Filnamnet är svartlistat på servern. + Upload of %1 exceeds %2 of space left in folder %3. Uppladdningen av %1 överskrider %2 av återstående utrymme i mappen %3. + Upload of %1 exceeds %2 of space left in personal files. Uppladdningen av %1 överskrider %2 av återstående utrymme i personliga filer. @@ -3814,26 +4623,38 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateDirectory + Could not delete file %1 from local DB Kunde inte ta bort filen %1 från lokal DB + Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid + Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 + File is currently in use Filen används + + + + + + The folder %1 cannot be made read-only: %2 Mappen %1 kan inte göras skrivskyddad: %2 + + unknown exception okänt fel @@ -3841,54 +4662,70 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateDownloadFile + + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB + Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 + File %1 cannot be downloaded because encryption information is missing. Fil %1 kan inte hämtas eftersom krypteringsinformation fattas. + File %1 downloaded but it resulted in a local file name clash! Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! + + File %1 has invalid modified time reported by server. Do not save it. Filen %1 har en ogiltig ändringstid rapporterad av servern. Spara den inte. + + File has changed since discovery Filen har ändrats sedan upptäckten + File was deleted from server Filen har tagits bort från servern + Free space on disk is less than %1 Ledigt utrymme är under %1 + The download would reduce free local disk space below the limit Hämtningen skulle reducera det fria diskutrymmet under gränsen + The downloaded file is empty, but the server said it should have been %1. Den nedladdade filen är tom, men servern meddelade att den borde ha varit %1. + The file %1 is currently in use Filen %1 används för närvarande + The file could not be downloaded completely. Filen kunde inte hämtas fullständigt. @@ -3896,10 +4733,12 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateItemJob + ; Restoration Failed: %1 ; Återställning misslyckades: %1 + A file or folder was removed from a read only share, but restoring failed: %1 En fil eller mapp togs bort från en skrivskyddad delning, men återställning misslyckades: %1 @@ -3907,30 +4746,39 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateLocalMkdir + Could not create folder %1 Det gick inte att skapa mappen %1 + Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 + Folder %1 cannot be created because of a local file or folder name clash! Mapp %1 kan inte skapas på grund av en konflikt med ett lokalt fil- eller mappnamn! + The file %1 is currently in use Filen %1 används för närvarande + + + The folder %1 cannot be made read-only: %2 Mappen %1 kan inte göras skrivskyddad: %2 + could not delete file %1, error: %2 kunde inte ta bort fil %1, fel: %2 + unknown exception okänt fel @@ -3938,14 +4786,19 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateLocalRemove + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB + Could not remove %1 because of a local file name clash Det gick inte att ta bort %1 på grund av ett lokalt filnamn + + + Temporary error when removing local item removed from server. Tillfälligt fel vid borttagning av lokalt objekt som tagits bort från servern. @@ -3953,38 +4806,49 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateLocalRename + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB + + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB + + Error setting pin state Kunde inte sätta pin-status + Error updating metadata: %1 Fel vid uppdatering av metadata: %1 + Failed to propagate directory rename in hierarchy Kunde inte propagera namnbyte på katalogen i hierarkin + Failed to rename file Kunde inte döpa om filen + File %1 downloaded but it resulted in a local file name clash! Fil %1 har laddats ner men det resulterade i en konflikt med ett lokalt filnamn! + Folder %1 cannot be renamed because of a local file or folder name clash! Mappen %1 kan inte bytas namn på grund av en lokal namnkonflikt för en fil eller mapp! + The file %1 is currently in use Filen %1 används för närvarande @@ -3992,10 +4856,12 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateRemoteDelete + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '204' förväntades, men "%1 %2" mottogs. @@ -4003,6 +4869,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateRemoteDeleteEncryptedRootFolder + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. 204 förväntades, men "%1 %2" mottogs. @@ -4010,18 +4877,22 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateRemoteMkdir + Error writing metadata to the database: %1 Det gick inte att skriva metadata till databasen: %1 + Failed to encrypt a folder %1 Kunde inte kryptera en mapp %1 + The file %1 is currently in use Filen %1 används för närvarande + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. @@ -4029,34 +4900,44 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateRemoteMove + Could not delete file record %1 from local DB Kunde inte ta bort filposten %1 från lokal DB + Could not get file %1 from local DB Kunde inte hämta filen %1 från lokal DB + Could not rename %1 to %2, error: %3 Kunde inte byta namn på %1 till %2, fel: %3 + Error setting pin state Kunde inte sätta pin-status + + Error updating metadata: %1 Fel vid uppdatering av metadata: %1 + Error writing metadata to the database Fel vid skrivning av metadata till databasen + + The file %1 is currently in use Filen %1 används för närvarande + Wrong HTTP code returned by server. Expected 201, but received "%1 %2". Felaktig HTTP-kod i svaret från servern. '201' förväntades, men "%1 %2" mottogs. @@ -4064,46 +4945,60 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateUploadFileCommon + Error updating metadata: %1 Ett fel uppstod när metadata skulle uppdateras: %1 + Failed to unlock encrypted folder. Kunde inte låsa upp krypterad mapp. + Failed to upload encrypted file. Kunde inte ladda upp krypterad fil. + File %1 cannot be uploaded because another file with the same name, differing only in case, exists Fil %1 kan inte laddas upp eftersom en annan fil med samma namn, där endast stora/små bokstäver skiljer sig, finns + + + File %1 has invalid modification time. Do not upload to the server. Filen %1 har ogiltig ändringstid. Ladda inte upp till servern. + File Removed (start upload) %1 Filen borttagen (starta uppladdning) %1 + Local file changed during sync. Lokal fil ändrades under synkronisering. + Local file changed during syncing. It will be resumed. Lokal fil ändrades under synkronisering. Den kommer återupptas. + The file %1 is currently in use Filen %1 används för närvarande + Unable to upload an item with invalid characters Det gick inte att ladda upp ett objekt med ogiltiga tecken + + Upload of %1 exceeds the quota for the folder Uppladdningen av %1 överskrider kvoten för mappen @@ -4111,32 +5006,39 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateUploadFileNG + File is not accessible on the server. server error Filen är inte åtkomlig på servern. + Folder is not accessible on the server. server error Mappen är inte åtkomlig på servern. + Local file changed during sync. Lokal fil ändrades under synkronisering. + Missing File ID from server Saknar Fil-ID från servern + Poll URL missing Poll-URL saknas + The local file was removed during sync. Den lokala filen togs bort under synkronisering. + Unexpected return code from server (%1) Oväntad svarskod från servern (%1) @@ -4144,18 +5046,22 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::PropagateUploadFileV1 + Local file changed during sync. Lokal fil ändrades under synkronisering. + Poll URL missing Hämtningswebbadress saknas + The local file was removed during sync. Den lokala filen togs bort under synkronisering. + The server did not acknowledge the last chunk. (No e-tag was present) Servern bekräftade inte senaste leveransen. (Ingen e-tagg fanns) @@ -4163,22 +5069,27 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ProxyAuthDialog + Password: Lösenord: + Proxy authentication required Proxy-autentisering krävs + Proxy: Proxy: + The proxy server needs a username and password. Proxy-servern behöver ett användarnamn och lösenord. + Username: Användarnamn: @@ -4186,6 +5097,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::SelectiveSyncDialog + Choose What to Sync Välj vad som ska synkroniseras @@ -4193,26 +5105,33 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::SelectiveSyncWidget + An error occurred while loading the list of sub folders. Ett fel uppstod när listan för submappar lästes in. + Deselect remote folders you do not wish to synchronize. Avmarkera mappar du inte vill synkronisera. + Loading … Läser in ... + Name Namn + + No subfolders currently on the server. Inga undermappar på servern för närvarande. + Size Storlek @@ -4220,10 +5139,12 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ServerNotificationHandler + Dismiss Avfärda + Reply Svara @@ -4231,14 +5152,17 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::sesSnackBar + Error Fel + Success Framgång + Warning Varning @@ -4246,23 +5170,28 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::SettingsDialog + %1 Settings This name refers to the application name e.g Nextcloud %1 inställningar + Account Konto + General Allmänt + New account Nytt konto + Settings Inställningar @@ -4270,19 +5199,24 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ShareeModel + %1 (%2) sharee (shareWithAdditionalInfo) %1 (%2) + Global search results Globala sökresultat + No results found Inga resultat funna + + Search globally Sök globalt @@ -4290,6 +5224,7 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ShareManager + Error Fel @@ -4297,38 +5232,47 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::ShareModel + %1 days %1 dagar + 1 day 1 dag + Could not find local folder for %1 Kunde inte hitta lokal mapp för %1 + Internal link Intern länk + Link share Länkdelning + Secure file drop Säkert filinkast + Secure file drop link Säker filinkast-länk + Share link Dela länk + Today Idag @@ -4336,22 +5280,28 @@ Detta är ett nytt experimentellt läge. Om du bestämmer dig för att använda OCC::SocketApi + + Activity Aktivitet + Context menu share Delningsmeny + Copy internal link Kopiera intern länk + Copy private link to clipboard Kopiera privat länk till urklipp + Could not encrypt the following folder: "%1". Server replied with error: %2 @@ -4360,18 +5310,22 @@ Server replied with error: %2 Servern svarade med fel: %2 + Delete Ta bort + Delete local changes Radera lokala ändringar + Encrypt Kryptera + Expires in %1 minutes remaining time before lock expires @@ -4380,82 +5334,104 @@ Servern svarade med fel: %2 + Failed to encrypt folder Kunde inte kryptera mapp + Failed to encrypt folder at "%1" Det gick inte att kryptera mappen "%1" + Folder encrypted successfully Mappen har krypterats + I shared something with you Jag delade något med dig + Leave this share Lämna denna delning + Lock file Lås fil + Locked by %1 Låst av %1 + Move and rename … Flytta och byt namn … + Move and upload … Flytta och ladda upp … + Move, rename and upload … Flytta, byt namn och ladda upp … + + Open in browser Öppna i webbläsare + Resharing this file is not allowed Vidaredelning av denna fil är inte tillåtet + Resharing this folder is not allowed Vidaredelning av denna mapp är inte tillåtet + Resolve conflict … Lös konflikt … + Select new location … Välj ny plats … + Send private link by email … Skicka privat länk med e-post ... + + Share options Delningsalternativ + The account %1 does not have end-to-end encryption configured. Please configure this in your account settings to enable folder encryption. Kontot %1 har inte ände-till-ände-kryptering konfigurerad. Konfigurera detta i dina kontoinställningar för att aktivera mappkryptering. + The following folder was encrypted successfully: "%1" Följande mapp krypterades: "%1" + Unlock file Lås upp fil @@ -4463,98 +5439,122 @@ Servern svarade med fel: %2 OCC::SslButton + %1 %1 + %1 (self-signed) %1 (självsignerat certifikat) + <h3>Certificate Details</h3> <h3>Certifikatdetaljer</h3> + <h3>Fingerprints</h3> <h3>Fingeravtryck</h3> + <h3>Issuer</h3> <h3>Utfärdare</h3> + <p><b>Note:</b> This certificate was manually approved</p> <p><b>Notera:</b> Detta certifikat var manuellt godkänt.</p> + Certificate information: Certifikatinformation: + Common Name (CN): Common Name (CN): + Country: Land: + Expires on: Upphör den: + Issued on: Utfärdat den: + Issuer: Utfärdare: + No support for SSL session tickets/identifiers Inget stöd för biljetter/identifikationer för SSL sessioner + Organization (O): Organisation (O): + Organizational Unit (OU): Organisationsenhet (OU): + SHA-1: SHA-1: + SHA-256: SHA-256: + Serial: Serienummer: + Server version: %1 Serverversion: %1 + State/Province: Stat/Provins: + Subject Alternative Names: Alternativnamn: + The connection is not secure Anslutningen är inte säker + This connection is NOT secure as it is not encrypted. Denna anslutning är INTE säker eftersom den inte är krypterad. + This connection is encrypted using %1 bit %2. Denna anslutning är krypterad med %1 bit %2. @@ -4562,122 +5562,156 @@ Servern svarade med fel: %2 OCC::SslErrorDialog + + + &lt;not specified&gt; &lt;inte angivet&gt; + Additional errors: Ytterligare fel: + Cannot connect securely to <i>%1</i>: Kan inte ansluta säkert till <i>%1</i>: + + Country: %1 Land: %1 + Effective Date: %1 Giltigt datum: %1 + Expiration Date: %1 Utgångsdatum: %1 + Fingerprint (SHA-256): <tt>%1</tt> Fingeravtryck (SHA-256): <tt>%1</tt> + Fingerprint (SHA-512): <tt>%1</tt> Fingeravtryck (SHA-512): <tt>%1</tt> + Fingerprint (SHA1): <tt>%1</tt> Fingeravtryck (SHA1): <tt>%1</tt> + Issuer: %1 Utfärdare: %1 + + Organization: %1 Organisation: %1 - Trust this certificate anyway - Lita på detta certifikat i alla fall - - + + Unit: %1 Enhet: %1 + Untrusted Certificate Otillförlitligt certifikat + with Certificate %1 med Certifikat %1 - + + + Trust this certificate anyway + Lita på detta certifikat i alla fall + + OCC::SyncEngine + %1 (skipped due to earlier error, trying again in %2) %1 (skippad på grund av ett tidigare fel, försök igen om %2) + Cannot open the sync journal Det går inte att öppna synkroniseringsjournalen + Could not set file record to local DB: %1 Kunde inte ställa in filposten till lokal DB: %1 + Could not update file metadata: %1 Kunde inte uppdatera filens metadata: %1 + Could not update file: %1 Kunde inte uppdatera filen: %1 + Could not update virtual file metadata: %1 Kunde inte uppdatera virtuell filmetadata: %1 + Disk space is low: Downloads that would reduce free space below %1 were skipped. Diskutrymmet är lågt: Hämtningar som skulle reducera det fria utrymmet under %1 hoppas över. + Only %1 are available, need at least %2 to start Placeholders are postfixed with file sizes using Utility::octetsToString() Endast %1 tillgängligt, behöver minst %2 för att starta + There is insufficient space available on the server for some uploads. Det finns inte tillräckligt med utrymme på servern för vissa uppladdningar. + Unable to open or create the local sync database. Make sure you have write access in the sync folder. Kunde inte öppna eller återskapa den lokala synkroniseringsdatabasen. Säkerställ att du har skrivrättigheter till synkroniseringsmappen. + Unable to read from the sync journal. Det går inte att läsa från synkroniseringsjournalen. + Unable to read the blacklist from the local database Kunde inte läsa svartlistan från den lokala databasen + Unresolved conflict. Olöst konflikt. + Using virtual files with suffix, but suffix is not set Använder virtuella filer med suffix, men suffix är inte inställt @@ -4685,58 +5719,76 @@ Servern svarade med fel: %2 OCC::SyncStatusSummary + %1 of %2 %1 av %2 + %1 of %2 · %3 left %1 av %2 · %3 kvar + + + All synced! Färdigsynkroniserat! + Checking folder changes Kontrollerar mappändringar + + + Offline Offline + See below for errors Se nedan för felmeddelanden + See below for warnings Se nedan för felmeddelanden + Some files could not be synced! Vissa filer kunde inte synkroniseras! + Some files couldn't be synced! Vissa filer kunde inte synkroniseras! + Sync paused Synkronisering pausad + Syncing Synkroniserar + Syncing changes Synkroniserar ändringar + Syncing file %1 of %2 Synkroniserar fil %1 av %2 + You need to accept the terms of service Du behöver acceptera användarvillkoren @@ -4744,43 +5796,55 @@ Servern svarade med fel: %2 OCC::Systray + Add account Lägg till konto + Download Ladda ner + Exit %1 Avsluta %1 + Help Hjälp + Open %1 Desktop Open Nextcloud main window. Placeholer will be the application name. Please keep it. Öppna %1 Desktop + + Pause sync Pausa synkronisering + Pause sync for all Pausa synkronisering för alla + + Resume sync Återuppta synkronisering + Resume sync for all Återuppta synkronisering för alla + Settings Inställningar @@ -4788,22 +5852,27 @@ Servern svarade med fel: %2 OCC::TermsOfServiceCheckWidget + Copy Link Kopiera länk + Link copied to clipboard. Länken kopierad till urklipp. + Open Browser Öppna webbläsare + Polling Periodisk kontroll + Waiting for terms to be accepted Väntar på att användarvillkoren ska accepteras @@ -4811,90 +5880,115 @@ Servern svarade med fel: %2 OCC::Theme - %1 Desktop Client Version %2 (%3) - %1 is application name. %2 is the human version string. %3 is the operating system name. - %1 Version av skrivbordsklient %2 (%3) - - - <p><small>Using virtual files plugin: %1</small></p> - <p><small>Använder plugin för virtuella filer: %1</small></p> - - - <p>This release was supplied by %1.</p> - <p>Denna release levererades av %1.</p> - - + ExpandMemory-Link https://static.hidrive.com/next/1045 + ExpandMemory-Link_STRATO https://static.hidrive.com/next/1044 - Help-Link - https://static.hidrive.com/next/1014 + + Login_URL + https://storage.ionos.com - Help-Link_STRATO - https://static.hidrive.com/next/1014 + + Login_URL_STRATO + https://storage.ionos.com + LegalNotice-Link https://static.hidrive.com/next/1024 + LegalNotice-Link_STRATO https://static.hidrive.com/next/1024 - Login_URL - https://storage.ionos.com - - - Login_URL_STRATO - https://storage.ionos.com - - + MoreInformation-Link https://strato.se + MoreInformation-Link_STRATO https://static.hidrive.com/next/1014 + OpenSource-Link https://static.hidrive.com/next/1031 + OpenSource-Link_STRATO https://static.hidrive.com/next/1031 + Privacy-Link https://static.hidrive.com/next/1004 + Privacy-Link_STRATO https://static.hidrive.com/next/1004 - + + + %1 Desktop Client Version %2 (%3) + %1 is application name. %2 is the human version string. %3 is the operating system name. + %1 Version av skrivbordsklient %2 (%3) + + + + <p><small>Using virtual files plugin: %1</small></p> + <p><small>Använder plugin för virtuella filer: %1</small></p> + + + + <p>This release was supplied by %1.</p> + <p>Denna release levererades av %1.</p> + + + + + + Help-Link + https://static.hidrive.com/next/1014 + + + + + + Help-Link_STRATO + https://static.hidrive.com/next/1014 + + OCC::UnifiedSearchResultsListModel + Failed to fetch providers. Kunde inte hämta leverantörer + Failed to fetch search providers for '%1'. Error: %2 Det gick inte att hämta sökleverantörer för '%1'. Fel: %2 + Search has failed for '%1'. Error: %2 Sökningen "%1'. Fel: %2. + Search has failed for '%2'. Sökningen "%2' misslyckades. @@ -4902,14 +5996,17 @@ Servern svarade med fel: %2 OCC::UpdateE2eeFolderMetadataJob + Failed to finalize item. Misslyckades med att slutföra objektet. + Failed to unlock encrypted folder. Lyckades inte låsa upp den krypterade mappen. + Failed to update folder metadata. Kunde inte uppdatera mappens metadata. @@ -4917,33 +6014,43 @@ Servern svarade med fel: %2 OCC::UpdateE2eeFolderUsersMetadataJob + Could not add or remove user %1 to access folder %2 Det gick inte att lägga till eller ta bort användaren %1 i mappen %2 + Could not fetch public key for user %1 Kunde inte hämta publik nyckel för användare %1 + Could not find root encrypted folder for folder %1 Kunde inte hitta rot-krypterad mapp för mapp %1 + + + + + + + + + Error updating metadata for a folder %1 Fel vid uppdatering av metadata för en mapp %1 + Failed to unlock a folder. Misslyckades att låsa upp en mapp. OCC::User - - %1 notifications - %1 meddelanden - + %n notification(s) %n avisering @@ -4951,44 +6058,55 @@ Servern svarade med fel: %2 + End-to-end certificate needs to be migrated to a new one End-to-end-certifikatet måste migreras till ett nytt + Open %1 Assistant in browser The placeholder will be the application name. Please keep it Öppna %1 Assistant i webbläsaren + Open %1 Talk in browser The placeholder will be the application name. Please keep it Öppna %1 Talk i webbläsaren + Public Share Link Offentlig delningslänk + Quota Warning - %1 percent or more storage in use Kvotvarning - %1 procent eller mer av lagringsutrymmet används + Quota is updated; %1 percent of the total space is used. Kvoten har uppdaterats; %1 procent av det totala utrymmet är använt. + Rename file Byt namn på fil + + Resolve conflict Lös konflikt + Retry all uploads Försök ladda upp igen + Trigger the migration Initiera migreringen @@ -4996,26 +6114,32 @@ Servern svarade med fel: %2 OCC::UserModel + <p>Do you really want to remove the connection to the account <i>%1</i>?</p><p><b>Note:</b> This will <b>not</b> delete any files.</p> <p>Vill du verkligen ta bort anslutningen till konto <i>%1</i>?</p><p><b>OBS:</b> Detta kommer <b>inte</b> att radera några filer.</p> + Cancel Avbryt + Confirm Account Removal Bekräfta radering an kontot + Leave share Lämna delning + Remove account Ta bort konto + Remove connection Ta bort anslutning @@ -5023,6 +6147,7 @@ Servern svarade med fel: %2 OCC::UserStatusSelectorModel + %n day(s) %n dag @@ -5030,6 +6155,7 @@ Servern svarade med fel: %2 + %n hour(s) %n timme @@ -5037,6 +6163,7 @@ Servern svarade med fel: %2 + %n minute(s) %n minut @@ -5044,54 +6171,70 @@ Servern svarade med fel: %2 + 1 hour 1 timme + 30 minutes 30 minuter + 4 hours 4 timmar + Could not clear status message. Make sure you are connected to the server. Kunde inte rensa statusmeddelande. Kontrollera anslutningen till servern. + Could not fetch predefined statuses. Make sure you are connected to the server. Kunde inte hämta fördefinierade statusar. Kontrollera anslutningen till servern. + Could not fetch status. Make sure you are connected to the server. Det gick inte att hämta status. Kontrollera att du är ansluten till servern. + Could not set status. Make sure you are connected to the server. Kunde inte sätta status. Kontrollera att du är ansluten till servern. + + Don't clear Rensa inte + Emojis are not supported. Some status functionality may not work. Emojier stöds inte. Viss statusfunktionalitet kan vara otillgänglig. + Less than a minute Mindre än en minut + Status feature is not supported. You will not be able to set your status. Statusfunktionen stöds inte. Du kommer inte att kunna ställa in din status. + + This week Denna vecka + + Today Idag @@ -5099,14 +6242,17 @@ Servern svarade med fel: %2 OCC::Vfs + Please choose a different location. %1 is a drive. It doesn't support virtual files. Välj en annan plats. %1 är en enhet. Den stöder inte virtuella filer. + Please choose a different location. %1 is a network drive. It doesn't support virtual files. Välj en annan plats. %1 är en nätverksenhet. Den stöder inte virtuella filer. + Please choose a different location. %1 isn't a NTFS file system. It doesn't support virtual files. Välj en annan plats. %1 är inte ett NTFS-filsystem. Det stöder inte virtuella filer. @@ -5114,30 +6260,37 @@ Servern svarade med fel: %2 OCC::VfsDownloadErrorDialog + %1 could not be downloaded. %1 kunde inte laddas ned. + + Error downloading %1 + Fel vid nedladdning av %1 + + + > More details > Fler detaljer + Could not be downloaded Kunde inte laddas ner + Download error Nedladdningsfel + Error downloading Fel vid nedladdning - Error downloading %1 - Fel vid nedladdning av %1 - - + More details Fler detaljer @@ -5145,6 +6298,8 @@ Servern svarade med fel: %2 OCC::VfsSuffix + + Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid @@ -5152,6 +6307,8 @@ Servern svarade med fel: %2 OCC::VfsXAttr + + Error updating metadata due to invalid modification time Fel vid uppdatering av metadata på grund av ogiltig ändringstid @@ -5159,10 +6316,12 @@ Servern svarade med fel: %2 OCC::WebEnginePage + Invalid certificate detected Ogiltigt certifikat upptäckt + The host "%1" provided an invalid certificate. Continue? Servern "%1" tillhandahöll ett ogiltigt certifikat. Fortsätt? @@ -5170,6 +6329,7 @@ Servern svarade med fel: %2 OCC::WebFlowCredentials + <b>You have been logged out of your account %1 at %2. Please login again.</b> <b>Du har blivit utloggad från ditt konto %1 på %2. Vänligen logga in igen.</b> @@ -5177,22 +6337,27 @@ Servern svarade med fel: %2 OCC::WelcomePage - Form - Formulär - - + Host your own server Använd egen server + Keep your data secure and under your control Håll din data säker och under din kontroll + + Form + Formulär + + + Log in Logga in + Sign up with provider Registrera hos en leverantör @@ -5200,27 +6365,33 @@ Servern svarade med fel: %2 OCC::WizardProxySettingsDialog + HTTP(S) proxy HTTP(S) proxy + Hostname of proxy server Värdnamn för proxyserver + Password for proxy server Lösenord för proxyserver + Proxy Settings Dialog window title for proxy settings Proxyinställningar + SOCKS5 proxy SOCKS5 proxy + Username for proxy server Användarnamn för proxyserver @@ -5228,55 +6399,68 @@ Servern svarade med fel: %2 OwncloudAdvancedSetupPage + &Local Folder &Lokal mapp + <html><head/><body><p>If this box is checked, existing content in the local folder will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers folder.</p></body></html> <html><head/><body><p>Om den här rutan är markerad kommer befintligt innehåll i den lokala mappen att raderas för att starta en ren synkronisering från servern.</p><p>Markera inte den här om det lokala innehållet ska laddas upp till servermappen.</p></body></html> + Ask before syncing folders larger than Fråga innan synkronisering av mappar större än + Choose different folder Välj annan mapp + Choose what to sync Välj vad som ska synkroniseras + Erase local folder and start a clean sync Radera lokal mapp och starta en fräsch synkronisering + Keep local data Behåll lokal data + Local Folder Lokal mapp + MB Trailing part of "Ask confirmation before syncing folder larger than" MB + Server address Serveradress + Sync Logo Synkroniseringslogo + Synchronize everything from server Synkronisera allt från servern + Username Användarnamn @@ -5284,10 +6468,12 @@ Servern svarade med fel: %2 OwncloudHttpCredsPage + &Password &Lösenord + &Username &Användarnamn @@ -5295,10 +6481,12 @@ Servern svarade med fel: %2 OwncloudSetupPage + Server address Serveradress + This is the link to your %1 web interface when you open it in the browser. Länken %1 används för att nå ditt webgränssnitt i din webläsare. @@ -5306,145 +6494,170 @@ Servern svarade med fel: %2 progress + Deleted Raderad + Deleting Raderar + Downloaded Hämtats + Downloading Laddar ner + + Error Fel + Filesystem access error Åtkomstfel till filsystemet + Ignored Ignorerad + Ignoring Ignorerar + Moved to %1 Flyttad till %1 + Moving Flyttar + Replaced by virtual file Ersatt av virtuell fil + Server version downloaded, copied changed local file into case conflict conflict file Serverversionen har laddats ner, den ändrade lokala filen har kopierats in i en fil för skiftlägeskonflikt. + Server version downloaded, copied changed local file into conflict file Serverversion hämtad, kopierade den ändrade lokala filen till konfliktfil + + Unknown Okänt + Updated end-to-end encryption metadata Uppdaterade metadata för ände-till-ände-kryptering + Updated local metadata Uppdaterade lokal metadata + Updated local virtual files metadata Uppdaterade metadata för lokala virtuella filer + Updating end-to-end encryption metadata Uppdaterar metadata för ände-till-ände-kryptering + Updating local metadata Uppdaterar lokal metadata + Updating local virtual files metadata Uppdaterar lokala virtuella filers metadata + Uploaded Uppladdad + Uploading Laddar upp + Virtual file created Virtuell fil skapad - - updating local virtual files metadata - Uppdatering av metadata för lokala virtuella filer - ProxySettings + Form Formulär + Host Värdnamn + Manually specify proxy Ange proxy manuellt + No proxy Ingen proxy + Note: proxy settings have no effects for accounts on localhost Observera: proxyinställningar har ingen effekt för konton på localhost + Proxy Settings Proxyinställningar + Proxy server requires authentication Proxyservern kräver autentisering + Use system proxy Använd systemets proxyinställningar QObject - - %1: %2 - this displays an error string (%2) for a file %1 - %1: %2 - + %nd delay in days after an activity @@ -5453,6 +6666,7 @@ Servern svarade med fel: %2 + %nh delay in hours after an activity @@ -5461,6 +6675,7 @@ Servern svarade med fel: %2 + %nmin delay in minutes after an activity @@ -5469,174 +6684,222 @@ Servern svarade med fel: %2 + 1min one minute after activity date and time 1min - An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. - Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. + + Some time ago + För en tid sedan - Could not create debug archive in selected location! - Det gick inte att skapa ett debug-arkiv på den valda platsen! + + in the future + i framtiden - Error deleting the file - Kunde inte ta bort filen + + now + nu + + + + The directory %1 cannot be part of your sync directory. Please choose another folder. + Katalogen %1 kan inte vara en del av din synkroniseringskatalog. Vänligen välj en annan mapp. + + + + New folder + Ny mapp + + Could not create debug archive in selected location! + Det gick inte att skapa ett debug-arkiv på den valda platsen! + + + Failed to create debug archive Misslyckades med att skapa debug-arkiv - It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. - Det verkar som att du använder en proxy som kräver autentisering. Kontrollera dina proxyinställningar och inloggningsuppgifter. Om du behöver hjälp, kontakta din serveradministratör. + + Synced %1 + Synkroniserade %1 - It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. - Det tar för lång tid att ansluta till servern. Försök igen senare. Om du behöver hjälp, kontakta din serveradministratör. + + You changed %1 + Du ändrade %1 - New folder - Ny mapp + + You created %1 + Du skapade %1 - Paths beginning with '#' character are not supported in VFS mode. - Sökvägar som börjar med tecknet '#' stöds inte i VFS-läge. + + You deleted %1 + Du raderade %1 - Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. - Serverfiler ändrades medan du arbetade. Försök att synkronisera igen. Kontakta din serveradministratör om problemet kvarstår. + + You renamed %1 + Du döpte om %1 - Some time ago - För en tid sedan + + An unexpected error occurred. Please try syncing again or contact your server administrator if the issue continues. + Ett oväntat fel uppstod. Försök att synkronisera igen eller kontakta din serveradministratör om problemet kvarstår. - Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. - Något gick fel på servern. Försök att synkronisera igen senare, eller kontakta din serveradministratör om problemet kvarstår. + + It seems you are using a proxy that required authentication. Please check your proxy settings and credentials. If you need help, contact your server administrator. + Det verkar som att du använder en proxy som kräver autentisering. Kontrollera dina proxyinställningar och inloggningsuppgifter. Om du behöver hjälp, kontakta din serveradministratör. - Synced %1 - Synkroniserade %1 + + It’s taking too long to connect to the server. Please try again later. If you need help, contact your server administrator. + Det tar för lång tid att ansluta till servern. Försök igen senare. Om du behöver hjälp, kontakta din serveradministratör. - The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. - Adressen som användes för begäran är för lång för att servern ska kunna hantera den. Försök att förkorta informationen du skickar, eller kontakta din serveradministratör för hjälp. + + Server files changed while you were working. Please try syncing again. Contact your server administrator if the issue persists. + Serverfiler ändrades medan du arbetade. Försök att synkronisera igen. Kontakta din serveradministratör om problemet kvarstår. - The directory %1 cannot be part of your sync directory. Please choose another folder. - Katalogen %1 kan inte vara en del av din synkroniseringskatalog. Vänligen välj en annan mapp. + + Something went wrong on the server. Please try syncing again later, or contact your server administrator if the issue persists. + Något gick fel på servern. Försök att synkronisera igen senare, eller kontakta din serveradministratör om problemet kvarstår. + + + + The address used to make the request is too long for the server to handle. Please try shortening the information you’re sending or contact your server administrator for assistance. + Adressen som användes för begäran är för lång för att servern ska kunna hantera den. Försök att förkorta informationen du skickar, eller kontakta din serveradministratör för hjälp. + The file is too big to upload. You might need to choose a smaller file or contact your server administrator for assistance. Filen är för stor för att laddas upp. Du kan behöva välja en mindre fil eller kontakta din serveradministratör för hjälp. + The request could not be completed because some required conditions were not met. Please try syncing again later. If you need assistance, please contact your server administrator. Begäran kunde inte slutföras eftersom vissa nödvändiga villkor inte uppfylldes. Försök att synkronisera igen senare. Om du behöver hjälp, kontakta din serveradministratör. + The request is taking longer than usual. Please try syncing again. If it still doesn’t work, reach out to your server administrator. Begäran tar längre tid än vanligt. Försök att synkronisera igen. Om det fortfarande inte fungerar, kontakta din serveradministratör. + The resource you are trying to access is currently locked and cannot be modified. Please try changing it later, or contact your server administrator for assistance. Resursen du försöker komma åt är för närvarande låst och kan inte ändras. Försök igen senare, eller kontakta din serveradministratör för hjälp. + The server couldn’t process your request because some information was incorrect or incomplete. Please try syncing again later, or contact your server administrator for assistance. Servern kunde inte behandla din begäran eftersom viss information var felaktig eller ofullständig. Försök att synkronisera igen senare, eller kontakta din serveradministratör för hjälp. + The server does not have enough space to complete your request. Please check how much quota your user has by contacting your server administrator. Servern har inte tillräckligt med utrymme för att slutföra din begäran. Kontrollera hur mycket kvot ditt användarkonto har genom att kontakta din serveradministratör. + The server does not recognize the request method. Please contact your server administrator for help. Servern känner inte igen begärans metod. Kontakta din serveradministratör för hjälp. + The server does not support the version of the connection being used. Contact your server administrator for help. Servern stöder inte den version av anslutningen som används. Kontakta din serveradministratör för hjälp. + The server is busy right now. Please try connecting again in a few minutes or contact your server administrator if it’s urgent. Servern är upptagen just nu. Försök att ansluta igen om några minuter eller kontakta serveradministratören om det är brådskande. + This file type isn’t supported. Please contact your server administrator for assistance. Denna filtyp stöds inte. Kontakta din serveradministratör för hjälp. + This folder or file isn’t available anymore. If you need assistance, please contact your server administrator. Denna mapp eller fil är inte längre tillgänglig. Om du behöver hjälp, kontakta din serveradministratör. + This request could not be completed because it is missing some required conditions. Please try again later, or contact your server administrator for help. Begäran kunde inte slutföras eftersom vissa nödvändiga villkor saknas. Försök igen senare, eller kontakta din serveradministratör för hjälp. + We couldn’t find what you were looking for. It might have been moved or deleted. If you need help, contact your server administrator. Vi kunde inte hitta det du letade efter. Det kan ha flyttats eller raderats. Om du behöver hjälp, kontakta din serveradministratör. + We couldn’t process your request. Please try syncing again later. If this keeps happening, contact your server administrator for help. Vi kunde inte behandla din begäran. Försök att synkronisera igen senare. Om problemet kvarstår, kontakta din serveradministratör för hjälp. + We’re having trouble connecting to the server. Please try again soon. If the issue persists, your server administrator can help you. Vi har problem med att ansluta till servern. Försök igen snart. Om problemet kvarstår kan din serveradministratör hjälpa dig. - You changed %1 - Du ändrade %1 - - - You created %1 - Du skapade %1 - - - You deleted %1 - Du raderade %1 - - + You don’t have access to this resource. If you think this is a mistake, please contact your server administrator. Du har inte åtkomst till denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör. + You don’t have permission to access this resource. If you believe this is an error, contact your server administrator to ask for assistance. Du har inte behörighet att komma åt denna resurs. Om du tror att detta är ett misstag, kontakta din serveradministratör för hjälp. + You made too many requests. Please wait and try again. If you keep seeing this, your server administrator can help. Du har gjort för många förfrågningar. Vänta och försök igen. Om problemet kvarstår kan din serveradministratör hjälpa dig. + You need to sign in to continue. If you have trouble with your credentials, please reach out to your server administrator. Du måste logga in för att fortsätta. Om du har problem med dina inloggningsuppgifter, kontakta din serveradministratör. - You renamed %1 - Du döpte om %1 - - + Your network needs extra authentication. Please check your connection. Contact your server administrator for help if the issue persists. Ditt nätverk kräver extra autentisering. Kontrollera din anslutning. Kontakta din serveradministratör om problemet kvarstår. - in the future - i framtiden + + Error deleting the file + Kunde inte ta bort filen - now - nu + + %1: %2 + this displays an error string (%2) for a file %1 + %1: %2 - + + + Paths beginning with '#' character are not supported in VFS mode. + Sökvägar som börjar med tecknet '#' stöds inte i VFS-läge. + + ResolveConflictsDialog + %1 files in conflict indicate the number of conflicts to resolve @@ -5645,26 +6908,32 @@ Servern svarade med fel: %2 + All local versions Alla lokala versioner + All server versions Alla serverversioner + Cancel Avbryt + Choose if you want to keep the local version, server version, or both. If you choose both, the local file will have a number added to its name. Välj om du vill behålla den lokala versionen, serverversionen eller båda. Om du väljer båda kommer den lokala filen att ha ett nummer tillagt i namnet. + Resolve conflicts Lös konflikter + Solve sync conflicts Lös synkroniseringskonflikter @@ -5672,6 +6941,7 @@ Servern svarade med fel: %2 SesErrorBox + Error Fel @@ -5679,14 +6949,17 @@ Servern svarade med fel: %2 SesTrayHeader + Open Nextcloud in browser Öppna HiDrive Next i webbläsaren + Open local or team folders Öppna lokala eller teammappar + Website Webbplats @@ -5694,10 +6967,12 @@ Servern svarade med fel: %2 ShareDelegate + Copied! Kopierad! + Share options Delningsalternativ @@ -5705,66 +6980,78 @@ Servern svarade med fel: %2 ShareDetailsPage + Add another link Lägg till en annan länk + Allow resharing Tillåt vidaredelning + + Allow upload and editing Tillåt uppladdning och redigering + An error occurred setting the share password. Ett fel uppstod vid inställning av delningslösenordet. + Copy share link Kopiera delningslänk + Custom Permissions Anpassade behörigheter + Enter a note for the recipient Ange en notering till mottagaren - Enter the note to recipient - Ange anteckningen till mottagaren - - + File drop (upload only) Filinkast (endast uppladdning) + Hide download Dölj nedladdning + Note to recipient Notering till mottagare + Password protection Lösenordsskydd + Set expiration date Välj utgångsdatum + Share link copied! Dela länk kopierad! + Unshare Sluta dela + View only Endast visa @@ -5772,10 +7059,12 @@ Servern svarade med fel: %2 ShareeSearchField + Search for users or groups… Sök efter användare eller grupper... + Sharing is not available for this folder Delning är inte tillgängligt för den här mappen @@ -5783,30 +7072,37 @@ Servern svarade med fel: %2 ShareView + Expires in %1 Går ut om %1 + Password required for new share Lösenord krävs för ny delning + Share password Lösenord för delning + Shared with you by %1 Delad med dig av %1 + Sharing is disabled Delning är inaktiverat + Sharing is disabled. Delning är inaktiverat. + This item cannot be shared. Det här objektet kan inte delas. @@ -5814,6 +7110,7 @@ Servern svarade med fel: %2 SyncJournalDb + Failed to connect database. Kunde inte koppla mot databasen. @@ -5821,14 +7118,17 @@ Servern svarade med fel: %2 SyncStatus + Open browser Öppna webbläsare + Resolve conflicts Lös konflikter + Sync now Synkronisera nu @@ -5836,10 +7136,12 @@ Servern svarade med fel: %2 TalkReplyTextField + Reply to … Svara till ... + Send reply to chat message Skicka svar på chattmeddelande @@ -5847,14 +7149,17 @@ Servern svarade med fel: %2 TermsOfServiceCheckWidget + Logo Logotyp + Switch to your browser to accept the terms of service Byt till din webbläsare för att acceptera användarvillkoren + Terms of Service Användarvillkor @@ -5862,42 +7167,52 @@ Servern svarade med fel: %2 theme + Error occurred during setup Ett fel uppstod under installationen + Error occurred during sync Ett fel uppstod under synkroniseringen + Preparing to sync Förbereder synkronisering + Stopping sync Stoppar synkronisering + Sync is paused Synkronisering pausad + Sync is running Synkronisering är aktiv + Sync status is unknown Synkroniseringsstatus är okänd + Sync was successful Synkroniseringen lyckades + Sync was successful but some files were ignored Synkroniseringen lyckades men vissa filer ignorerades + Waiting to start syncing Väntar på att starta synkronisering @@ -5905,30 +7220,37 @@ Servern svarade med fel: %2 TrayFoldersMenuButton + Files Filer + Open %1 in file explorer Öppna %1 i filutforskaren + Open local folder Öppnar lokal mapp + Open local folder "%1" Öppna lokala mappen "%1" + Open local or team folders Öppna lokala eller teammappar + Open team folder "%1" Öppna teammapp "%1" + User group and local folders menu Användargrupp och meny för lokala mappar @@ -5936,42 +7258,52 @@ Servern svarade med fel: %2 TrayWindowAccountMenu + Account switcher and settings menu Kontobytare och inställningsmeny + Add account Lägg till konto + Current account Nuvarande konto + Current account avatar Avatar för aktuellt konto + Current account status is do not disturb Aktuell kontostatus är stör ej + Current account status is online Aktuell kontostatus är online + Exit Avsluta + Pause sync for all Pausa synkronisering för alla + Resume sync for all Synkronisering av CV för alla + Settings Inställningar @@ -5979,14 +7311,17 @@ Servern svarade med fel: %2 TrayWindowHeader + More apps Fler appar + Open %1 in browser Öppna %1 i webbläsare + Open local or team folders Öppna lokala eller teammappar @@ -5994,22 +7329,27 @@ Servern svarade med fel: %2 TrayWindowHeaderBar + More apps Fler appar + Open %1 in browser Öppna %1 i webbläsare + Open Nextcloud in browser Öppna HiDrive Next i webbläsaren + Open local or team folders Öppna lokala eller teammappar + Website Webbplats @@ -6017,6 +7357,7 @@ Servern svarade med fel: %2 UnifiedSearchInputContainer + Search files, messages, events … Sök efter filer, meddelanden, händelser... @@ -6024,6 +7365,7 @@ Servern svarade med fel: %2 UnifiedSearchPlaceholderView + Start typing to search Börja skriva för att söka @@ -6031,6 +7373,7 @@ Servern svarade med fel: %2 UnifiedSearchResultFetchMoreTrigger + Load more results Visa fler resultat @@ -6038,6 +7381,7 @@ Servern svarade med fel: %2 UnifiedSearchResultItemSkeleton + Search result skeleton. Sökresultatskelett @@ -6045,6 +7389,7 @@ Servern svarade med fel: %2 UnifiedSearchResultListItem + Load more results Visa fler resultat @@ -6052,6 +7397,7 @@ Servern svarade med fel: %2 UnifiedSearchResultNothingFound + No results for Inga resultat för @@ -6059,6 +7405,7 @@ Servern svarade med fel: %2 UnifiedSearchResultSectionItem + Search results section %1 Sökresultat %1 @@ -6066,22 +7413,29 @@ Servern svarade med fel: %2 UserLine + Account actions Kontoåtgärder + + Log in Logga in + + Log out Logga ut + Remove account Ta bort konto + Switch to account Växla till konto @@ -6089,26 +7443,32 @@ Servern svarade med fel: %2 UserStatusMessageView + Apply Verkställ + Cancel Avbryt + Clear Rensa + Clear status message after Rensa statusmeddelande efter + Status message Statusmeddelande + What is your status? Vad är din status? @@ -6116,38 +7476,47 @@ Servern svarade med fel: %2 UserStatusSetStatusView + Appear offline Visa som offline + Away Borta + Busy Upptagen + Do not disturb Stör ej + Invisible Osynlig + Mute all notifications Stäng av alla aviseringar + Online Online + Online status Onlinestatus + Status message Statusmeddelande @@ -6155,30 +7524,37 @@ Servern svarade med fel: %2 Utility + %1 %2 %1 %2 + %L1 B %L1 B + %L1 GB %L1 GB + %L1 KB %L1 KB + %L1 MB %L1 MB + %L1 TB %L1 TB + %n day(s) %n dag @@ -6186,6 +7562,7 @@ Servern svarade med fel: %2 + %n hour(s) %n timme @@ -6193,6 +7570,7 @@ Servern svarade med fel: %2 + %n minute(s) %n minut @@ -6200,6 +7578,7 @@ Servern svarade med fel: %2 + %n month(s) %n månad @@ -6207,6 +7586,7 @@ Servern svarade med fel: %2 + %n second(s) %n sekund @@ -6214,6 +7594,7 @@ Servern svarade med fel: %2 + %n year(s) %n år @@ -6224,42 +7605,52 @@ Servern svarade med fel: %2 utility + Always available locally Alltid tillgänglig lokalt + Available online only Endast tillgänglig online + Could not open browser Kunde inte öppna webbläsaren + Could not open email client Kunde inte öppna e-postklient + Currently available locally För närvarande tillgänglig lokalt + Free up local space Frigör lokalt utrymme + Make always available locally Gör alltid tillgänglig lokalt + Some available online only Vissa endast tillgängliga online + There was an error when launching the browser to go to URL %1. Maybe no default browser is configured? Det uppstod ett fel när webbläsaren öppnades för webbadressen %1. Kanske det inte finns någon standard webbläsare vald? + There was an error when launching the email client to create a new message. Maybe no default email client is configured? Det uppstod ett fel när e-postklienten skulle startas för att skapa ett nytt meddelande. Kanske är ingen standard-e-postklient konfigurerad? @@ -6267,14 +7658,17 @@ Servern svarade med fel: %2 ValidateChecksumHeader + The checksum header contained an unknown checksum type "%1" Kontrollsummans header innehåller en okänd kontrollsumma av typ "%1" + The checksum header is malformed. Kontrollsummans header är felformaterad. + The downloaded file does not match the checksum, it will be resumed. "%1" != "%2" Den nedladdade filen matchar inte kontrollsumman, den kommer att återupptas. "%1" != "%2"